[PATCH 4/5] wined3d: Use the device name stored in the adapter in wined3d_get_adapter_mode_count().
Henri Verbeet
hverbeet at codeweavers.com
Thu Jun 28 06:11:13 CDT 2012
---
dlls/wined3d/directx.c | 55 +++++++++++++++++++++---------------------------
1 files changed, 24 insertions(+), 31 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 04eba78..ed93954 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -2891,48 +2891,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,
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));
if (adapter_idx >= wined3d->adapter_count)
return 0;
- /* TODO: Store modes per adapter and read it from the adapter structure */
- if (!adapter_idx)
- {
- 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;
+ adapter = &wined3d->adapters[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);
+ memset(&mode, 0, sizeof(mode));
+ mode.dmSize = sizeof(mode);
- while (EnumDisplaySettingsExW(NULL, j, &mode, 0))
+ while (EnumDisplaySettingsExW(adapter->DeviceName, j++, &mode, 0))
+ {
+ if (format_id == WINED3DFMT_UNKNOWN)
{
- ++j;
-
- if (format_id == WINED3DFMT_UNKNOWN)
- {
- /* This is for D3D8, do not enumerate P8 here */
- if (mode.dmBitsPerPel == 32 || mode.dmBitsPerPel == 16) ++i;
- }
- else if (mode.dmBitsPerPel == format_bits)
- {
- ++i;
- }
+ /* This is for d3d8, do not enumerate P8 here. */
+ if (mode.dmBitsPerPel == 32 || mode.dmBitsPerPel == 16) ++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 */
--
1.7.8.6
More information about the wine-patches
mailing list