[PATCH xserver v3 07/24] present: Add flip mode API hook for present_can_window_flip
Roman Gilg
subdiff at gmail.com
Tue Mar 13 15:00:40 UTC 2018
Flip modes can now have different implementations of
present_can_window_flip.
Signed-off-by: Roman Gilg <subdiff at gmail.com>
---
present/present.c | 9 +++++++++
present/present_priv.h | 2 ++
present/present_scmd.c | 5 +++--
3 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/present/present.c b/present/present.c
index ddd9c1c..da45491 100644
--- a/present/present.c
+++ b/present/present.c
@@ -109,6 +109,15 @@ present_set_tree_pixmap(WindowPtr window,
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
present_pixmap(WindowPtr window,
PixmapPtr pixmap,
diff --git a/present/present_priv.h b/present/present_priv.h
index 27b8048..aee3e57 100644
--- a/present/present_priv.h
+++ b/present/present_priv.h
@@ -97,6 +97,7 @@ typedef Bool (*present_priv_check_flip_ptr)(RRCrtcPtr crtc,
int16_t y_off,
PresentFlipReason *reason);
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,
PixmapPtr pixmap,
@@ -148,6 +149,7 @@ typedef struct present_screen_priv {
/* Mode hooks */
present_priv_check_flip_ptr check_flip;
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_create_event_id_ptr create_event_id;
diff --git a/present/present_scmd.c b/present/present_scmd.c
index 8ba4b2e..7fd27ac 100644
--- a/present/present_scmd.c
+++ b/present/present_scmd.c
@@ -512,8 +512,8 @@ present_check_flip_window (WindowPtr window)
}
}
-Bool
-present_can_window_flip(WindowPtr window)
+static Bool
+present_scmd_can_window_flip(WindowPtr window)
{
ScreenPtr screen = window->drawable.pScreen;
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_window = &present_check_flip_window;
+ screen_priv->can_window_flip = &present_scmd_can_window_flip;
screen_priv->present_pixmap = &present_scmd_pixmap;
screen_priv->create_event_id = &present_scmd_create_event_id;
--
2.7.4
More information about the xorg-devel
mailing list