wined3d: Use the device name stored in the adapter in wined3d_get_adapter_mode_count().

This commit is contained in:
Henri Verbeet 2012-06-28 13:11:13 +02:00 committed by Alexandre Julliard
parent e9d0367d29
commit 194ee40e07
1 changed files with 25 additions and 32 deletions

View File

@ -2894,30 +2894,30 @@ 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;
const struct wined3d_format *format = wined3d_get_format(&wined3d->adapters[adapter_idx].gl_info, format_id);
UINT format_bits = format->byte_count * CHAR_BIT;
unsigned int i = 0;
unsigned int j = 0;
DEVMODEW mode;
memset(&mode, 0, sizeof(mode)); memset(&mode, 0, sizeof(mode));
mode.dmSize = sizeof(mode); mode.dmSize = sizeof(mode);
while (EnumDisplaySettingsExW(NULL, j, &mode, 0)) while (EnumDisplaySettingsExW(adapter->DeviceName, j++, &mode, 0))
{ {
++j;
if (format_id == WINED3DFMT_UNKNOWN) if (format_id == WINED3DFMT_UNKNOWN)
{ {
/* This is for D3D8, do not enumerate P8 here */ /* This is for d3d8, do not enumerate P8 here. */
if (mode.dmBitsPerPel == 32 || mode.dmBitsPerPel == 16) ++i; if (mode.dmBitsPerPel == 32 || mode.dmBitsPerPel == 16) ++i;
} }
else if (mode.dmBitsPerPel == format_bits) else if (mode.dmBitsPerPel == format_bits)
@ -2930,13 +2930,6 @@ UINT CDECL wined3d_get_adapter_mode_count(const struct wined3d *wined3d, UINT ad
return i; return i;
} }
else
{
FIXME("Adapter not primary display.\n");
}
return 0;
}
/* Note: dx9 supplies a format. Calls from d3d8 supply WINED3DFMT_UNKNOWN */ /* Note: dx9 supplies a format. Calls from d3d8 supply WINED3DFMT_UNKNOWN */
HRESULT CDECL wined3d_enum_adapter_modes(const struct wined3d *wined3d, UINT adapter_idx, HRESULT CDECL wined3d_enum_adapter_modes(const struct wined3d *wined3d, UINT adapter_idx,