Allow ensuring that a stage viewport is updated
Since we only update the GL viewport when we receive a ConfigureNotify event on X11, we also need a function to allow other toolkits to tell a stage that the viewport should be updated. This commit adds clutter_stage_ensure_viewport(), a function that simply sets the private SYNC_MATRICES flag on the stage and then queues a redraw. This function should be called by libraries integrating Clutter with other toolkits, like clutter-gtk or clutter-qt.
This commit is contained in:
parent
4f6cc0b25f
commit
f911a3a7a1
@ -1801,6 +1801,31 @@ clutter_stage_ensure_current (ClutterStage *stage)
|
|||||||
_clutter_backend_ensure_context (ctx->backend, stage);
|
_clutter_backend_ensure_context (ctx->backend, stage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* clutter_stage_ensure_viewport:
|
||||||
|
* @stage: a #ClutterStage
|
||||||
|
*
|
||||||
|
* Ensures that the GL viewport is updated with the current
|
||||||
|
* stage window size.
|
||||||
|
*
|
||||||
|
* This function will queue a redraw of @stage.
|
||||||
|
*
|
||||||
|
* This function should not be called by applications; it is used
|
||||||
|
* when embedding a #ClutterStage into a toolkit with another
|
||||||
|
* windowing system, like GTK+.
|
||||||
|
*
|
||||||
|
* Since: 1.0
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
clutter_stage_ensure_viewport (ClutterStage *stage)
|
||||||
|
{
|
||||||
|
g_return_if_fail (CLUTTER_IS_STAGE (stage));
|
||||||
|
|
||||||
|
CLUTTER_SET_PRIVATE_FLAGS (stage, CLUTTER_ACTOR_SYNC_MATRICES);
|
||||||
|
|
||||||
|
clutter_stage_queue_redraw (stage);
|
||||||
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
redraw_update_idle (gpointer user_data)
|
redraw_update_idle (gpointer user_data)
|
||||||
{
|
{
|
||||||
|
@ -229,6 +229,7 @@ ClutterActor * clutter_stage_get_key_focus (ClutterStage *stage);
|
|||||||
void clutter_stage_ensure_current (ClutterStage *stage);
|
void clutter_stage_ensure_current (ClutterStage *stage);
|
||||||
void clutter_stage_queue_redraw (ClutterStage *stage);
|
void clutter_stage_queue_redraw (ClutterStage *stage);
|
||||||
gboolean clutter_stage_is_default (ClutterStage *stage);
|
gboolean clutter_stage_is_default (ClutterStage *stage);
|
||||||
|
void clutter_stage_ensure_viewport (ClutterStage *stage);
|
||||||
|
|
||||||
/* Commodity macro */
|
/* Commodity macro */
|
||||||
#define clutter_stage_add(stage,actor) G_STMT_START { \
|
#define clutter_stage_add(stage,actor) G_STMT_START { \
|
||||||
|
Loading…
Reference in New Issue
Block a user