diff --git a/gfx/common/d3d_common.c b/gfx/common/d3d_common.c index 7d9d4e9eb1..25989f85d1 100644 --- a/gfx/common/d3d_common.c +++ b/gfx/common/d3d_common.c @@ -1696,3 +1696,30 @@ bool d3dx_compile_shader_from_file( #endif return false; } + +D3DFORMAT d3d_get_rgb565_format(void) +{ +#ifdef _XBOX + return D3DFMT_LIN_R5G6B5; +#else + return D3DFMT_R5G6B5; +#endif +} + +D3DFORMAT d3d_get_argb8888_format(void) +{ +#ifdef _XBOX + return D3DFMT_LIN_A8R8G8B8; +#else + return D3DFMT_A8R8G8B8; +#endif +} + +D3DFORMAT d3d_get_xrgb8888_format(void) +{ +#ifdef _XBOX + return D3DFMT_LIN_X8R8G8B8; +#else + return D3DFMT_X8R8G8B8; +#endif +} diff --git a/gfx/common/d3d_common.h b/gfx/common/d3d_common.h index 352e8630d5..a15210f2a5 100644 --- a/gfx/common/d3d_common.h +++ b/gfx/common/d3d_common.h @@ -247,6 +247,10 @@ bool d3dx_compile_shader_from_file( void *pperrormsgs, void *ppconstanttable); +D3DFORMAT d3d_get_rgb565_format(void); +D3DFORMAT d3d_get_argb8888_format(void); +D3DFORMAT d3d_get_xrgb8888_format(void); + RETRO_END_DECLS #endif diff --git a/gfx/drivers/d3d.c b/gfx/drivers/d3d.c index 760795f2d0..4c9c9a5f33 100644 --- a/gfx/drivers/d3d.c +++ b/gfx/drivers/d3d.c @@ -478,30 +478,12 @@ static void d3d_deinitialize(d3d_video_t *d3d) #define FS_PRESENTINTERVAL(pp) ((pp)->PresentationInterval) #endif -static D3DFORMAT d3d_get_argb8888_format(void) -{ -#ifdef _XBOX - return D3DFMT_LIN_A8R8G8B8; -#else - return D3DFMT_A8R8G8B8; -#endif -} - -static D3DFORMAT d3d_get_xrgb8888_format(void) -{ -#ifdef _XBOX - return D3DFMT_LIN_X8R8G8B8; -#else - return D3DFMT_X8R8G8B8; -#endif -} - static D3DFORMAT d3d_get_color_format_backbuffer(bool rgb32, bool windowed) { D3DFORMAT fmt = D3DFMT_X8R8G8B8; #ifdef _XBOX if (!rgb32) - fmt = D3DFMT_LIN_R5G6B5; + fmt = d3d_get_rgb565_format(); #else if (windowed) { diff --git a/gfx/drivers_renderchain/d3d8_renderchain.c b/gfx/drivers_renderchain/d3d8_renderchain.c index 5f0ecab003..c3614a8d9e 100644 --- a/gfx/drivers_renderchain/d3d8_renderchain.c +++ b/gfx/drivers_renderchain/d3d8_renderchain.c @@ -79,11 +79,7 @@ static bool d3d8_renderchain_create_first_pass(void *data, chain->tex_w, chain->tex_h, 1, 0, info->rgb32 ? -#ifdef _XBOX - D3DFMT_LIN_X8R8G8B8 : D3DFMT_LIN_R5G6B5, -#else - D3DFMT_X8R8G8B8 : D3DFMT_R5G6B5, -#endif + d3d_get_xrgb8888_format() : d3d_get_rgb565_format(), D3DPOOL_MANAGED, 0, 0, 0, NULL, NULL, false); diff --git a/gfx/drivers_renderchain/d3d9_cg_renderchain.c b/gfx/drivers_renderchain/d3d9_cg_renderchain.c index 3da5e92f0a..2ef293c041 100644 --- a/gfx/drivers_renderchain/d3d9_cg_renderchain.c +++ b/gfx/drivers_renderchain/d3d9_cg_renderchain.c @@ -864,7 +864,8 @@ static bool d3d9_cg_renderchain_create_first_pass( chain->prev.tex[i] = d3d_texture_new(chain->dev, NULL, info->tex_w, info->tex_h, 1, 0, - (fmt == RETRO_PIXEL_FORMAT_RGB565) ? D3DFMT_R5G6B5 : D3DFMT_X8R8G8B8, + (fmt == RETRO_PIXEL_FORMAT_RGB565) ? + d3d_get_rgb565_format() : d3d_get_xrgb8888_format(), D3DPOOL_MANAGED, 0, 0, 0, NULL, NULL, false); if (!chain->prev.tex[i]) @@ -945,7 +946,7 @@ static bool d3d9_cg_renderchain_set_pass_size( width, height, 1, D3DUSAGE_RENDERTARGET, chain->passes->data[chain->passes->count - 1].info.pass->fbo.fp_fbo ? - D3DFMT_A32B32G32R32F : D3DFMT_A8R8G8B8, + D3DFMT_A32B32G32R32F : d3d_get_argb8888_format(), D3DPOOL_DEFAULT, 0, 0, 0, NULL, NULL, false); @@ -1103,7 +1104,7 @@ static bool d3d9_cg_renderchain_add_pass( 1, D3DUSAGE_RENDERTARGET, chain->passes->data[chain->passes->count - 1].info.pass->fbo.fp_fbo - ? D3DFMT_A32B32G32R32F : D3DFMT_A8R8G8B8, + ? D3DFMT_A32B32G32R32F : d3d_get_argb8888_format(), D3DPOOL_DEFAULT, 0, 0, 0, NULL, NULL, false); if (!pass.tex) @@ -1648,7 +1649,8 @@ static bool d3d9_cg_renderchain_read_viewport( if ( !d3d_device_get_render_target(d3dr, 0, (void**)&target) || !d3d_device_create_offscreen_plain_surface(d3dr, width, height, - D3DFMT_X8R8G8B8, D3DPOOL_SYSTEMMEM, (void**)&dest, NULL) || + d3d_get_xrgb8888_format(), + D3DPOOL_SYSTEMMEM, (void**)&dest, NULL) || !d3d_device_get_render_target_data(d3dr, (void*)target, (void*)dest) ) { diff --git a/gfx/drivers_renderchain/d3d9_hlsl_renderchain.c b/gfx/drivers_renderchain/d3d9_hlsl_renderchain.c index c89775f94a..48308457ba 100644 --- a/gfx/drivers_renderchain/d3d9_hlsl_renderchain.c +++ b/gfx/drivers_renderchain/d3d9_hlsl_renderchain.c @@ -104,11 +104,8 @@ static bool hlsl_d3d9_renderchain_create_first_pass(void *data, chain->tex = d3d_texture_new(d3dr, NULL, chain->tex_w, chain->tex_h, 1, 0, -#ifdef _XBOX - info->rgb32 ? D3DFMT_LIN_X8R8G8B8 : D3DFMT_LIN_R5G6B5, -#else - info->rgb32 ? D3DFMT_X8R8G8B8 : D3DFMT_R5G6B5, -#endif + info->rgb32 ? + d3d_get_xrgb8888_format() : d3d_get_rgb565_format(), 0, 0, 0, 0, NULL, NULL, false); if (!chain->tex)