diff --git a/clutter/clutter-main.c b/clutter/clutter-main.c index 49ebd026f..860fa6f6d 100644 --- a/clutter/clutter-main.c +++ b/clutter/clutter-main.c @@ -3752,3 +3752,34 @@ _clutter_debug_message (const char *format, ...) _clutter_debug_messagev (format, args); va_end (args); } + +gboolean +_clutter_diagnostic_enabled (void) +{ + static const char *clutter_enable_diagnostic = NULL; + + if (G_UNLIKELY (clutter_enable_diagnostic == NULL)) + { + clutter_enable_diagnostic = g_getenv ("CLUTTER_ENABLE_DIAGNOSTIC"); + + if (clutter_enable_diagnostic == NULL) + clutter_enable_diagnostic = "0"; + } + + return *clutter_enable_diagnostic != '0'; +} + +void +_clutter_diagnostic_message (const char *format, ...) +{ + va_list args; + char *fmt; + + fmt = g_strconcat ("[DIAGNOSTIC]: ", format, NULL); + + va_start (args, format); + g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, fmt, args); + va_end (args); + + g_free (fmt); +} diff --git a/clutter/clutter-private.h b/clutter/clutter-private.h index 103bc204d..51841cf91 100644 --- a/clutter/clutter-private.h +++ b/clutter/clutter-private.h @@ -210,6 +210,10 @@ const gchar *_clutter_gettext (const gchar *str); gboolean _clutter_feature_init (GError **error); +/* Diagnostic mode */ +gboolean _clutter_diagnostic_enabled (void); +void _clutter_diagnostic_message (const char *fmt, ...); + /* Picking code */ guint _clutter_pixel_to_id (guchar pixel[4]); void _clutter_id_to_color (guint id,