texture: Forward queue redraw/relayout for fbos
When clutter_texture_new_from_actor is use we need to track when the source actor queues a redraw or a relayout so we can also queue a redraw or relayout for the texture actor.
This commit is contained in:
parent
1ea7145efc
commit
f8a6e36f1b
@ -2426,6 +2426,21 @@ on_fbo_parent_change (ClutterActor *actor,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
fbo_source_queue_redraw_cb (ClutterActor *source,
|
||||||
|
ClutterActor *origin,
|
||||||
|
ClutterTexture *texture)
|
||||||
|
{
|
||||||
|
clutter_actor_queue_redraw (CLUTTER_ACTOR (texture));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
fbo_source_queue_relayout_cb (ClutterActor *source,
|
||||||
|
ClutterTexture *texture)
|
||||||
|
{
|
||||||
|
clutter_actor_queue_relayout (CLUTTER_ACTOR (texture));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clutter_texture_new_from_actor:
|
* clutter_texture_new_from_actor:
|
||||||
* @actor: A source #ClutterActor
|
* @actor: A source #ClutterActor
|
||||||
@ -2589,6 +2604,11 @@ clutter_texture_new_from_actor (ClutterActor *actor)
|
|||||||
G_CALLBACK(on_fbo_source_size_change),
|
G_CALLBACK(on_fbo_source_size_change),
|
||||||
texture);
|
texture);
|
||||||
|
|
||||||
|
g_signal_connect (actor, "queue-relayout",
|
||||||
|
G_CALLBACK (fbo_source_queue_relayout_cb), texture);
|
||||||
|
g_signal_connect (actor, "queue-redraw",
|
||||||
|
G_CALLBACK (fbo_source_queue_redraw_cb), texture);
|
||||||
|
|
||||||
/* And a warning if the source becomes a child of the texture */
|
/* And a warning if the source becomes a child of the texture */
|
||||||
g_signal_connect (actor,
|
g_signal_connect (actor,
|
||||||
"parent-set",
|
"parent-set",
|
||||||
@ -2632,6 +2652,16 @@ texture_fbo_free_resources (ClutterTexture *texture)
|
|||||||
G_CALLBACK(on_fbo_source_size_change),
|
G_CALLBACK(on_fbo_source_size_change),
|
||||||
texture);
|
texture);
|
||||||
|
|
||||||
|
g_signal_handlers_disconnect_by_func
|
||||||
|
(priv->fbo_source,
|
||||||
|
G_CALLBACK(fbo_source_queue_relayout_cb),
|
||||||
|
texture);
|
||||||
|
|
||||||
|
g_signal_handlers_disconnect_by_func
|
||||||
|
(priv->fbo_source,
|
||||||
|
G_CALLBACK(fbo_source_queue_redraw_cb),
|
||||||
|
texture);
|
||||||
|
|
||||||
g_object_unref (priv->fbo_source);
|
g_object_unref (priv->fbo_source);
|
||||||
|
|
||||||
priv->fbo_source = NULL;
|
priv->fbo_source = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user