diff options
author | Lauren Budorick <lauren@mapbox.com> | 2014-08-08 15:50:35 -0700 |
---|---|---|
committer | Lauren Budorick <lauren@mapbox.com> | 2014-08-11 12:13:23 -0700 |
commit | 1ad2f26b9d753940e26d0ac3be96392feb73ae9e (patch) | |
tree | 1a9f6a799cae76d4255a3b8dbb2f5f9c8790dd72 /src | |
parent | 510aaef07fd4a26d39726e02998da2abc5d14649 (diff) | |
download | qtlocation-mapboxgl-1ad2f26b9d753940e26d0ac3be96392feb73ae9e.tar.gz |
VICTORY
Diffstat (limited to 'src')
-rw-r--r-- | src/map/map.cpp | 4 | ||||
-rw-r--r-- | src/map/raster_tile_data.cpp | 4 | ||||
-rw-r--r-- | src/map/source.cpp | 6 | ||||
-rw-r--r-- | src/map/vector_tile_data.cpp | 4 | ||||
-rw-r--r-- | src/renderer/debug_bucket.cpp | 4 | ||||
-rw-r--r-- | src/renderer/fill_bucket.cpp | 4 | ||||
-rw-r--r-- | src/renderer/line_bucket.cpp | 4 | ||||
-rw-r--r-- | src/renderer/painter.cpp | 8 | ||||
-rw-r--r-- | src/renderer/painter_debug.cpp | 8 | ||||
-rw-r--r-- | src/renderer/painter_fill.cpp | 4 | ||||
-rw-r--r-- | src/renderer/painter_line.cpp | 4 | ||||
-rw-r--r-- | src/renderer/painter_prerender.cpp | 2 | ||||
-rw-r--r-- | src/renderer/painter_raster.cpp | 10 | ||||
-rw-r--r-- | src/renderer/painter_symbol.cpp | 2 | ||||
-rw-r--r-- | src/renderer/raster_bucket.cpp | 4 | ||||
-rw-r--r-- | src/renderer/symbol_bucket.cpp | 4 |
16 files changed, 38 insertions, 38 deletions
diff --git a/src/map/map.cpp b/src/map/map.cpp index a289e46a29..6bbbfcc1eb 100644 --- a/src/map/map.cpp +++ b/src/map/map.cpp @@ -633,7 +633,7 @@ void Map::renderLayers(std::shared_ptr<StyleLayerGroup> group) { } } -void Map::renderLayer(std::shared_ptr<StyleLayer> layer_desc, RenderPass pass, const Tile::ID* id) { +void Map::renderLayer(std::shared_ptr<StyleLayer> layer_desc, RenderPass pass, const Tile::ID* id, const mat4* matrix) { 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) { @@ -719,7 +719,7 @@ void Map::renderLayer(std::shared_ptr<StyleLayer> layer_desc, RenderPass pass, c if (!id) { style_source.source->render(painter, layer_desc); } else { - style_source.source->render(painter, layer_desc, *id); + style_source.source->render(painter, layer_desc, *id, *matrix); } } } diff --git a/src/map/raster_tile_data.cpp b/src/map/raster_tile_data.cpp index a401fdc4df..182a614393 100644 --- a/src/map/raster_tile_data.cpp +++ b/src/map/raster_tile_data.cpp @@ -25,8 +25,8 @@ void RasterTileData::parse() { } } -void RasterTileData::render(Painter &painter, std::shared_ptr<StyleLayer> layer_desc) { - bucket.render(painter, layer_desc, id); +void RasterTileData::render(Painter &painter, std::shared_ptr<StyleLayer> layer_desc, const mat4 &matrix) { + bucket.render(painter, layer_desc, id, matrix); } bool RasterTileData::hasData(std::shared_ptr<StyleLayer> /*layer_desc*/) const { diff --git a/src/map/source.cpp b/src/map/source.cpp index c4cd3a51d9..bbe25969c1 100644 --- a/src/map/source.cpp +++ b/src/map/source.cpp @@ -83,15 +83,15 @@ void Source::render(Painter &painter, std::shared_ptr<StyleLayer> layer_desc) { for (const std::pair<const Tile::ID, std::unique_ptr<Tile>> &pair : tiles) { Tile &tile = *pair.second; if (tile.data && tile.data->state == TileData::State::parsed) { - painter.renderTileLayer(tile, layer_desc); + painter.renderTileLayer(tile, layer_desc, tile.matrix); } } } -void Source::render(Painter &painter, std::shared_ptr<StyleLayer> layer_desc, const Tile::ID &id) { +void Source::render(Painter &painter, std::shared_ptr<StyleLayer> layer_desc, const Tile::ID &id, const mat4 &matrix) { auto it = tiles.find(id); if (it != tiles.end() && it->second->data && it->second->data->state == TileData::State::parsed) { - painter.renderTileLayer(*it->second, layer_desc); + painter.renderTileLayer(*it->second, layer_desc, matrix); } } diff --git a/src/map/vector_tile_data.cpp b/src/map/vector_tile_data.cpp index 2bf339b65f..f1c67d8e16 100644 --- a/src/map/vector_tile_data.cpp +++ b/src/map/vector_tile_data.cpp @@ -52,12 +52,12 @@ void VectorTileData::afterParse() { parser.reset(); } -void VectorTileData::render(Painter &painter, std::shared_ptr<StyleLayer> layer_desc) { +void VectorTileData::render(Painter &painter, std::shared_ptr<StyleLayer> layer_desc, const mat4 &matrix) { if (state == State::parsed && layer_desc->bucket) { auto databucket_it = buckets.find(layer_desc->bucket->name); if (databucket_it != buckets.end()) { assert(databucket_it->second); - databucket_it->second->render(painter, layer_desc, id); + databucket_it->second->render(painter, layer_desc, id, matrix); } } } diff --git a/src/renderer/debug_bucket.cpp b/src/renderer/debug_bucket.cpp index e51dd75b1e..a3ac329f49 100644 --- a/src/renderer/debug_bucket.cpp +++ b/src/renderer/debug_bucket.cpp @@ -14,8 +14,8 @@ DebugBucket::DebugBucket(DebugFontBuffer& fontBuffer) : fontBuffer(fontBuffer) { } -void DebugBucket::render(Painter& painter, std::shared_ptr<StyleLayer> /*layer_desc*/, const Tile::ID& /*id*/) { - painter.renderDebugText(*this); +void DebugBucket::render(Painter& painter, std::shared_ptr<StyleLayer> /*layer_desc*/, const Tile::ID& /*id*/, const mat4 &matrix) { + painter.renderDebugText(*this, matrix); } bool DebugBucket::hasData() const { diff --git a/src/renderer/fill_bucket.cpp b/src/renderer/fill_bucket.cpp index 17aa2bccfc..4b4000ce97 100644 --- a/src/renderer/fill_bucket.cpp +++ b/src/renderer/fill_bucket.cpp @@ -204,8 +204,8 @@ void FillBucket::tessellate() { lineGroup.vertex_length += total_vertex_count; } -void FillBucket::render(Painter& painter, std::shared_ptr<StyleLayer> layer_desc, const Tile::ID& id) { - painter.renderFill(*this, layer_desc, id); +void FillBucket::render(Painter& painter, std::shared_ptr<StyleLayer> layer_desc, const Tile::ID& id, const mat4 &matrix) { + painter.renderFill(*this, layer_desc, id, matrix); } bool FillBucket::hasData() const { diff --git a/src/renderer/line_bucket.cpp b/src/renderer/line_bucket.cpp index 2e04820e42..949d71e134 100644 --- a/src/renderer/line_bucket.cpp +++ b/src/renderer/line_bucket.cpp @@ -341,8 +341,8 @@ void LineBucket::addGeometry(const std::vector<Coordinate>& vertices) { } } -void LineBucket::render(Painter& painter, std::shared_ptr<StyleLayer> layer_desc, const Tile::ID& id) { - painter.renderLine(*this, layer_desc, id); +void LineBucket::render(Painter& painter, std::shared_ptr<StyleLayer> layer_desc, const Tile::ID& id, const mat4 &matrix) { + painter.renderLine(*this, layer_desc, id, matrix); } bool LineBucket::hasData() const { diff --git a/src/renderer/painter.cpp b/src/renderer/painter.cpp index 6cdaf760ae..dc75b0abc0 100644 --- a/src/renderer/painter.cpp +++ b/src/renderer/painter.cpp @@ -164,25 +164,25 @@ void Painter::setStrata(float value) { } void Painter::prepareTile(const Tile& tile) { - matrix = tile.matrix; +// matrix = tile.matrix; GLint id = (GLint)tile.clip.mask.to_ulong(); GLuint mask = clipMask[tile.clip.length]; glStencilFunc(GL_EQUAL, id, mask); } -void Painter::renderTileLayer(const Tile& tile, std::shared_ptr<StyleLayer> layer_desc) { +void Painter::renderTileLayer(const Tile& tile, std::shared_ptr<StyleLayer> layer_desc, const mat4 &matrix) { assert(tile.data); if (tile.data->hasData(layer_desc) || layer_desc->type == StyleLayerType::Raster) { gl::group group(util::sprintf<32>("render %d/%d/%d\n", tile.id.z, tile.id.y, tile.id.z)); prepareTile(tile); - tile.data->render(*this, layer_desc); + tile.data->render(*this, layer_desc, matrix); frameHistory.record(map.getAnimationTime(), map.getState().getNormalizedZoom()); } } -const mat4 &Painter::translatedMatrix(const std::array<float, 2> &translation, const Tile::ID &id, TranslateAnchorType anchor) { +const mat4 &Painter::translatedMatrix(const mat4& matrix, const std::array<float, 2> &translation, const Tile::ID &id, TranslateAnchorType anchor) { if (translation[0] == 0 && translation[1] == 0) { return matrix; } else { diff --git a/src/renderer/painter_debug.cpp b/src/renderer/painter_debug.cpp index d79493e61e..eae655f1f5 100644 --- a/src/renderer/painter_debug.cpp +++ b/src/renderer/painter_debug.cpp @@ -10,12 +10,12 @@ void Painter::renderTileDebug(const Tile& tile) { assert(tile.data); if (debug) { prepareTile(tile); - renderDebugText(tile.data->debugBucket); - renderDebugFrame(); + renderDebugText(tile.data->debugBucket, tile.matrix); + renderDebugFrame(tile.matrix); } } -void Painter::renderDebugText(DebugBucket& bucket) { +void Painter::renderDebugText(DebugBucket& bucket, const mat4 &matrix) { gl::group group("debug text"); glDisable(GL_DEPTH_TEST); @@ -42,7 +42,7 @@ void Painter::renderDebugText(DebugBucket& bucket) { glEnable(GL_DEPTH_TEST); } -void Painter::renderDebugFrame() { +void Painter::renderDebugFrame(const mat4 &matrix) { gl::group group("debug frame"); // Disable depth test and don't count this towards the depth buffer, diff --git a/src/renderer/painter_fill.cpp b/src/renderer/painter_fill.cpp index d0bfcad83d..1717639338 100644 --- a/src/renderer/painter_fill.cpp +++ b/src/renderer/painter_fill.cpp @@ -146,10 +146,10 @@ void Painter::renderFill(FillBucket& bucket, const FillProperties& properties, c } } -void Painter::renderFill(FillBucket& bucket, std::shared_ptr<StyleLayer> layer_desc, const Tile::ID& id) { +void Painter::renderFill(FillBucket& bucket, std::shared_ptr<StyleLayer> layer_desc, const Tile::ID& id, const mat4 &matrix) { // Abort early. if (!bucket.hasData()) return; const FillProperties &properties = layer_desc->getProperties<FillProperties>(); - const mat4 &vtxMatrix = translatedMatrix(properties.translate, id, properties.translateAnchor); + const mat4 &vtxMatrix = translatedMatrix(matrix, properties.translate, id, properties.translateAnchor); renderFill(bucket, properties, id, vtxMatrix); } diff --git a/src/renderer/painter_line.cpp b/src/renderer/painter_line.cpp index dc09f58951..20c6491fcc 100644 --- a/src/renderer/painter_line.cpp +++ b/src/renderer/painter_line.cpp @@ -5,7 +5,7 @@ using namespace mbgl; -void Painter::renderLine(LineBucket& bucket, std::shared_ptr<StyleLayer> layer_desc, const Tile::ID& id) { +void Painter::renderLine(LineBucket& bucket, std::shared_ptr<StyleLayer> layer_desc, const Tile::ID& id, const mat4 &matrix) { // Abort early. if (pass == Opaque) return; if (!bucket.hasData()) return; @@ -31,7 +31,7 @@ void Painter::renderLine(LineBucket& bucket, std::shared_ptr<StyleLayer> layer_d float dash_length = properties.dash_array[0]; float dash_gap = properties.dash_array[1]; - const mat4 &vtxMatrix = translatedMatrix(properties.translate, id, properties.translateAnchor); + const mat4 &vtxMatrix = translatedMatrix(matrix, properties.translate, id, properties.translateAnchor); glDepthRange(strata, 1.0f); diff --git a/src/renderer/painter_prerender.cpp b/src/renderer/painter_prerender.cpp index 124a6c1fb3..42033271b1 100644 --- a/src/renderer/painter_prerender.cpp +++ b/src/renderer/painter_prerender.cpp @@ -27,7 +27,7 @@ void Painter::finishPrerender(RasterBucket &bucket) { glViewport(0, 0, gl_viewport[0], gl_viewport[1]); } -void Painter::renderPrerenderedTexture(RasterBucket &bucket) { +void Painter::renderPrerenderedTexture(RasterBucket &bucket, const mat4 &matrix) { const int buffer = bucket.properties.buffer * 4096.0f; // draw the texture on a quad diff --git a/src/renderer/painter_raster.cpp b/src/renderer/painter_raster.cpp index 8d8f263bac..723d4b5e4d 100644 --- a/src/renderer/painter_raster.cpp +++ b/src/renderer/painter_raster.cpp @@ -9,7 +9,7 @@ using namespace mbgl; -void Painter::renderRaster(RasterBucket& bucket, std::shared_ptr<StyleLayer> layer_desc, const Tile::ID& id) { +void Painter::renderRaster(RasterBucket& bucket, std::shared_ptr<StyleLayer> layer_desc, const Tile::ID& id, const mat4 &matrix) { if (pass != Translucent) return; const RasterProperties &properties = layer_desc->getProperties<RasterProperties>(); @@ -32,7 +32,7 @@ void Painter::renderRaster(RasterBucket& bucket, std::shared_ptr<StyleLayer> lay const mat4 oldMatrix = vtxMatrix; - const mat4 vtxMatrix = [&]{ + const mat4 preMatrix = [&]{ mat4 vtxMatrix; matrix::ortho(vtxMatrix, -buffer, 4096 + buffer, -4096 - buffer, buffer, 0, 1); matrix::translate(vtxMatrix, vtxMatrix, 0, -4096, 0); @@ -57,9 +57,9 @@ void Painter::renderRaster(RasterBucket& bucket, std::shared_ptr<StyleLayer> lay int i = 0; for (auto it = layer_desc->layers->layers.begin(), end = layer_desc->layers->layers.end(); it != end; ++it, --i) { setOpaque(); - map.renderLayer(*it, Map::RenderPass::Opaque, &id); + map.renderLayer(*it, Map::RenderPass::Opaque, &id, &preMatrix); setTranslucent(); - map.renderLayer(*it, Map::RenderPass::Translucent, &id); + map.renderLayer(*it, Map::RenderPass::Translucent, &id, &preMatrix); } // TODO make a separate renderLayer overload that takes a prerendered + tileID @@ -75,7 +75,7 @@ void Painter::renderRaster(RasterBucket& bucket, std::shared_ptr<StyleLayer> lay } - renderPrerenderedTexture(bucket); + renderPrerenderedTexture(bucket, matrix); } diff --git a/src/renderer/painter_symbol.cpp b/src/renderer/painter_symbol.cpp index a2238a3544..497051f772 100644 --- a/src/renderer/painter_symbol.cpp +++ b/src/renderer/painter_symbol.cpp @@ -10,7 +10,7 @@ namespace mbgl { void Painter::renderSymbol(SymbolBucket &bucket, std::shared_ptr<StyleLayer> layer_desc, - const Tile::ID &/*id*/) { + const Tile::ID &/*id*/, const mat4 &matrix) { // Abort early. if (pass == Opaque) { return; diff --git a/src/renderer/raster_bucket.cpp b/src/renderer/raster_bucket.cpp index 80f5039ac0..ddfff119e0 100644 --- a/src/renderer/raster_bucket.cpp +++ b/src/renderer/raster_bucket.cpp @@ -9,8 +9,8 @@ RasterBucket::RasterBucket(const std::shared_ptr<Texturepool> &texturepool, cons raster(texturepool) { } -void RasterBucket::render(Painter &painter, std::shared_ptr<StyleLayer> layer_desc, const Tile::ID &id) { - painter.renderRaster(*this, layer_desc, id); +void RasterBucket::render(Painter &painter, std::shared_ptr<StyleLayer> layer_desc, const Tile::ID &id, const mat4 &matrix) { + painter.renderRaster(*this, layer_desc, id, matrix); } bool RasterBucket::setImage(const std::string &data) { diff --git a/src/renderer/symbol_bucket.cpp b/src/renderer/symbol_bucket.cpp index 4072cf0c61..459c235da7 100644 --- a/src/renderer/symbol_bucket.cpp +++ b/src/renderer/symbol_bucket.cpp @@ -23,8 +23,8 @@ SymbolBucket::SymbolBucket(const StyleBucketSymbol &properties, Collision &colli : properties(properties), collision(collision) {} void SymbolBucket::render(Painter &painter, std::shared_ptr<StyleLayer> layer_desc, - const Tile::ID &id) { - painter.renderSymbol(*this, layer_desc, id); + const Tile::ID &id, const mat4 &matrix) { + painter.renderSymbol(*this, layer_desc, id, matrix); } bool SymbolBucket::hasData() const { return hasTextData() || hasIconData(); } |