diff --git a/present/present_priv.h b/present/present_priv.h index 921184cc6..6d0588b1e 100644 --- a/present/present_priv.h +++ b/present/present_priv.h @@ -445,6 +445,11 @@ present_scmd_init_mode_hooks(present_screen_priv_ptr screen_priv); /* * present_screen.c */ +Bool +present_screen_register_priv_keys(void); + +present_screen_priv_ptr +present_screen_priv_init(ScreenPtr screen); /* * present_vblank.c diff --git a/present/present_screen.c b/present/present_screen.c index 7372c89d7..c2ae773a1 100644 --- a/present/present_screen.c +++ b/present/present_screen.c @@ -155,7 +155,7 @@ present_clip_notify(WindowPtr window, int dx, int dy) wrap(screen_priv, screen, ClipNotify, present_clip_notify); } -static Bool +Bool present_screen_register_priv_keys(void) { if (!dixRegisterPrivateKey(&present_screen_private_key, PRIVATE_SCREEN, 0)) @@ -167,7 +167,7 @@ present_screen_register_priv_keys(void) return TRUE; } -static present_screen_priv_ptr +present_screen_priv_ptr present_screen_priv_init(ScreenPtr screen) { present_screen_priv_ptr screen_priv; @@ -186,27 +186,6 @@ present_screen_priv_init(ScreenPtr screen) return screen_priv; } -/* - * Initialize a screen for use with present in window flip mode (wnmd) - */ -int -present_wnmd_screen_init(ScreenPtr screen, present_wnmd_info_ptr info) -{ - if (!present_screen_register_priv_keys()) - return FALSE; - - if (!present_screen_priv(screen)) { - present_screen_priv_ptr screen_priv = present_screen_priv_init(screen); - if (!screen_priv) - return FALSE; - - screen_priv->wnmd_info = info; - present_wnmd_init_mode_hooks(screen_priv); - } - - return TRUE; -} - /* * Initialize a screen for use with present in default screen flip mode (scmd) */ diff --git a/present/present_wnmd.c b/present/present_wnmd.c index d072d191a..ea8aa3123 100644 --- a/present/present_wnmd.c +++ b/present/present_wnmd.c @@ -725,3 +725,24 @@ present_wnmd_init_mode_hooks(present_screen_priv_ptr screen_priv) screen_priv->abort_vblank = &present_wnmd_abort_vblank; } + +/* + * Initialize a screen for use with present in window flip mode (wnmd) + */ +int +present_wnmd_screen_init(ScreenPtr screen, present_wnmd_info_ptr info) +{ + if (!present_screen_register_priv_keys()) + return FALSE; + + if (!present_screen_priv(screen)) { + present_screen_priv_ptr screen_priv = present_screen_priv_init(screen); + if (!screen_priv) + return FALSE; + + screen_priv->wnmd_info = info; + present_wnmd_init_mode_hooks(screen_priv); + } + + return TRUE; +}