mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-29 15:01:23 +00:00
1385ffd2c2
Use it to overlay an error pattern over all Cairo drawing done by renderers. This has 2 purposes: 1. It allows detecting fallbacks in GPU renderers. 2. Application code can use it to detect where it is using Cairo drawing. As such, it is meant to trigger both with cairo nodes as well as when renderers fallback for regular nodes. The old use of the debug flag - which were 2 not very useful print statements - was removed.
51 lines
1.8 KiB
C
51 lines
1.8 KiB
C
#pragma once
|
|
|
|
#include <glib.h>
|
|
#include "gdk/gdkdebugprivate.h"
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
typedef enum {
|
|
GSK_DEBUG_RENDERER = 1 << 0,
|
|
GSK_DEBUG_OPENGL = 1 << 1,
|
|
GSK_DEBUG_SHADERS = 1 << 2,
|
|
GSK_DEBUG_SURFACE = 1 << 3,
|
|
GSK_DEBUG_VULKAN = 1 << 4,
|
|
GSK_DEBUG_FALLBACK = 1 << 5,
|
|
GSK_DEBUG_GLYPH_CACHE = 1 << 6,
|
|
GSK_DEBUG_VERBOSE = 1 << 7,
|
|
/* flags below may affect behavior */
|
|
GSK_DEBUG_GEOMETRY = 1 << 8,
|
|
GSK_DEBUG_FULL_REDRAW = 1 << 9,
|
|
GSK_DEBUG_SYNC = 1 << 10,
|
|
GSK_DEBUG_STAGING = 1 << 11,
|
|
GSK_DEBUG_OFFLOAD_DISABLE = 1 << 12,
|
|
GSK_DEBUG_CAIRO = 1 << 13,
|
|
} GskDebugFlags;
|
|
|
|
#define GSK_DEBUG_ANY ((1 << 13) - 1)
|
|
|
|
GskDebugFlags gsk_get_debug_flags (void);
|
|
void gsk_set_debug_flags (GskDebugFlags flags);
|
|
|
|
gboolean gsk_check_debug_flags (GskDebugFlags flags);
|
|
|
|
#define GSK_DEBUG_CHECK(type) G_UNLIKELY (gsk_check_debug_flags (GSK_DEBUG_ ## type))
|
|
#define GSK_RENDERER_DEBUG_CHECK(renderer,type) \
|
|
G_UNLIKELY ((gsk_renderer_get_debug_flags (renderer) & GSK_DEBUG_ ## type) != 0)
|
|
|
|
#define GSK_RENDERER_DEBUG(renderer,type,...) \
|
|
G_STMT_START { \
|
|
if (GSK_RENDERER_DEBUG_CHECK (renderer,type)) \
|
|
gdk_debug_message (__VA_ARGS__); \
|
|
} G_STMT_END
|
|
|
|
#define GSK_DEBUG(type,...) \
|
|
G_STMT_START { \
|
|
if (GSK_DEBUG_CHECK (type)) \
|
|
gdk_debug_message (__VA_ARGS__); \
|
|
} G_STMT_END
|
|
|
|
G_END_DECLS
|
|
|