Create d3d_get_adapter_display_mode

This commit is contained in:
twinaphex 2018-01-06 16:10:05 +01:00
parent 23437f27b4
commit 9b52164b00
3 changed files with 30 additions and 1 deletions

View File

@ -263,6 +263,25 @@ void d3d_deinitialize_symbols(void)
#endif
}
bool d3d_get_adapter_display_mode(LPDIRECT3D d3d,
unsigned idx,
D3DDISPLAYMODE *display_mode)
{
if (!display_mode || !d3d)
return false;
#if defined(HAVE_D3D9) && !defined(__cplusplus)
if (FAILED(IDirect3D9_GetAdapterDisplayMode(d3d, idx, display_mode)))
return false;
#elif defined(HAVE_D3D8) && !defined(__cplusplus)
if (FAILED(IDirect3D8_GetAdapterDisplayMode(d3d, idx, display_mode)))
return false;
#else
if (FAILED(d3d->GetAdapterDisplayMode(idx, display_mode)))
return false;
#endif
return true;
}
bool d3d_swap(void *data, LPDIRECT3DDEVICE dev)
{
#if defined(_XBOX1)

View File

@ -159,6 +159,10 @@ void * d3d_matrix_identity(void *_pout);
void *d3d_matrix_rotation_z(void *_pout, float angle);
bool d3d_get_adapter_display_mode(LPDIRECT3D d3d,
unsigned idx,
D3DDISPLAYMODE *display_mode);
bool d3d_create_device(LPDIRECT3DDEVICE *dev,
D3DPRESENT_PARAMETERS *d3dpp,
LPDIRECT3D d3d,

View File

@ -509,7 +509,13 @@ static D3DFORMAT d3d_get_color_format_backbuffer(bool rgb32, bool windowed)
else
fmt = D3DFMT_LIN_R5G6B5;
#else
if (!windowed)
if (windowed)
{
D3DDISPLAYMODE display_mode;
if (d3d_get_adapter_display_mode(g_pD3D, 0, &display_mode))
fmt = display_mode.Format;
}
else
fmt = D3DFMT_X8R8G8B8;
#endif
return fmt;