summaryrefslogtreecommitdiff
path: root/src/map/map.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/map.cpp')
-rw-r--r--src/map/map.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/map/map.cpp b/src/map/map.cpp
index ef7b9548bd..c5df1f96df 100644
--- a/src/map/map.cpp
+++ b/src/map/map.cpp
@@ -522,6 +522,21 @@ void Map::updateRenderState() {
}
}
+void Map::updateRenderState(const mat4 vtxMatrix) {
+ std::forward_list<Tile::ID> ids;
+
+ for (const std::shared_ptr<StyleSource> &source : getActiveSources()) {
+ ids.splice_after(ids.before_begin(), source->source->getIDs());
+ source->source->updateMatrices(vtxMatrix, state);
+ }
+
+ const std::map<Tile::ID, ClipID> clipIDs = computeClipIDs(ids);
+
+ for (const std::shared_ptr<StyleSource> &source : getActiveSources()) {
+ source->source->updateClipIDs(clipIDs);
+ }
+}
+
void Map::prepare() {
view.make_active();
@@ -634,8 +649,8 @@ void Map::renderLayers(std::shared_ptr<StyleLayerGroup> group) {
}
void Map::renderLayer(std::shared_ptr<StyleLayer> layer_desc, RenderPass pass) {
- if (layer_desc->layers) {
- // This is a layer group. We render them during our translucent render pass.
+ if (layer_desc->layers && layer_desc->type != StyleLayerType::Raster) {
+ // This is a layer group. We render them during our translucent render pass.
if (pass == Translucent) {
const CompositeProperties &properties = layer_desc->getProperties<CompositeProperties>();
if (properties.isVisible()) {
@@ -716,7 +731,6 @@ void Map::renderLayer(std::shared_ptr<StyleLayer> layer_desc, RenderPass pass) {
std::cout << std::string(indent * 4, ' ') << "- " << layer_desc->id << " ("
<< layer_desc->type << ")" << std::endl;
}
-
style_source.source->render(painter, layer_desc);
}
}