diff options
author | Matthias Clasen <mclasen@redhat.com> | 2016-08-06 09:37:47 -0400 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2016-08-09 17:31:55 +0100 |
commit | 457094bda57070c284f51e327809b564681f07b5 (patch) | |
tree | 6ab13a810b7bb2784d8a7c977c8ec958e17c866c | |
parent | 8d14c67735762a06fdec3a0927f6b402c79297ac (diff) | |
download | gtk+-457094bda57070c284f51e327809b564681f07b5.tar.gz |
Some debug help
Make the bounds of drawing surfaces created by render nodes visible.
Trigger with GSK_DEBUG=surface.
-rw-r--r-- | gsk/gskdebug.c | 3 | ||||
-rw-r--r-- | gsk/gskdebugprivate.h | 3 | ||||
-rw-r--r-- | gsk/gskrendernode.c | 11 |
3 files changed, 15 insertions, 2 deletions
diff --git a/gsk/gskdebug.c b/gsk/gskdebug.c index 1e0dc1c0b3..216e118441 100644 --- a/gsk/gskdebug.c +++ b/gsk/gskdebug.c @@ -7,7 +7,8 @@ static const GDebugKey gsk_debug_keys[] = { { "cairo", GSK_DEBUG_CAIRO }, { "opengl", GSK_DEBUG_OPENGL }, { "shaders", GSK_DEBUG_SHADERS }, - { "transforms", GSK_DEBUG_TRANSFORMS } + { "transforms", GSK_DEBUG_TRANSFORMS }, + { "surface", GSK_DEBUG_SURFACE } }; #endif diff --git a/gsk/gskdebugprivate.h b/gsk/gskdebugprivate.h index 5ab23b2535..ee1857c97b 100644 --- a/gsk/gskdebugprivate.h +++ b/gsk/gskdebugprivate.h @@ -11,7 +11,8 @@ typedef enum { GSK_DEBUG_CAIRO = 1 << 2, GSK_DEBUG_OPENGL = 1 << 3, GSK_DEBUG_SHADERS = 1 << 4, - GSK_DEBUG_TRANSFORMS = 1 << 5 + GSK_DEBUG_TRANSFORMS = 1 << 5, + GSK_DEBUG_SURFACE = 1 << 6 } GskDebugFlags; typedef enum { diff --git a/gsk/gskrendernode.c b/gsk/gskrendernode.c index ecf38a27a0..a58b07102a 100644 --- a/gsk/gskrendernode.c +++ b/gsk/gskrendernode.c @@ -1370,6 +1370,17 @@ gsk_render_node_get_draw_context (GskRenderNode *node) node->bounds.size.width, node->bounds.size.height); cairo_clip (res); + if (GSK_DEBUG_CHECK (SURFACE)) + { + cairo_save (res); + cairo_rectangle (res, + node->bounds.origin.x + 1, node->bounds.origin.y + 1, + node->bounds.size.width - 2, node->bounds.size.height - 2); + cairo_set_source_rgba (res, 1, 0, 0, 0.5); + cairo_stroke (res); + cairo_restore (res); + } + return res; } |