diff options
author | Lauren Budorick <lauren@mapbox.com> | 2014-08-04 17:24:22 -0700 |
---|---|---|
committer | Lauren Budorick <lauren@mapbox.com> | 2014-08-11 12:12:43 -0700 |
commit | df925fe0e5429085f0f443f4be1326c0616f6acc (patch) | |
tree | a502590190ef6898ddbbd468cf2afb03ea55a4d3 /src/map | |
parent | 7a98ad4cf949dd1279719bf926bd08da0133210f (diff) | |
download | qtlocation-mapboxgl-df925fe0e5429085f0f443f4be1326c0616f6acc.tar.gz |
nonworking prerendering attempts
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/map.cpp | 20 | ||||
-rw-r--r-- | src/map/tile_parser.cpp | 7 | ||||
-rw-r--r-- | src/map/vector_tile_data.cpp | 3 |
3 files changed, 24 insertions, 6 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); } } diff --git a/src/map/tile_parser.cpp b/src/map/tile_parser.cpp index 97b071a163..e32a6068fc 100644 --- a/src/map/tile_parser.cpp +++ b/src/map/tile_parser.cpp @@ -66,10 +66,11 @@ void TileParser::parseStyleLayers(std::shared_ptr<StyleLayerGroup> group) { if (layer_desc->isBackground()) { // background is a special, fake bucket continue; - } else if (layer_desc->layers) { + } else if (layer_desc->layers && layer_desc->type != StyleLayerType::Raster) { // This is a layer group. parseStyleLayers(layer_desc->layers); - } else if (layer_desc->bucket) { + } + if (layer_desc->bucket) { // This is a singular layer. Check if this bucket already exists. If not, // parse this bucket. auto bucket_it = tile.buckets.find(layer_desc->bucket->name); @@ -157,4 +158,4 @@ std::unique_ptr<Bucket> TileParser::createSymbolBucket(const VectorTileLayer& la std::unique_ptr<SymbolBucket> bucket = std::make_unique<SymbolBucket>(symbol, collision); bucket->addFeatures(layer, filter, tile.id, *spriteAtlas, *sprite, *glyphAtlas, *glyphStore); return obsolete() ? nullptr : std::move(bucket); -} +}
\ No newline at end of file diff --git a/src/map/vector_tile_data.cpp b/src/map/vector_tile_data.cpp index 2bf339b65f..f4a841b3f5 100644 --- a/src/map/vector_tile_data.cpp +++ b/src/map/vector_tile_data.cpp @@ -58,6 +58,9 @@ void VectorTileData::render(Painter &painter, std::shared_ptr<StyleLayer> layer_ if (databucket_it != buckets.end()) { assert(databucket_it->second); databucket_it->second->render(painter, layer_desc, id); + } else if (layer_desc->type == StyleLayerType::Raster && layer_desc->layers) { +// HELP + } } } |