partially implemented fullscreen in changedisplay setting
I can play winquake in fullscreen now :)
Modified: trunk/reactos/subsys/win32k/objects/dc.c
_____
Modified: trunk/reactos/subsys/win32k/objects/dc.c
--- trunk/reactos/subsys/win32k/objects/dc.c 2005-05-26 21:55:34 UTC
(rev 15537)
+++ trunk/reactos/subsys/win32k/objects/dc.c 2005-05-26 22:41:31 UTC
(rev 15538)
@@ -2507,6 +2507,7 @@
BOOLEAN Reset = FALSE;
BOOLEAN SetPrimary = FALSE;
LONG Ret;
+ NTSTATUS Status;
DPRINT1("display flag : %x\n",dwflags);
@@ -2545,10 +2546,29 @@
if ((dwflags & CDS_FULLSCREEN) == CDS_FULLSCREEN)
{
+ DEVMODE lpDevMode;
/* Full Screen */
dwflags &= ~CDS_FULLSCREEN;
- DPRINT1("flag CDS_FULLSCREEN UNIMPLEMENT");
+ DPRINT1("flag CDS_FULLSCREEN partially implemented");
Ret = DISP_CHANGE_FAILED;
+
+ lpDevMode.dmBitsPerPel =0;
+ lpDevMode.dmPelsWidth =0;
+ lpDevMode.dmPelsHeight =0;
+ lpDevMode.dmDriverExtra =0;
+
+ lpDevMode.dmSize = sizeof(DEVMODE);
+ Status = IntEnumDisplaySettings(pDeviceName, ENUM_CURRENT_SETTINGS,
&lpDevMode, 0);
+ if (!NT_SUCCESS(Status)) return DISP_CHANGE_FAILED;
+
+ DPRINT1("Req Mode : %d x %d x %d\n",
DevMode->dmPelsWidth,DevMode->dmPelsHeight,DevMode->dmBitsPerPel);
+ DPRINT1("Current Mode : %d x %d x %d\n",
lpDevMode.dmPelsWidth,lpDevMode.dmPelsHeight, lpDevMode.dmBitsPerPel);
+
+
+ if ((lpDevMode.dmBitsPerPel == DevMode->dmBitsPerPel) &&
+ (lpDevMode.dmPelsWidth == DevMode->dmPelsWidth) &&
+ (lpDevMode.dmPelsHeight == DevMode->dmPelsHeight))
+ Ret = DISP_CHANGE_SUCCESSFUL;
}
if ((dwflags & CDS_VIDEOPARAMETERS) == CDS_VIDEOPARAMETERS)
@@ -2571,8 +2591,7 @@
WCHAR KernelModeNameBuffer[256];
UNICODE_STRING RegistryKey;
WCHAR RegistryKeyBuffer[512];
- PDEVICE_OBJECT DeviceObject;
- NTSTATUS Status;
+ PDEVICE_OBJECT DeviceObject;
ULONG LastSlash;
OBJECT_ATTRIBUTES ObjectAttributes;
HANDLE DevInstRegKey;