summaryrefslogtreecommitdiff
path: root/gsk/gskrenderer.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2018-01-14 09:52:52 -0500
committerMatthias Clasen <mclasen@redhat.com>2018-01-14 17:05:04 -0500
commitc56419818fac67cdf653e1254e68553f5371e7aa (patch)
tree36893f9a7495ad4c066bdc54845d927592651720 /gsk/gskrenderer.c
parent782c76c146dc0af26aeea50992f60e346e4f93f5 (diff)
downloadgtk+-c56419818fac67cdf653e1254e68553f5371e7aa.tar.gz
gsk: make logging per-renderer
Add a setter for per-renderer debug flags, and use them where possible. Some places don't have easy access to a renderer, so this is not complete. Also, use g_message instead of g_print throughout.
Diffstat (limited to 'gsk/gskrenderer.c')
-rw-r--r--gsk/gskrenderer.c31
1 files changed, 27 insertions, 4 deletions
diff --git a/gsk/gskrenderer.c b/gsk/gskrenderer.c
index 7f189c418f..6014fd28cf 100644
--- a/gsk/gskrenderer.c
+++ b/gsk/gskrenderer.c
@@ -76,6 +76,8 @@ typedef struct
GskProfiler *profiler;
+ GskDebugFlags debug_flags;
+
gboolean is_realized : 1;
} GskRendererPrivate;
@@ -314,6 +316,7 @@ gsk_renderer_init (GskRenderer *self)
GskRendererPrivate *priv = gsk_renderer_get_instance_private (self);
priv->profiler = gsk_profiler_new ();
+ priv->debug_flags = gsk_get_debug_flags ();
}
/**
@@ -515,7 +518,7 @@ gsk_renderer_render_texture (GskRenderer *renderer,
texture = GSK_RENDERER_GET_CLASS (renderer)->render_texture (renderer, root, viewport);
#ifdef G_ENABLE_DEBUG
- if (GSK_DEBUG_CHECK (RENDERER))
+ if (GSK_RENDERER_DEBUG_CHECK (renderer, RENDERER))
{
GString *buf = g_string_new ("*** Texture stats ***\n\n");
@@ -569,7 +572,7 @@ gsk_renderer_render (GskRenderer *renderer,
GSK_RENDERER_GET_CLASS (renderer)->render (renderer, root);
#ifdef G_ENABLE_DEBUG
- if (GSK_DEBUG_CHECK (RENDERER))
+ if (GSK_RENDERER_DEBUG_CHECK (renderer, RENDERER))
{
GString *buf = g_string_new ("*** Frame stats ***\n\n");
@@ -737,7 +740,7 @@ gsk_renderer_new_for_window (GdkWindow *window)
if (gsk_renderer_realize (renderer, window, &error))
{
- if (verbose || GSK_DEBUG_CHECK (RENDERER))
+ if (verbose || GSK_RENDERER_DEBUG_CHECK (renderer, RENDERER))
{
g_print ("Using renderer of type '%s' for window '%s'\n",
G_OBJECT_TYPE_NAME (renderer),
@@ -746,7 +749,7 @@ gsk_renderer_new_for_window (GdkWindow *window)
return renderer;
}
- if (verbose || GSK_DEBUG_CHECK (RENDERER))
+ if (verbose || GSK_RENDERER_DEBUG_CHECK (renderer, RENDERER))
{
g_print ("Failed to realize renderer of type '%s' for window '%s': %s\n",
G_OBJECT_TYPE_NAME (renderer),
@@ -846,3 +849,23 @@ gsk_renderer_end_draw_frame (GskRenderer *renderer,
GSK_RENDERER_GET_CLASS (renderer)->end_draw_frame (renderer, context);
}
+GskDebugFlags
+gsk_renderer_get_debug_flags (GskRenderer *renderer)
+{
+ GskRendererPrivate *priv = gsk_renderer_get_instance_private (renderer);
+
+ g_return_val_if_fail (GSK_IS_RENDERER (renderer), 0);
+
+ return priv->debug_flags;
+}
+
+void
+gsk_renderer_set_debug_flags (GskRenderer *renderer,
+ GskDebugFlags flags)
+{
+ GskRendererPrivate *priv = gsk_renderer_get_instance_private (renderer);
+
+ g_return_if_fail (GSK_IS_RENDERER (renderer));
+
+ priv->debug_flags = flags;
+}