diff options
-rw-r--r-- | src/mbgl/renderer/buckets/debug_bucket.cpp | 3 | ||||
-rw-r--r-- | src/mbgl/renderer/buckets/debug_bucket.hpp | 1 | ||||
-rw-r--r-- | src/mbgl/renderer/render_tile.cpp | 29 |
3 files changed, 19 insertions, 14 deletions
diff --git a/src/mbgl/renderer/buckets/debug_bucket.cpp b/src/mbgl/renderer/buckets/debug_bucket.cpp index 32a6e37aea..36cc0da188 100644 --- a/src/mbgl/renderer/buckets/debug_bucket.cpp +++ b/src/mbgl/renderer/buckets/debug_bucket.cpp @@ -21,7 +21,8 @@ DebugBucket::DebugBucket(const OverscaledTileID& id, complete(complete_), modified(std::move(modified_)), expires(std::move(expires_)), - debugMode(debugMode_) { + debugMode(debugMode_), + drawScopeID("__debug/borders/" + util::toString(id)) { gfx::VertexVector<FillLayoutVertex> vertices; gfx::IndexVector<gfx::Lines> indices; diff --git a/src/mbgl/renderer/buckets/debug_bucket.hpp b/src/mbgl/renderer/buckets/debug_bucket.hpp index 0335c096bd..30d5ff67c8 100644 --- a/src/mbgl/renderer/buckets/debug_bucket.hpp +++ b/src/mbgl/renderer/buckets/debug_bucket.hpp @@ -36,6 +36,7 @@ public: SegmentVector<DebugAttributes> segments; optional<gfx::VertexBuffer<DebugLayoutVertex>> vertexBuffer; optional<gfx::IndexBuffer> indexBuffer; + const std::string drawScopeID; }; } // namespace mbgl diff --git a/src/mbgl/renderer/render_tile.cpp b/src/mbgl/renderer/render_tile.cpp index 745a577683..636c184e9e 100644 --- a/src/mbgl/renderer/render_tile.cpp +++ b/src/mbgl/renderer/render_tile.cpp @@ -77,17 +77,19 @@ void RenderTile::finishRender(PaintParameters& parameters) { auto& program = parameters.programs.debug; - if (parameters.debugOptions & (MapDebugOptions::Timestamps | MapDebugOptions::ParseStatus)) { - if (!tile.debugBucket || tile.debugBucket->renderable != tile.isRenderable() || - tile.debugBucket->complete != tile.isComplete() || - !(tile.debugBucket->modified == tile.modified) || - !(tile.debugBucket->expires == tile.expires) || - tile.debugBucket->debugMode != parameters.debugOptions) { - tile.debugBucket = std::make_unique<DebugBucket>( - tile.id, tile.isRenderable(), tile.isComplete(), tile.modified, - tile.expires, parameters.debugOptions, parameters.context); - } + if (parameters.debugOptions != MapDebugOptions::NoDebug && + (!tile.debugBucket || tile.debugBucket->renderable != tile.isRenderable() || + tile.debugBucket->complete != tile.isComplete() || + !(tile.debugBucket->modified == tile.modified) || + !(tile.debugBucket->expires == tile.expires) || + tile.debugBucket->debugMode != parameters.debugOptions)) { + tile.debugBucket = std::make_unique<DebugBucket>( + tile.id, tile.isRenderable(), tile.isComplete(), tile.modified, tile.expires, + parameters.debugOptions, parameters.context); + } + if (parameters.debugOptions & (MapDebugOptions::Timestamps | MapDebugOptions::ParseStatus)) { + assert(tile.debugBucket); const auto allAttributeBindings = program.computeAllAttributeBindings( *tile.debugBucket->vertexBuffer, paintAttributeData, @@ -114,7 +116,7 @@ void RenderTile::finishRender(PaintParameters& parameters) { ), allAttributeBindings, DebugProgram::TextureBindings{}, - "debug" + "__debug/text-outline" ); program.draw( @@ -137,11 +139,12 @@ void RenderTile::finishRender(PaintParameters& parameters) { ), allAttributeBindings, DebugProgram::TextureBindings{}, - "debug" + "__debug/text" ); } if (parameters.debugOptions & MapDebugOptions::TileBorders) { + assert(tile.debugBucket); parameters.programs.debug.draw( parameters.context, gfx::LineStrip { 4.0f * parameters.pixelRatio }, @@ -166,7 +169,7 @@ void RenderTile::finishRender(PaintParameters& parameters) { properties ), DebugProgram::TextureBindings{}, - "debug" + tile.debugBucket->drawScopeID ); } } |