summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/layers
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2019-04-02 14:11:37 +0200
committerKonstantin Käfer <mail@kkaefer.com>2019-05-15 11:57:43 -0700
commitda5bd4d6e3a0202cc4f9e4d3d17e159eb90acba6 (patch)
tree9450b28ea53804129de6cc049404bbef2b83778c /src/mbgl/renderer/layers
parentd5e7fabf455d3e8e6cb852fa544649c8012d70ed (diff)
downloadqtlocation-mapboxgl-da5bd4d6e3a0202cc4f9e4d3d17e159eb90acba6.tar.gz
[core] use unique IDs for DrawScopes
Diffstat (limited to 'src/mbgl/renderer/layers')
-rw-r--r--src/mbgl/renderer/layers/render_raster_layer.cpp14
-rw-r--r--src/mbgl/renderer/layers/render_symbol_layer.cpp22
2 files changed, 23 insertions, 13 deletions
diff --git a/src/mbgl/renderer/layers/render_raster_layer.cpp b/src/mbgl/renderer/layers/render_raster_layer.cpp
index 48ca0584fc..8569303a06 100644
--- a/src/mbgl/renderer/layers/render_raster_layer.cpp
+++ b/src/mbgl/renderer/layers/render_raster_layer.cpp
@@ -83,7 +83,8 @@ void RenderRasterLayer::render(PaintParameters& parameters, RenderSource* source
const auto& vertexBuffer,
const auto& indexBuffer,
const auto& segments,
- const auto& textureBindings) {
+ const auto& textureBindings,
+ const std::string& drawScopeID) {
auto& programInstance = parameters.programs.getRasterLayerPrograms().raster;
const auto allUniformValues = programInstance.computeAllUniformValues(
@@ -125,7 +126,7 @@ void RenderRasterLayer::render(PaintParameters& parameters, RenderSource* source
allUniformValues,
allAttributeBindings,
textureBindings,
- getID()
+ getID() + "/" + drawScopeID
);
};
@@ -144,7 +145,8 @@ void RenderRasterLayer::render(PaintParameters& parameters, RenderSource* source
RasterProgram::TextureBindings{
textures::image0::Value{ bucket.texture->getResource(), filter },
textures::image1::Value{ bucket.texture->getResource(), filter },
- });
+ },
+ bucket.drawScopeID);
}
}
} else {
@@ -168,7 +170,8 @@ void RenderRasterLayer::render(PaintParameters& parameters, RenderSource* source
RasterProgram::TextureBindings{
textures::image0::Value{ bucket.texture->getResource(), filter },
textures::image1::Value{ bucket.texture->getResource(), filter },
- });
+ },
+ bucket.drawScopeID);
} else {
// Draw the full tile.
draw(parameters.matrixForTile(tile.id, true),
@@ -178,7 +181,8 @@ void RenderRasterLayer::render(PaintParameters& parameters, RenderSource* source
RasterProgram::TextureBindings{
textures::image0::Value{ bucket.texture->getResource(), filter },
textures::image1::Value{ bucket.texture->getResource(), filter },
- });
+ },
+ bucket.drawScopeID);
}
}
}
diff --git a/src/mbgl/renderer/layers/render_symbol_layer.cpp b/src/mbgl/renderer/layers/render_symbol_layer.cpp
index 5c0aea0eac..9429cff469 100644
--- a/src/mbgl/renderer/layers/render_symbol_layer.cpp
+++ b/src/mbgl/renderer/layers/render_symbol_layer.cpp
@@ -166,7 +166,8 @@ void drawIcon(const DrawFn& draw,
paintPropertyValues,
SymbolSDFIconProgram::TextureBindings{
textureBinding
- });
+ },
+ "halo");
}
if (values.hasFill) {
@@ -180,7 +181,8 @@ void drawIcon(const DrawFn& draw,
paintPropertyValues,
SymbolSDFIconProgram::TextureBindings{
textureBinding
- });
+ },
+ "fill");
}
} else {
draw(parameters.programs.getSymbolLayerPrograms().symbolIcon,
@@ -193,7 +195,8 @@ void drawIcon(const DrawFn& draw,
paintPropertyValues,
SymbolIconProgram::TextureBindings{
textureBinding
- });
+ },
+ "icon");
}
}
@@ -311,7 +314,8 @@ void drawText(const DrawFn& draw,
paintPropertyValues,
SymbolSDFTextProgram::TextureBindings{
textureBinding
- });
+ },
+ "halo");
}
if (values.hasFill) {
@@ -325,7 +329,8 @@ void drawText(const DrawFn& draw,
paintPropertyValues,
SymbolSDFTextProgram::TextureBindings{
textureBinding
- });
+ },
+ "fill");
}
}
@@ -409,7 +414,8 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) {
const SymbolPropertyValues& values_,
const auto& binders,
const auto& paintProperties,
- const auto& textureBindings) {
+ const auto& textureBindings,
+ const std::string& suffix) {
const auto allUniformValues = programInstance.computeAllUniformValues(
uniformValues,
*symbolSizeBinder,
@@ -445,7 +451,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) {
allUniformValues,
allAttributeBindings,
textureBindings,
- this->getID()
+ this->getID() + "/" + suffix
);
},
[&](const std::reference_wrapper<SegmentVector<SymbolTextAttributes>>& segmentVector) {
@@ -464,7 +470,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) {
allUniformValues,
allAttributeBindings,
textureBindings,
- this->getID()
+ this->getID() + "/" + suffix
);
}
);