present: Add flip mode API hook for present_can_window_flip
Flip modes can now have different implementations of present_can_window_flip. Signed-off-by: Roman Gilg <subdiff@gmail.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
1db7cf0429
commit
84112a1d0b
|
@ -109,6 +109,15 @@ present_set_tree_pixmap(WindowPtr window,
|
||||||
TraverseTree(window, present_set_tree_pixmap_visit, &visit);
|
TraverseTree(window, present_set_tree_pixmap_visit, &visit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Bool
|
||||||
|
present_can_window_flip(WindowPtr window)
|
||||||
|
{
|
||||||
|
ScreenPtr screen = window->drawable.pScreen;
|
||||||
|
present_screen_priv_ptr screen_priv = present_screen_priv(screen);
|
||||||
|
|
||||||
|
return screen_priv->can_window_flip(window);
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
present_pixmap(WindowPtr window,
|
present_pixmap(WindowPtr window,
|
||||||
PixmapPtr pixmap,
|
PixmapPtr pixmap,
|
||||||
|
|
|
@ -97,6 +97,7 @@ typedef Bool (*present_priv_check_flip_ptr)(RRCrtcPtr crtc,
|
||||||
int16_t y_off,
|
int16_t y_off,
|
||||||
PresentFlipReason *reason);
|
PresentFlipReason *reason);
|
||||||
typedef void (*present_priv_check_flip_window_ptr)(WindowPtr window);
|
typedef void (*present_priv_check_flip_window_ptr)(WindowPtr window);
|
||||||
|
typedef Bool (*present_priv_can_window_flip_ptr)(WindowPtr window);
|
||||||
|
|
||||||
typedef int (*present_priv_pixmap_ptr)(WindowPtr window,
|
typedef int (*present_priv_pixmap_ptr)(WindowPtr window,
|
||||||
PixmapPtr pixmap,
|
PixmapPtr pixmap,
|
||||||
|
@ -148,6 +149,7 @@ typedef struct present_screen_priv {
|
||||||
/* Mode hooks */
|
/* Mode hooks */
|
||||||
present_priv_check_flip_ptr check_flip;
|
present_priv_check_flip_ptr check_flip;
|
||||||
present_priv_check_flip_window_ptr check_flip_window;
|
present_priv_check_flip_window_ptr check_flip_window;
|
||||||
|
present_priv_can_window_flip_ptr can_window_flip;
|
||||||
|
|
||||||
present_priv_pixmap_ptr present_pixmap;
|
present_priv_pixmap_ptr present_pixmap;
|
||||||
present_priv_create_event_id_ptr create_event_id;
|
present_priv_create_event_id_ptr create_event_id;
|
||||||
|
|
|
@ -512,8 +512,8 @@ present_check_flip_window (WindowPtr window)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Bool
|
static Bool
|
||||||
present_can_window_flip(WindowPtr window)
|
present_scmd_can_window_flip(WindowPtr window)
|
||||||
{
|
{
|
||||||
ScreenPtr screen = window->drawable.pScreen;
|
ScreenPtr screen = window->drawable.pScreen;
|
||||||
PixmapPtr window_pixmap;
|
PixmapPtr window_pixmap;
|
||||||
|
@ -852,6 +852,7 @@ present_scmd_init_mode_hooks(present_screen_priv_ptr screen_priv)
|
||||||
{
|
{
|
||||||
screen_priv->check_flip = &present_check_flip;
|
screen_priv->check_flip = &present_check_flip;
|
||||||
screen_priv->check_flip_window = &present_check_flip_window;
|
screen_priv->check_flip_window = &present_check_flip_window;
|
||||||
|
screen_priv->can_window_flip = &present_scmd_can_window_flip;
|
||||||
|
|
||||||
screen_priv->present_pixmap = &present_scmd_pixmap;
|
screen_priv->present_pixmap = &present_scmd_pixmap;
|
||||||
screen_priv->create_event_id = &present_scmd_create_event_id;
|
screen_priv->create_event_id = &present_scmd_create_event_id;
|
||||||
|
|
Loading…
Reference in New Issue