diff --git a/clutter/clutter/clutter-stage-private.h b/clutter/clutter/clutter-stage-private.h index 74d4f7bfd..b4255a475 100644 --- a/clutter/clutter/clutter-stage-private.h +++ b/clutter/clutter/clutter-stage-private.h @@ -40,6 +40,7 @@ void _clutter_stage_paint_view (ClutterStage ClutterStageView *view, const cairo_rectangle_int_t *clip); +void _clutter_stage_emit_after_paint (ClutterStage *stage); void _clutter_stage_set_window (ClutterStage *stage, ClutterStageWindow *stage_window); ClutterStageWindow *_clutter_stage_get_window (ClutterStage *stage); diff --git a/clutter/clutter/clutter-stage.c b/clutter/clutter/clutter-stage.c index 8c4562e54..bb7227221 100644 --- a/clutter/clutter/clutter-stage.c +++ b/clutter/clutter/clutter-stage.c @@ -683,6 +683,11 @@ _clutter_stage_paint_view (ClutterStage *stage, COGL_TRACE_BEGIN_SCOPED (ClutterStagePaintView, "Paint (view)"); clutter_stage_do_paint_view (stage, view, clip); +} + +void +_clutter_stage_emit_after_paint (ClutterStage *stage) +{ g_signal_emit (stage, stage_signals[AFTER_PAINT], 0); } diff --git a/clutter/clutter/cogl/clutter-stage-cogl.c b/clutter/clutter/cogl/clutter-stage-cogl.c index 8898a3b64..8f97a5fa6 100644 --- a/clutter/clutter/cogl/clutter-stage-cogl.c +++ b/clutter/clutter/cogl/clutter-stage-cogl.c @@ -983,6 +983,8 @@ clutter_stage_cogl_redraw (ClutterStageWindow *stage_window) clutter_stage_cogl_redraw_view (stage_window, view) || swap_event; } + _clutter_stage_emit_after_paint (stage_cogl->wrapper); + _clutter_stage_window_finish_frame (stage_window); if (swap_event)