summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2023-01-24 11:59:17 -0300
committerRobert Mader <robert.mader@collabora.com>2023-04-07 12:19:23 +0200
commitb47d96b86248daa1451f25028e98609c0eca633c (patch)
tree7c32c72d7edeadb98c2320938e940c2680030679
parent81c9c43d26552dbe2c93d547e56571a21727a521 (diff)
downloadmutter-b47d96b86248daa1451f25028e98609c0eca633c.tar.gz
backends/stage: Pass ClutterFrame to MetaStageWatchFunc
We'll need to access the timestamp of the frame later on, so pass it to stage watchers. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2804>
-rw-r--r--src/backends/meta-screen-cast-area-stream-src.c2
-rw-r--r--src/backends/meta-screen-cast-monitor-stream-src.c2
-rw-r--r--src/backends/meta-screen-cast-virtual-stream-src.c1
-rw-r--r--src/backends/meta-stage-private.h1
-rw-r--r--src/backends/meta-stage.c13
-rw-r--r--src/tests/meta-ref-test.c1
6 files changed, 15 insertions, 5 deletions
diff --git a/src/backends/meta-screen-cast-area-stream-src.c b/src/backends/meta-screen-cast-area-stream-src.c
index c0b6b39c0..696a46e8f 100644
--- a/src/backends/meta-screen-cast-area-stream-src.c
+++ b/src/backends/meta-screen-cast-area-stream-src.c
@@ -248,6 +248,7 @@ static void
before_stage_painted (MetaStage *stage,
ClutterStageView *view,
ClutterPaintContext *paint_context,
+ ClutterFrame *frame,
gpointer user_data)
{
MetaScreenCastAreaStreamSrc *area_src =
@@ -267,6 +268,7 @@ static void
stage_painted (MetaStage *stage,
ClutterStageView *view,
ClutterPaintContext *paint_context,
+ ClutterFrame *frame,
gpointer user_data)
{
MetaScreenCastAreaStreamSrc *area_src =
diff --git a/src/backends/meta-screen-cast-monitor-stream-src.c b/src/backends/meta-screen-cast-monitor-stream-src.c
index 5ed744f56..ed0d854c1 100644
--- a/src/backends/meta-screen-cast-monitor-stream-src.c
+++ b/src/backends/meta-screen-cast-monitor-stream-src.c
@@ -152,6 +152,7 @@ static void
stage_painted (MetaStage *stage,
ClutterStageView *view,
ClutterPaintContext *paint_context,
+ ClutterFrame *frame,
gpointer user_data)
{
MetaScreenCastMonitorStreamSrc *monitor_src =
@@ -171,6 +172,7 @@ static void
before_stage_painted (MetaStage *stage,
ClutterStageView *view,
ClutterPaintContext *paint_context,
+ ClutterFrame *frame,
gpointer user_data)
{
MetaScreenCastMonitorStreamSrc *monitor_src =
diff --git a/src/backends/meta-screen-cast-virtual-stream-src.c b/src/backends/meta-screen-cast-virtual-stream-src.c
index 9cb8e98f5..edf6e861b 100644
--- a/src/backends/meta-screen-cast-virtual-stream-src.c
+++ b/src/backends/meta-screen-cast-virtual-stream-src.c
@@ -186,6 +186,7 @@ static void
actors_painted (MetaStage *stage,
ClutterStageView *view,
ClutterPaintContext *paint_context,
+ ClutterFrame *frame,
gpointer user_data)
{
MetaScreenCastStreamSrc *src = META_SCREEN_CAST_STREAM_SRC (user_data);
diff --git a/src/backends/meta-stage-private.h b/src/backends/meta-stage-private.h
index e296e274e..809e71a52 100644
--- a/src/backends/meta-stage-private.h
+++ b/src/backends/meta-stage-private.h
@@ -42,6 +42,7 @@ typedef enum
typedef void (* MetaStageWatchFunc) (MetaStage *stage,
ClutterStageView *view,
ClutterPaintContext *paint_context,
+ ClutterFrame *frame,
gpointer user_data);
ClutterActor *meta_stage_new (MetaBackend *backend);
diff --git a/src/backends/meta-stage.c b/src/backends/meta-stage.c
index e3f4ae077..2599daef0 100644
--- a/src/backends/meta-stage.c
+++ b/src/backends/meta-stage.c
@@ -189,6 +189,7 @@ static void
notify_watchers_for_mode (MetaStage *stage,
ClutterStageView *view,
ClutterPaintContext *paint_context,
+ ClutterFrame *frame,
MetaStageWatchPhase watch_phase)
{
GPtrArray *watchers;
@@ -203,7 +204,7 @@ notify_watchers_for_mode (MetaStage *stage,
if (watch->view && view != watch->view)
continue;
- watch->callback (stage, view, paint_context, watch->user_data);
+ watch->callback (stage, view, paint_context, frame, watch->user_data);
}
}
@@ -214,7 +215,7 @@ meta_stage_before_paint (ClutterStage *stage,
{
MetaStage *meta_stage = META_STAGE (stage);
- notify_watchers_for_mode (meta_stage, view, NULL,
+ notify_watchers_for_mode (meta_stage, view, NULL, frame,
META_STAGE_WATCH_BEFORE_PAINT);
}
@@ -224,13 +225,15 @@ meta_stage_paint (ClutterActor *actor,
{
MetaStage *stage = META_STAGE (actor);
ClutterStageView *view;
+ ClutterFrame *frame;
CLUTTER_ACTOR_CLASS (meta_stage_parent_class)->paint (actor, paint_context);
+ frame = clutter_paint_context_get_frame (paint_context);
view = clutter_paint_context_get_stage_view (paint_context);
if (view)
{
- notify_watchers_for_mode (stage, view, paint_context,
+ notify_watchers_for_mode (stage, view, paint_context, frame,
META_STAGE_WATCH_AFTER_ACTOR_PAINT);
}
@@ -260,7 +263,7 @@ meta_stage_paint (ClutterActor *actor,
if (view)
{
- notify_watchers_for_mode (stage, view, paint_context,
+ notify_watchers_for_mode (stage, view, paint_context, frame,
META_STAGE_WATCH_AFTER_OVERLAY_PAINT);
}
}
@@ -277,7 +280,7 @@ meta_stage_paint_view (ClutterStage *stage,
redraw_clip,
frame);
- notify_watchers_for_mode (meta_stage, view, NULL,
+ notify_watchers_for_mode (meta_stage, view, NULL, frame,
META_STAGE_WATCH_AFTER_PAINT);
}
diff --git a/src/tests/meta-ref-test.c b/src/tests/meta-ref-test.c
index 0c019365d..4861f3b95 100644
--- a/src/tests/meta-ref-test.c
+++ b/src/tests/meta-ref-test.c
@@ -273,6 +273,7 @@ static void
on_after_paint (MetaStage *stage,
ClutterStageView *view,
ClutterPaintContext *paint_context,
+ ClutterFrame *frame,
gpointer user_data)
{
CaptureViewData *data = user_data;