Roderick Colenbrander : wined3d:
Pass the proper DeviceName to ChangeDisplaySettings.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Aug 14 07:12:53 CDT 2007
Module: wine
Branch: master
Commit: 6b177c44e10d7c1495de2de2ca605e03a8a11d05
URL: http://source.winehq.org/git/wine.git/?a=commit;h=6b177c44e10d7c1495de2de2ca605e03a8a11d05
Author: Roderick Colenbrander <thunderbird2k at gmx.net>
Date: Mon Aug 13 16:47:17 2007 +0200
wined3d: Pass the proper DeviceName to ChangeDisplaySettings.
---
dlls/wined3d/device.c | 3 +--
dlls/wined3d/directx.c | 8 ++++++++
dlls/wined3d/wined3d_private.h | 1 +
3 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index b0c0b20..11679af 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -1343,8 +1343,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateAdditionalSwapChain(IWineD3DDevic
devmode.dmBitsPerPel = (bpp >= 24) ? 32 : bpp; /* Stupid XVidMode cannot change bpp */
devmode.dmPelsWidth = pPresentationParameters->BackBufferWidth;
devmode.dmPelsHeight = pPresentationParameters->BackBufferHeight;
- MultiByteToWideChar(CP_ACP, 0, "Gamers CG", -1, devmode.dmDeviceName, CCHDEVICENAME);
- ChangeDisplaySettingsExW(devmode.dmDeviceName, &devmode, object->win_handle, CDS_FULLSCREEN, NULL);
+ ChangeDisplaySettingsExW(This->adapter->DeviceName, &devmode, NULL, CDS_FULLSCREEN, NULL);
/* For GetDisplayMode */
This->ddraw_width = devmode.dmPelsWidth;
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 13fcf51..563c714 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -2479,6 +2479,8 @@ BOOL InitAdapters(void) {
/* For now only one default adapter */
{
int attribute;
+ DISPLAY_DEVICEW DisplayDevice;
+
TRACE("Initializing default adapter\n");
Adapters[0].monitorPoint.x = -1;
Adapters[0].monitorPoint.y = -1;
@@ -2499,6 +2501,12 @@ BOOL InitAdapters(void) {
Adapters[0].driver = "Display";
Adapters[0].description = "Direct3D HAL";
+ /* Initialize the Adapter's DeviceName which is required for ChangeDisplaySettings and friends */
+ DisplayDevice.cb = sizeof(DisplayDevice);
+ EnumDisplayDevicesW(NULL, 0 /* Adapter 0 = iDevNum 0 */, &DisplayDevice, 0);
+ TRACE("DeviceName: %s\n", debugstr_w(DisplayDevice.DeviceName));
+ strcpyW(Adapters[0].DeviceName, DisplayDevice.DeviceName);
+
if (WineD3D_CreateFakeGLContext()) {
int iPixelFormat;
int attribs[8];
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 3ceb767..159844e 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -588,6 +588,7 @@ struct WineD3DAdapter
WineD3D_GL_Info gl_info;
const char *driver;
const char *description;
+ WCHAR DeviceName[CCHDEVICENAME]; /* DeviceName for use with e.g. ChangeDisplaySettings */
int nCfgs;
WineD3D_PixelFormat *cfgs;
};
More information about the wine-cvs
mailing list