mirror of
https://github.com/brl/mutter.git
synced 2024-11-29 19:40:43 -05:00
wayland/compositor: Process frame callbacks on 'after-update'
Instead of going via MetaCompositor to know about when we updated (confusingly named post-paint), use the new stage signal directly. Note that this doesn't change the time frame callbacks are dispatched; it's still not tied to actual painting even though it seemed so before given the function names. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1285
This commit is contained in:
parent
578c30792a
commit
8cff3b84f7
@ -1142,11 +1142,6 @@ meta_compositor_real_post_paint (MetaCompositor *compositor)
|
|||||||
meta_compositor_get_instance_private (compositor);
|
meta_compositor_get_instance_private (compositor);
|
||||||
CoglGraphicsResetStatus status;
|
CoglGraphicsResetStatus status;
|
||||||
|
|
||||||
#ifdef HAVE_WAYLAND
|
|
||||||
if (meta_is_wayland_compositor ())
|
|
||||||
meta_wayland_compositor_paint_finished (meta_wayland_compositor_get_default ());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
status = cogl_get_graphics_reset_status (priv->context);
|
status = cogl_get_graphics_reset_status (priv->context);
|
||||||
switch (status)
|
switch (status)
|
||||||
{
|
{
|
||||||
|
@ -194,8 +194,9 @@ meta_wayland_compositor_update (MetaWaylandCompositor *compositor,
|
|||||||
meta_wayland_seat_update (compositor->seat, event);
|
meta_wayland_seat_update (compositor->seat, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
meta_wayland_compositor_paint_finished (MetaWaylandCompositor *compositor)
|
on_after_update (ClutterStage *stage,
|
||||||
|
MetaWaylandCompositor *compositor)
|
||||||
{
|
{
|
||||||
GList *l;
|
GList *l;
|
||||||
int64_t now_us;
|
int64_t now_us;
|
||||||
@ -397,9 +398,9 @@ meta_wayland_compositor_new (MetaBackend *backend)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_wayland_compositor_setup (MetaWaylandCompositor *wayland_compositor)
|
meta_wayland_compositor_setup (MetaWaylandCompositor *compositor)
|
||||||
{
|
{
|
||||||
MetaWaylandCompositor *compositor = meta_wayland_compositor_get_default ();
|
ClutterActor *stage = meta_backend_get_stage (compositor->backend);
|
||||||
GSource *wayland_event_source;
|
GSource *wayland_event_source;
|
||||||
|
|
||||||
wayland_event_source = wayland_event_source_new (compositor->wayland_display);
|
wayland_event_source = wayland_event_source_new (compositor->wayland_display);
|
||||||
@ -413,6 +414,9 @@ meta_wayland_compositor_setup (MetaWaylandCompositor *wayland_compositor)
|
|||||||
g_source_set_priority (wayland_event_source, GDK_PRIORITY_EVENTS + 1);
|
g_source_set_priority (wayland_event_source, GDK_PRIORITY_EVENTS + 1);
|
||||||
g_source_attach (wayland_event_source, NULL);
|
g_source_attach (wayland_event_source, NULL);
|
||||||
|
|
||||||
|
g_signal_connect (stage, "after-update",
|
||||||
|
G_CALLBACK (on_after_update), compositor);
|
||||||
|
|
||||||
if (!wl_global_create (compositor->wayland_display,
|
if (!wl_global_create (compositor->wayland_display,
|
||||||
&wl_compositor_interface,
|
&wl_compositor_interface,
|
||||||
META_WL_COMPOSITOR_VERSION,
|
META_WL_COMPOSITOR_VERSION,
|
||||||
|
Loading…
Reference in New Issue
Block a user