wined3d: Avoid a redundant call to EnumDisplaySettingsExW() in wined3d_enum_adapter_modes().
This commit is contained in:
parent
91f02018c5
commit
b6bdb4286d
|
@ -2954,7 +2954,6 @@ HRESULT CDECL wined3d_enum_adapter_modes(const struct wined3d *wined3d, UINT ada
|
||||||
const struct wined3d_format *format = wined3d_get_format(&wined3d->adapters[adapter_idx].gl_info, format_id);
|
const struct wined3d_format *format = wined3d_get_format(&wined3d->adapters[adapter_idx].gl_info, format_id);
|
||||||
UINT format_bits = format->byte_count * CHAR_BIT;
|
UINT format_bits = format->byte_count * CHAR_BIT;
|
||||||
DEVMODEW DevModeW;
|
DEVMODEW DevModeW;
|
||||||
int ModeIdx = 0;
|
|
||||||
UINT i = 0;
|
UINT i = 0;
|
||||||
int j = 0;
|
int j = 0;
|
||||||
|
|
||||||
|
@ -2983,34 +2982,23 @@ HRESULT CDECL wined3d_enum_adapter_modes(const struct wined3d *wined3d, UINT ada
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ModeIdx = j - 1;
|
mode->width = DevModeW.dmPelsWidth;
|
||||||
|
mode->height = DevModeW.dmPelsHeight;
|
||||||
|
mode->refresh_rate = DEFAULT_REFRESH_RATE;
|
||||||
|
if (DevModeW.dmFields & DM_DISPLAYFREQUENCY)
|
||||||
|
mode->refresh_rate = DevModeW.dmDisplayFrequency;
|
||||||
|
|
||||||
/* Now get the display mode via the calculated index */
|
if (format_id == WINED3DFMT_UNKNOWN)
|
||||||
if (EnumDisplaySettingsExW(NULL, ModeIdx, &DevModeW, 0))
|
mode->format_id = pixelformat_for_depth(DevModeW.dmBitsPerPel);
|
||||||
{
|
|
||||||
mode->width = DevModeW.dmPelsWidth;
|
|
||||||
mode->height = DevModeW.dmPelsHeight;
|
|
||||||
mode->refresh_rate = DEFAULT_REFRESH_RATE;
|
|
||||||
if (DevModeW.dmFields & DM_DISPLAYFREQUENCY)
|
|
||||||
mode->refresh_rate = DevModeW.dmDisplayFrequency;
|
|
||||||
|
|
||||||
if (format_id == WINED3DFMT_UNKNOWN)
|
|
||||||
mode->format_id = pixelformat_for_depth(DevModeW.dmBitsPerPel);
|
|
||||||
else
|
|
||||||
mode->format_id = format_id;
|
|
||||||
|
|
||||||
if (!(DevModeW.dmFields & DM_DISPLAYFLAGS))
|
|
||||||
mode->scanline_ordering = WINED3D_SCANLINE_ORDERING_UNKNOWN;
|
|
||||||
else if (DevModeW.u2.dmDisplayFlags & DM_INTERLACED)
|
|
||||||
mode->scanline_ordering = WINED3D_SCANLINE_ORDERING_INTERLACED;
|
|
||||||
else
|
|
||||||
mode->scanline_ordering = WINED3D_SCANLINE_ORDERING_PROGRESSIVE;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
mode->format_id = format_id;
|
||||||
TRACE("Requested mode %u out of range.\n", mode_idx);
|
|
||||||
return WINED3DERR_INVALIDCALL;
|
if (!(DevModeW.dmFields & DM_DISPLAYFLAGS))
|
||||||
}
|
mode->scanline_ordering = WINED3D_SCANLINE_ORDERING_UNKNOWN;
|
||||||
|
else if (DevModeW.u2.dmDisplayFlags & DM_INTERLACED)
|
||||||
|
mode->scanline_ordering = WINED3D_SCANLINE_ORDERING_INTERLACED;
|
||||||
|
else
|
||||||
|
mode->scanline_ordering = WINED3D_SCANLINE_ORDERING_PROGRESSIVE;
|
||||||
|
|
||||||
TRACE("%ux%u@%u %u bpp, %s %#x.\n", mode->width, mode->height, mode->refresh_rate,
|
TRACE("%ux%u@%u %u bpp, %s %#x.\n", mode->width, mode->height, mode->refresh_rate,
|
||||||
DevModeW.dmBitsPerPel, debug_d3dformat(mode->format_id), mode->scanline_ordering);
|
DevModeW.dmBitsPerPel, debug_d3dformat(mode->format_id), mode->scanline_ordering);
|
||||||
|
|
Loading…
Reference in New Issue