wined3d: Use the device name stored in the adapter in wined3d_get_adapter_mode_count().
This commit is contained in:
parent
e9d0367d29
commit
194ee40e07
|
@ -2894,48 +2894,41 @@ HMONITOR CDECL wined3d_get_adapter_monitor(const struct wined3d *wined3d, UINT a
|
||||||
UINT CDECL wined3d_get_adapter_mode_count(const struct wined3d *wined3d, UINT adapter_idx,
|
UINT CDECL wined3d_get_adapter_mode_count(const struct wined3d *wined3d, UINT adapter_idx,
|
||||||
enum wined3d_format_id format_id)
|
enum wined3d_format_id format_id)
|
||||||
{
|
{
|
||||||
|
const struct wined3d_adapter *adapter;
|
||||||
|
const struct wined3d_format *format;
|
||||||
|
unsigned int i = 0;
|
||||||
|
unsigned int j = 0;
|
||||||
|
UINT format_bits;
|
||||||
|
DEVMODEW mode;
|
||||||
|
|
||||||
TRACE("wined3d %p, adapter_idx %u, format %s.\n", wined3d, adapter_idx, debug_d3dformat(format_id));
|
TRACE("wined3d %p, adapter_idx %u, format %s.\n", wined3d, adapter_idx, debug_d3dformat(format_id));
|
||||||
|
|
||||||
if (adapter_idx >= wined3d->adapter_count)
|
if (adapter_idx >= wined3d->adapter_count)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* TODO: Store modes per adapter and read it from the adapter structure */
|
adapter = &wined3d->adapters[adapter_idx];
|
||||||
if (!adapter_idx)
|
format = wined3d_get_format(&adapter->gl_info, format_id);
|
||||||
|
format_bits = format->byte_count * CHAR_BIT;
|
||||||
|
|
||||||
|
memset(&mode, 0, sizeof(mode));
|
||||||
|
mode.dmSize = sizeof(mode);
|
||||||
|
|
||||||
|
while (EnumDisplaySettingsExW(adapter->DeviceName, j++, &mode, 0))
|
||||||
{
|
{
|
||||||
const struct wined3d_format *format = wined3d_get_format(&wined3d->adapters[adapter_idx].gl_info, format_id);
|
if (format_id == WINED3DFMT_UNKNOWN)
|
||||||
UINT format_bits = format->byte_count * CHAR_BIT;
|
|
||||||
unsigned int i = 0;
|
|
||||||
unsigned int j = 0;
|
|
||||||
DEVMODEW mode;
|
|
||||||
|
|
||||||
memset(&mode, 0, sizeof(mode));
|
|
||||||
mode.dmSize = sizeof(mode);
|
|
||||||
|
|
||||||
while (EnumDisplaySettingsExW(NULL, j, &mode, 0))
|
|
||||||
{
|
{
|
||||||
++j;
|
/* This is for d3d8, do not enumerate P8 here. */
|
||||||
|
if (mode.dmBitsPerPel == 32 || mode.dmBitsPerPel == 16) ++i;
|
||||||
if (format_id == WINED3DFMT_UNKNOWN)
|
}
|
||||||
{
|
else if (mode.dmBitsPerPel == format_bits)
|
||||||
/* This is for D3D8, do not enumerate P8 here */
|
{
|
||||||
if (mode.dmBitsPerPel == 32 || mode.dmBitsPerPel == 16) ++i;
|
++i;
|
||||||
}
|
|
||||||
else if (mode.dmBitsPerPel == format_bits)
|
|
||||||
{
|
|
||||||
++i;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TRACE("Returning %u matching modes (out of %u total) for adapter %u.\n", i, j, adapter_idx);
|
|
||||||
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FIXME("Adapter not primary display.\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
TRACE("Returning %u matching modes (out of %u total) for adapter %u.\n", i, j, adapter_idx);
|
||||||
|
|
||||||
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Note: dx9 supplies a format. Calls from d3d8 supply WINED3DFMT_UNKNOWN */
|
/* Note: dx9 supplies a format. Calls from d3d8 supply WINED3DFMT_UNKNOWN */
|
||||||
|
|
Loading…
Reference in New Issue