Use D3D common format functions

This commit is contained in:
twinaphex 2018-01-20 16:45:45 +01:00
parent 2cb8b50cef
commit 4a5de7ed6a
6 changed files with 41 additions and 33 deletions

View File

@ -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
}

View File

@ -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

View File

@ -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)
{

View File

@ -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);

View File

@ -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)
)
{

View File

@ -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)