From 4053776c27cde354acc36c27120c54427087721b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20K=C3=A4fer?= Date: Tue, 2 Apr 2019 14:11:37 +0200 Subject: [core] use unique names for debug segments --- src/mbgl/renderer/buckets/debug_bucket.cpp | 3 ++- src/mbgl/renderer/buckets/debug_bucket.hpp | 1 + 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 vertices; gfx::IndexVector 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 segments; optional> vertexBuffer; optional 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( - 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( + 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 ); } } -- cgit v1.2.1