mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2025-12-20 07:00:03 +01:00
xwayland: Refactor xwl_present_for_each_frame_callback helper
Preparation for following changes, no functional change intended.
(cherry picked from commit 4d1cd7cdc2)
This commit is contained in:
parent
f44cdcf466
commit
c74e1e4072
3 changed files with 20 additions and 27 deletions
|
|
@ -89,6 +89,18 @@ xwl_present_event_from_id(uint64_t event_id)
|
|||
return (struct xwl_present_event*)(uintptr_t)event_id;
|
||||
}
|
||||
|
||||
void
|
||||
xwl_present_for_each_frame_callback(struct xwl_window *xwl_window,
|
||||
void iter_func(struct xwl_present_window *))
|
||||
{
|
||||
struct xwl_present_window *xwl_present_window, *tmp;
|
||||
|
||||
xorg_list_for_each_entry_safe(xwl_present_window, tmp,
|
||||
&xwl_window->frame_callback_list,
|
||||
frame_callback_list)
|
||||
iter_func(xwl_present_window);
|
||||
}
|
||||
|
||||
static void
|
||||
xwl_present_free_timer(struct xwl_present_window *xwl_present_window)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -61,6 +61,8 @@ struct xwl_present_event {
|
|||
PixmapPtr pixmap;
|
||||
};
|
||||
|
||||
void xwl_present_for_each_frame_callback(struct xwl_window *xwl_window,
|
||||
void iter_func(struct xwl_present_window *));
|
||||
void xwl_present_reset_timer(struct xwl_present_window *xwl_present_window);
|
||||
void xwl_present_frame_callback(struct xwl_present_window *xwl_present_window);
|
||||
Bool xwl_present_init(ScreenPtr screen);
|
||||
|
|
|
|||
|
|
@ -685,15 +685,8 @@ xwl_unrealize_window(WindowPtr window)
|
|||
xwl_window_disable_viewport(xwl_window);
|
||||
|
||||
#ifdef GLAMOR_HAS_GBM
|
||||
if (xwl_screen->present) {
|
||||
struct xwl_present_window *xwl_present_window, *tmp;
|
||||
|
||||
xorg_list_for_each_entry_safe(xwl_present_window, tmp,
|
||||
&xwl_window->frame_callback_list,
|
||||
frame_callback_list) {
|
||||
xwl_present_unrealize_window(xwl_present_window);
|
||||
}
|
||||
}
|
||||
if (xwl_window->xwl_screen->present)
|
||||
xwl_present_for_each_frame_callback(xwl_window, xwl_present_unrealize_window);
|
||||
#endif
|
||||
|
||||
release_wl_surface_for_window(xwl_window);
|
||||
|
|
@ -822,15 +815,8 @@ frame_callback(void *data,
|
|||
xwl_window->frame_callback = NULL;
|
||||
|
||||
#ifdef GLAMOR_HAS_GBM
|
||||
if (xwl_window->xwl_screen->present) {
|
||||
struct xwl_present_window *xwl_present_window, *tmp;
|
||||
|
||||
xorg_list_for_each_entry_safe(xwl_present_window, tmp,
|
||||
&xwl_window->frame_callback_list,
|
||||
frame_callback_list) {
|
||||
xwl_present_frame_callback(xwl_present_window);
|
||||
}
|
||||
}
|
||||
if (xwl_window->xwl_screen->present)
|
||||
xwl_present_for_each_frame_callback(xwl_window, xwl_present_frame_callback);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
@ -846,15 +832,8 @@ xwl_window_create_frame_callback(struct xwl_window *xwl_window)
|
|||
xwl_window);
|
||||
|
||||
#ifdef GLAMOR_HAS_GBM
|
||||
if (xwl_window->xwl_screen->present) {
|
||||
struct xwl_present_window *xwl_present_window, *tmp;
|
||||
|
||||
xorg_list_for_each_entry_safe(xwl_present_window, tmp,
|
||||
&xwl_window->frame_callback_list,
|
||||
frame_callback_list) {
|
||||
xwl_present_reset_timer(xwl_present_window);
|
||||
}
|
||||
}
|
||||
if (xwl_window->xwl_screen->present)
|
||||
xwl_present_for_each_frame_callback(xwl_window, xwl_present_reset_timer);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue