From 1e2e0f21b86857354450beb7da78eb0fbbc95c06 Mon Sep 17 00:00:00 2001 From: Neil Roberts Date: Mon, 6 Jun 2011 18:22:20 +0100 Subject: [PATCH] clutter-actor: Add a debug flag for disabling offscreen redirect This adds CLUTTER_PAINT=disable-offscreen-redirect to help diagnose problems with the correct opacity changes. This just makes it so that it never installs the flatten effect so it will never automatically redirect an actor offscreen. --- clutter/clutter-actor.c | 4 ++++ clutter/clutter-debug.h | 3 ++- clutter/clutter-main.c | 3 ++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c index 81ba12b57..bf34d3213 100644 --- a/clutter/clutter-actor.c +++ b/clutter/clutter-actor.c @@ -2700,6 +2700,10 @@ needs_flatten_effect (ClutterActor *self) { ClutterActorPrivate *priv = self->priv; + if (G_UNLIKELY (clutter_paint_debug_flags & + CLUTTER_DEBUG_DISABLE_OFFSCREEN_REDIRECT)) + return FALSE; + switch (priv->offscreen_redirect) { case CLUTTER_OFFSCREEN_REDIRECT_AUTOMATIC_FOR_OPACITY: diff --git a/clutter/clutter-debug.h b/clutter/clutter-debug.h index f3ee80515..9ee1e4447 100644 --- a/clutter/clutter-debug.h +++ b/clutter/clutter-debug.h @@ -39,7 +39,8 @@ typedef enum { CLUTTER_DEBUG_DISABLE_CLIPPED_REDRAWS = 1 << 1, CLUTTER_DEBUG_REDRAWS = 1 << 2, CLUTTER_DEBUG_PAINT_VOLUMES = 1 << 3, - CLUTTER_DEBUG_DISABLE_CULLING = 1 << 4 + CLUTTER_DEBUG_DISABLE_CULLING = 1 << 4, + CLUTTER_DEBUG_DISABLE_OFFSCREEN_REDIRECT = 1 << 5 } ClutterDrawDebugFlag; #ifdef CLUTTER_ENABLE_DEBUG diff --git a/clutter/clutter-main.c b/clutter/clutter-main.c index b7a63f472..934ca26d2 100644 --- a/clutter/clutter-main.c +++ b/clutter/clutter-main.c @@ -180,7 +180,8 @@ static const GDebugKey clutter_paint_debug_keys[] = { { "disable-clipped-redraws", CLUTTER_DEBUG_DISABLE_CLIPPED_REDRAWS }, { "redraws", CLUTTER_DEBUG_REDRAWS }, { "paint-volumes", CLUTTER_DEBUG_PAINT_VOLUMES }, - { "disable-culling", CLUTTER_DEBUG_DISABLE_CULLING } + { "disable-culling", CLUTTER_DEBUG_DISABLE_CULLING }, + { "disable-offscreen-redirect", CLUTTER_DEBUG_DISABLE_OFFSCREEN_REDIRECT } }; #ifdef CLUTTER_ENABLE_PROFILE