From 92063fd9791bcdb84978e254322126ddcfaa594e Mon Sep 17 00:00:00 2001 From: twinaphex Date: Thu, 11 Sep 2014 19:17:39 +0200 Subject: [PATCH] (D3D) Move d3d_init to d3d_shared.h and share it across XDK and PC D3D --- gfx/d3d9/d3d.cpp | 41 ------------------------- gfx/d3d9/d3d_shared.h | 70 +++++++++++++++++++++++++++++++++++++++++++ gfx/d3d9/xdk_d3d.cpp | 68 ----------------------------------------- 3 files changed, 70 insertions(+), 109 deletions(-) diff --git a/gfx/d3d9/d3d.cpp b/gfx/d3d9/d3d.cpp index 830992a96e..70597ca5fc 100644 --- a/gfx/d3d9/d3d.cpp +++ b/gfx/d3d9/d3d.cpp @@ -712,47 +712,6 @@ static void d3d_get_poke_interface(void *data, *iface = &d3d_poke_interface; } -static void *d3d_init(const video_info_t *info, const input_driver_t **input, - void **input_data) -{ - d3d_video_t *vid = new d3d_video_t(); - if (!vid) - return NULL; - - vid->ctx_driver = d3d_get_context(NULL); - if (!vid->ctx_driver) - { - delete vid; - return NULL; - } - - /* default values */ - vid->g_pD3D = NULL; - vid->dev = NULL; -#ifndef _XBOX - vid->font = NULL; -#endif - vid->dev_rotation = 0; - vid->needs_restore = false; -#ifdef HAVE_CG - vid->cgCtx = NULL; -#endif -#ifdef HAVE_OVERLAY - vid->overlays_enabled = false; -#endif - vid->chain = NULL; - vid->menu = NULL; - - if (!d3d_construct(vid, info, input, input_data)) - { - RARCH_ERR("[D3D]: Failed to init D3D.\n"); - delete vid; - return NULL; - } - - return vid; -} - video_driver_t video_d3d = { d3d_init, d3d_frame, diff --git a/gfx/d3d9/d3d_shared.h b/gfx/d3d9/d3d_shared.h index e76f73a5d6..a4284a745a 100644 --- a/gfx/d3d9/d3d_shared.h +++ b/gfx/d3d9/d3d_shared.h @@ -576,3 +576,73 @@ static const gfx_ctx_driver_t *d3d_get_context(void *data) return gfx_ctx_init_first(driver.video_data, api, major, minor, false); } + +static void *d3d_init(const video_info_t *info, + const input_driver_t **input, void **input_data) +{ +#ifdef _XBOX + if (driver.video_data) + { + d3d_video_t *vid = (d3d_video_t*)driver.video_data; + + /* Reinitialize renderchain as we + * might have changed pixel formats.*/ + d3d_reinit_renderchain(vid, info); + + if (input && input_data) + { + *input = driver.input; + *input_data = driver.input_data; + } + + driver.video_data_own = true; + driver.input_data_own = true; + return driver.video_data; + } +#endif + + d3d_video_t *vid = new d3d_video_t(); + if (!vid) + return NULL; + + vid->ctx_driver = d3d_get_context(vid); + if (!vid->ctx_driver) + { + free(vid); + return NULL; + } + + /* Default values */ + vid->g_pD3D = NULL; + vid->dev = NULL; +#ifndef _XBOX + vid->font = NULL; +#endif + vid->dev_rotation = 0; + vid->needs_restore = false; +#ifdef HAVE_CG + vid->cgCtx = NULL; +#endif +#ifdef HAVE_OVERLAY + vid->overlays_enabled = false; +#endif +#ifdef _XBOX + vid->should_resize = false; +#endif + vid->vsync = info->vsync; + vid->menu = NULL; + + if (!d3d_construct(vid, info, input, input_data)) + { + RARCH_ERR("[D3D]: Failed to init D3D.\n"); + delete vid; + return NULL; + } + +#ifdef _XBOX + driver.video_data_own = true; + driver.input_data_own = true; +#endif + + return vid; +} diff --git a/gfx/d3d9/xdk_d3d.cpp b/gfx/d3d9/xdk_d3d.cpp index 74c0445b77..82df400da8 100644 --- a/gfx/d3d9/xdk_d3d.cpp +++ b/gfx/d3d9/xdk_d3d.cpp @@ -420,74 +420,6 @@ static void d3d_get_poke_interface(void *data, *iface = &d3d_poke_interface; } -static void *d3d_init(const video_info_t *info, - const input_driver_t **input, void **input_data) -{ -#ifdef _XBOX - if (driver.video_data) - { - d3d_video_t *vid = (d3d_video_t*)driver.video_data; - - /* Reinitialize renderchain as we - * might have changed pixel formats.*/ - d3d_reinit_renderchain(vid, info); - - if (input && input_data) - { - *input = driver.input; - *input_data = driver.input_data; - } - - driver.video_data_own = true; - driver.input_data_own = true; - return driver.video_data; - } -#endif - - d3d_video_t *vid = new d3d_video_t(); - if (!vid) - return NULL; - - vid->ctx_driver = d3d_get_context(vid); - if (!vid->ctx_driver) - { - free(vid); - return NULL; - } - - /* Default values */ - vid->g_pD3D = NULL; - vid->dev = NULL; -#ifndef _XBOX - vid->font = NULL; -#endif - vid->dev_rotation = 0; - vid->needs_restore = false; -#ifdef HAVE_CG - vid->cgCtx = NULL; -#endif -#ifdef HAVE_OVERLAY - vid->overlays_enabled = false; -#endif - vid->should_resize = false; - vid->vsync = info->vsync; - vid->menu = NULL; - - if (!d3d_construct(vid, info, input, input_data)) - { - RARCH_ERR("[D3D]: Failed to init D3D.\n"); - delete vid; - return NULL; - } - -#ifdef _XBOX - driver.video_data_own = true; - driver.input_data_own = true; -#endif - - return vid; -} - static bool d3d_read_viewport(void *data, uint8_t *buffer) { (void)data;