summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2015-08-14 17:15:34 +0300
committerKonstantin Käfer <mail@kkaefer.com>2015-08-19 18:21:12 -0400
commitbb0ae37c25b0fffaa324cc25bbec59001487eac9 (patch)
treec07570f74acbb93e8f273ec4c559a897b59378e4
parent85908c338112ff8d5bbe3fc4cb63258af5b38a8b (diff)
downloadqtlocation-mapboxgl-bb0ae37c25b0fffaa324cc25bbec59001487eac9.tar.gz
disable debugging groups in non-debug builds
Use a macro to completely remove all instantiations of mbgl::gl::debugging::group so that we aren't executing the code to generate the arguments to the object instantiation
-rw-r--r--src/mbgl/gl/debugging.cpp5
-rw-r--r--src/mbgl/gl/debugging.hpp8
-rw-r--r--src/mbgl/map/source.cpp2
-rw-r--r--src/mbgl/renderer/painter.cpp20
-rw-r--r--src/mbgl/renderer/painter_clipping.cpp2
-rw-r--r--src/mbgl/renderer/painter_debug.cpp6
6 files changed, 23 insertions, 20 deletions
diff --git a/src/mbgl/gl/debugging.cpp b/src/mbgl/gl/debugging.cpp
index 5fc90e8274..31e4016dbc 100644
--- a/src/mbgl/gl/debugging.cpp
+++ b/src/mbgl/gl/debugging.cpp
@@ -169,7 +169,6 @@ void enable() {
MBGL_CHECK_ERROR(DebugMessageCallback(debugCallback, nullptr));
}
-#if defined(DEBUG)
group::group(const std::string& str) {
if (PushDebugGroup) {
PushDebugGroup(GL_DEBUG_SOURCE_APPLICATION, 0, GLsizei(str.size()), str.c_str());
@@ -185,10 +184,6 @@ group::~group() {
PopGroupMarkerEXT();
}
}
-#else
-group::group(const std::string&) {}
-group::~group() = default;
-#endif
}
}
diff --git a/src/mbgl/gl/debugging.hpp b/src/mbgl/gl/debugging.hpp
index 82d08a53fb..046f0169d9 100644
--- a/src/mbgl/gl/debugging.hpp
+++ b/src/mbgl/gl/debugging.hpp
@@ -3,6 +3,14 @@
#include <string>
+#if defined(DEBUG)
+#define __MBGL_DEBUG_GROUP_NAME2(counter) __MBGL_DEBUG_GROUP_##counter
+#define __MBGL_DEBUG_GROUP_NAME(counter) __MBGL_DEBUG_GROUP_NAME2(counter)
+#define MBGL_DEBUG_GROUP(string) ::mbgl::gl::debugging::group __MBGL_DEBUG_GROUP_NAME(__LINE__)(string);
+#else
+#define MBGL_DEBUG_GROUP(string)
+#endif
+
namespace mbgl {
namespace gl {
namespace debugging {
diff --git a/src/mbgl/map/source.cpp b/src/mbgl/map/source.cpp
index 8d7929368c..518468af6e 100644
--- a/src/mbgl/map/source.cpp
+++ b/src/mbgl/map/source.cpp
@@ -186,7 +186,7 @@ void Source::updateMatrices(const mat4 &projMatrix, const TransformState &transf
void Source::drawClippingMasks(Painter &painter) {
for (const auto& pair : tiles) {
Tile &tile = *pair.second;
- gl::debugging::group group(std::string { "mask: " } + std::string(tile.id));
+ MBGL_DEBUG_GROUP(std::string { "mask: " } + std::string(tile.id));
painter.drawClippingMask(tile.matrix, tile.clip);
}
}
diff --git a/src/mbgl/renderer/painter.cpp b/src/mbgl/renderer/painter.cpp
index 16b44916a3..8011dfd05f 100644
--- a/src/mbgl/renderer/painter.cpp
+++ b/src/mbgl/renderer/painter.cpp
@@ -147,7 +147,7 @@ void Painter::changeMatrix() {
}
void Painter::clear() {
- gl::debugging::group group("clear");
+ MBGL_DEBUG_GROUP("clear");
config.stencilTest = true;
config.stencilMask = 0xFF;
config.depthTest = false;
@@ -190,7 +190,7 @@ void Painter::render(const Style& style, TransformState state_, const FrameData&
// - UPLOAD PASS -------------------------------------------------------------------------------
// Uploads all required buffers and images before we do any actual rendering.
{
- const gl::debugging::group upload("upload");
+ MBGL_DEBUG_GROUP("upload");
tileStencilBuffer.upload();
tileBorderBuffer.upload();
@@ -209,7 +209,7 @@ void Painter::render(const Style& style, TransformState state_, const FrameData&
// - CLIPPING MASKS ----------------------------------------------------------------------------
// Draws the clipping masks to the stencil buffer.
{
- const gl::debugging::group clip("clip");
+ MBGL_DEBUG_GROUP("clip");
// Update all clipping IDs.
ClipIDGenerator generator;
@@ -248,7 +248,7 @@ void Painter::render(const Style& style, TransformState state_, const FrameData&
// - DEBUG PASS --------------------------------------------------------------------------------
// Renders debug overlays.
{
- const gl::debugging::group _("debug");
+ MBGL_DEBUG_GROUP("debug");
// Finalize the rendering, e.g. by calling debug render calls per tile.
// This guarantees that we have at least one function per tile called.
@@ -262,7 +262,7 @@ void Painter::render(const Style& style, TransformState state_, const FrameData&
// TODO: Find a better way to unbind VAOs after we're done with them without introducing
// unnecessary bind(0)/bind(N) sequences.
{
- const gl::debugging::group _("cleanup");
+ MBGL_DEBUG_GROUP("cleanup");
MBGL_CHECK_ERROR(glBindTexture(GL_TEXTURE_2D, 0));
MBGL_CHECK_ERROR(VertexArrayObject::Unbind());
@@ -276,11 +276,11 @@ void Painter::renderPass(RenderPass pass_,
const float strataThickness) {
pass = pass_;
- const char * passName = pass == RenderPass::Opaque ? "opaque" : "translucent";
- const gl::debugging::group _(passName);
+ MBGL_DEBUG_GROUP(pass == RenderPass::Opaque ? "opaque" : "translucent");
if (debug::renderTree) {
- Log::Info(Event::Render, "%*s%s {", indent++ * 4, "", passName);
+ Log::Info(Event::Render, "%*s%s {", indent++ * 4, "",
+ pass == RenderPass::Opaque ? "opaque" : "translucent");
}
config.blend = pass == RenderPass::Translucent;
@@ -289,13 +289,13 @@ void Painter::renderPass(RenderPass pass_,
const auto& item = *it;
if (item.bucket && item.tile) {
if (item.hasRenderPass(pass)) {
- const gl::debugging::group group(item.layer.id + " - " + std::string(item.tile->id));
+ MBGL_DEBUG_GROUP(item.layer.id + " - " + std::string(item.tile->id));
setStrata(i * strataThickness);
prepareTile(*item.tile);
item.bucket->render(*this, item.layer, item.tile->id, item.tile->matrix);
}
} else {
- const gl::debugging::group group("background");
+ MBGL_DEBUG_GROUP("background");
setStrata(i * strataThickness);
renderBackground(item.layer);
}
diff --git a/src/mbgl/renderer/painter_clipping.cpp b/src/mbgl/renderer/painter_clipping.cpp
index 8ae51bc3ea..332d2876f5 100644
--- a/src/mbgl/renderer/painter_clipping.cpp
+++ b/src/mbgl/renderer/painter_clipping.cpp
@@ -7,7 +7,7 @@
using namespace mbgl;
void Painter::drawClippingMasks(const std::set<Source*>& sources) {
- gl::debugging::group group("clipping masks");
+ MBGL_DEBUG_GROUP("clipping masks");
useProgram(plainShader->program);
config.stencilTest = true;
diff --git a/src/mbgl/renderer/painter_debug.cpp b/src/mbgl/renderer/painter_debug.cpp
index aa3fcba5d2..f4f3a19cba 100644
--- a/src/mbgl/renderer/painter_debug.cpp
+++ b/src/mbgl/renderer/painter_debug.cpp
@@ -10,7 +10,7 @@
using namespace mbgl;
void Painter::renderTileDebug(const Tile& tile) {
- gl::debugging::group group(std::string { "debug " } + std::string(tile.id));
+ MBGL_DEBUG_GROUP(std::string { "debug " } + std::string(tile.id));
assert(tile.data);
if (debug) {
prepareTile(tile);
@@ -20,7 +20,7 @@ void Painter::renderTileDebug(const Tile& tile) {
}
void Painter::renderDebugText(DebugBucket& bucket, const mat4 &matrix) {
- gl::debugging::group group("debug text");
+ MBGL_DEBUG_GROUP("debug text");
config.depthTest = false;
@@ -47,7 +47,7 @@ void Painter::renderDebugText(DebugBucket& bucket, const mat4 &matrix) {
}
void Painter::renderDebugFrame(const mat4 &matrix) {
- gl::debugging::group group("debug frame");
+ MBGL_DEBUG_GROUP("debug frame");
// Disable depth test and don't count this towards the depth buffer,
// but *don't* disable stencil test, as we want to clip the red tile border