ac21e7b182
This makes the #if 0'd debug code that was in _cogl_journal_flush_quad_batch - which we have repeatedly found usefull for debugging various geometry issues in Clutter apps - a runtime debug option. The outline colors rotate in order from red to green to blue which can also help confirm the order that your geometry really drawn. The outlines are not affected by the current material state, so if you e.g. have a blending bug where geometry mysteriously disappears this can confirm if the underlying rectangles are actually being emitted but blending is causing them to be invisible.
48 lines
1.3 KiB
C
48 lines
1.3 KiB
C
#ifndef __COGL_DEBUG_H__
|
|
#define __COGL_DEBUG_H__
|
|
|
|
#include <glib.h>
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
typedef enum {
|
|
COGL_DEBUG_MISC = 1 << 0,
|
|
COGL_DEBUG_TEXTURE = 1 << 1,
|
|
COGL_DEBUG_MATERIAL = 1 << 2,
|
|
COGL_DEBUG_SHADER = 1 << 3,
|
|
COGL_DEBUG_OFFSCREEN = 1 << 4,
|
|
COGL_DEBUG_DRAW = 1 << 5,
|
|
COGL_DEBUG_PANGO = 1 << 6,
|
|
COGL_DEBUG_RECTANGLES = 1 << 7
|
|
} CoglDebugFlags;
|
|
|
|
#ifdef COGL_ENABLE_DEBUG
|
|
|
|
#ifdef __GNUC__
|
|
#define COGL_NOTE(type,x,a...) G_STMT_START { \
|
|
if (cogl_debug_flags & COGL_DEBUG_##type) { \
|
|
g_message ("[" #type "] " G_STRLOC ": " x, ##a); \
|
|
} } G_STMT_END
|
|
|
|
#else
|
|
#define COGL_NOTE(type,...) G_STMT_START { \
|
|
if (cogl_debug_flags & COGL_DEBUG_##type) { \
|
|
gchar *_fmt = g_strdup_printf (__VA_ARGS__); \
|
|
g_message ("[" #type "] " G_STRLOC ": %s", _fmt); \
|
|
g_free (_fmt); \
|
|
} } G_STMT_END
|
|
|
|
#endif /* __GNUC__ */
|
|
|
|
#else /* !COGL_ENABLE_DEBUG */
|
|
|
|
#define COGL_NOTE(type,...)
|
|
|
|
#endif /* COGL_ENABLE_DEBUG */
|
|
|
|
extern guint cogl_debug_flags;
|
|
|
|
G_END_DECLS
|
|
|
|
#endif /* __COGL_DEBUG_H__ */
|