diff src/video/windx5/SDL_dx5video.c @ 1895:c121d94672cb

SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
author Sam Lantinga <slouken@libsdl.org>
date Mon, 10 Jul 2006 21:04:37 +0000
parents 339d733e3699
children
line wrap: on
line diff
--- a/src/video/windx5/SDL_dx5video.c	Thu Jul 06 18:01:37 2006 +0000
+++ b/src/video/windx5/SDL_dx5video.c	Mon Jul 10 21:04:37 2006 +0000
@@ -56,14 +56,17 @@
 
 
 /* DirectX function pointers for video and events */
-HRESULT (WINAPI *DDrawCreate)( GUID FAR *lpGUID, LPDIRECTDRAW FAR *lplpDD, IUnknown FAR *pUnkOuter );
-HRESULT (WINAPI *DInputCreate)(HINSTANCE hinst, DWORD dwVersion, LPDIRECTINPUT *ppDI, LPUNKNOWN punkOuter);
+HRESULT(WINAPI * DDrawCreate) (GUID FAR * lpGUID, LPDIRECTDRAW FAR * lplpDD,
+                               IUnknown FAR * pUnkOuter);
+HRESULT(WINAPI * DInputCreate) (HINSTANCE hinst, DWORD dwVersion,
+                                LPDIRECTINPUT * ppDI, LPUNKNOWN punkOuter);
 
 /* This is the rect EnumModes2 uses */
-struct DX5EnumRect {
-	SDL_Rect r;
-	int refreshRate;
-	struct DX5EnumRect* next;
+struct DX5EnumRect
+{
+    SDL_Rect r;
+    int refreshRate;
+    struct DX5EnumRect *next;
 };
 static struct DX5EnumRect *enumlists[NUM_MODELISTS];
 
@@ -74,262 +77,262 @@
 /* Keyboard */
 
 static DIOBJECTDATAFORMAT KBD_fmt[] = {
-	{ &GUID_Key, 0, 0x8000000C, 0x00000000 },
-	{ &GUID_Key, 1, 0x8000010C, 0x00000000 },
-	{ &GUID_Key, 2, 0x8000020C, 0x00000000 },
-	{ &GUID_Key, 3, 0x8000030C, 0x00000000 },
-	{ &GUID_Key, 4, 0x8000040C, 0x00000000 },
-	{ &GUID_Key, 5, 0x8000050C, 0x00000000 },
-	{ &GUID_Key, 6, 0x8000060C, 0x00000000 },
-	{ &GUID_Key, 7, 0x8000070C, 0x00000000 },
-	{ &GUID_Key, 8, 0x8000080C, 0x00000000 },
-	{ &GUID_Key, 9, 0x8000090C, 0x00000000 },
-	{ &GUID_Key, 10, 0x80000A0C, 0x00000000 },
-	{ &GUID_Key, 11, 0x80000B0C, 0x00000000 },
-	{ &GUID_Key, 12, 0x80000C0C, 0x00000000 },
-	{ &GUID_Key, 13, 0x80000D0C, 0x00000000 },
-	{ &GUID_Key, 14, 0x80000E0C, 0x00000000 },
-	{ &GUID_Key, 15, 0x80000F0C, 0x00000000 },
-	{ &GUID_Key, 16, 0x8000100C, 0x00000000 },
-	{ &GUID_Key, 17, 0x8000110C, 0x00000000 },
-	{ &GUID_Key, 18, 0x8000120C, 0x00000000 },
-	{ &GUID_Key, 19, 0x8000130C, 0x00000000 },
-	{ &GUID_Key, 20, 0x8000140C, 0x00000000 },
-	{ &GUID_Key, 21, 0x8000150C, 0x00000000 },
-	{ &GUID_Key, 22, 0x8000160C, 0x00000000 },
-	{ &GUID_Key, 23, 0x8000170C, 0x00000000 },
-	{ &GUID_Key, 24, 0x8000180C, 0x00000000 },
-	{ &GUID_Key, 25, 0x8000190C, 0x00000000 },
-	{ &GUID_Key, 26, 0x80001A0C, 0x00000000 },
-	{ &GUID_Key, 27, 0x80001B0C, 0x00000000 },
-	{ &GUID_Key, 28, 0x80001C0C, 0x00000000 },
-	{ &GUID_Key, 29, 0x80001D0C, 0x00000000 },
-	{ &GUID_Key, 30, 0x80001E0C, 0x00000000 },
-	{ &GUID_Key, 31, 0x80001F0C, 0x00000000 },
-	{ &GUID_Key, 32, 0x8000200C, 0x00000000 },
-	{ &GUID_Key, 33, 0x8000210C, 0x00000000 },
-	{ &GUID_Key, 34, 0x8000220C, 0x00000000 },
-	{ &GUID_Key, 35, 0x8000230C, 0x00000000 },
-	{ &GUID_Key, 36, 0x8000240C, 0x00000000 },
-	{ &GUID_Key, 37, 0x8000250C, 0x00000000 },
-	{ &GUID_Key, 38, 0x8000260C, 0x00000000 },
-	{ &GUID_Key, 39, 0x8000270C, 0x00000000 },
-	{ &GUID_Key, 40, 0x8000280C, 0x00000000 },
-	{ &GUID_Key, 41, 0x8000290C, 0x00000000 },
-	{ &GUID_Key, 42, 0x80002A0C, 0x00000000 },
-	{ &GUID_Key, 43, 0x80002B0C, 0x00000000 },
-	{ &GUID_Key, 44, 0x80002C0C, 0x00000000 },
-	{ &GUID_Key, 45, 0x80002D0C, 0x00000000 },
-	{ &GUID_Key, 46, 0x80002E0C, 0x00000000 },
-	{ &GUID_Key, 47, 0x80002F0C, 0x00000000 },
-	{ &GUID_Key, 48, 0x8000300C, 0x00000000 },
-	{ &GUID_Key, 49, 0x8000310C, 0x00000000 },
-	{ &GUID_Key, 50, 0x8000320C, 0x00000000 },
-	{ &GUID_Key, 51, 0x8000330C, 0x00000000 },
-	{ &GUID_Key, 52, 0x8000340C, 0x00000000 },
-	{ &GUID_Key, 53, 0x8000350C, 0x00000000 },
-	{ &GUID_Key, 54, 0x8000360C, 0x00000000 },
-	{ &GUID_Key, 55, 0x8000370C, 0x00000000 },
-	{ &GUID_Key, 56, 0x8000380C, 0x00000000 },
-	{ &GUID_Key, 57, 0x8000390C, 0x00000000 },
-	{ &GUID_Key, 58, 0x80003A0C, 0x00000000 },
-	{ &GUID_Key, 59, 0x80003B0C, 0x00000000 },
-	{ &GUID_Key, 60, 0x80003C0C, 0x00000000 },
-	{ &GUID_Key, 61, 0x80003D0C, 0x00000000 },
-	{ &GUID_Key, 62, 0x80003E0C, 0x00000000 },
-	{ &GUID_Key, 63, 0x80003F0C, 0x00000000 },
-	{ &GUID_Key, 64, 0x8000400C, 0x00000000 },
-	{ &GUID_Key, 65, 0x8000410C, 0x00000000 },
-	{ &GUID_Key, 66, 0x8000420C, 0x00000000 },
-	{ &GUID_Key, 67, 0x8000430C, 0x00000000 },
-	{ &GUID_Key, 68, 0x8000440C, 0x00000000 },
-	{ &GUID_Key, 69, 0x8000450C, 0x00000000 },
-	{ &GUID_Key, 70, 0x8000460C, 0x00000000 },
-	{ &GUID_Key, 71, 0x8000470C, 0x00000000 },
-	{ &GUID_Key, 72, 0x8000480C, 0x00000000 },
-	{ &GUID_Key, 73, 0x8000490C, 0x00000000 },
-	{ &GUID_Key, 74, 0x80004A0C, 0x00000000 },
-	{ &GUID_Key, 75, 0x80004B0C, 0x00000000 },
-	{ &GUID_Key, 76, 0x80004C0C, 0x00000000 },
-	{ &GUID_Key, 77, 0x80004D0C, 0x00000000 },
-	{ &GUID_Key, 78, 0x80004E0C, 0x00000000 },
-	{ &GUID_Key, 79, 0x80004F0C, 0x00000000 },
-	{ &GUID_Key, 80, 0x8000500C, 0x00000000 },
-	{ &GUID_Key, 81, 0x8000510C, 0x00000000 },
-	{ &GUID_Key, 82, 0x8000520C, 0x00000000 },
-	{ &GUID_Key, 83, 0x8000530C, 0x00000000 },
-	{ &GUID_Key, 84, 0x8000540C, 0x00000000 },
-	{ &GUID_Key, 85, 0x8000550C, 0x00000000 },
-	{ &GUID_Key, 86, 0x8000560C, 0x00000000 },
-	{ &GUID_Key, 87, 0x8000570C, 0x00000000 },
-	{ &GUID_Key, 88, 0x8000580C, 0x00000000 },
-	{ &GUID_Key, 89, 0x8000590C, 0x00000000 },
-	{ &GUID_Key, 90, 0x80005A0C, 0x00000000 },
-	{ &GUID_Key, 91, 0x80005B0C, 0x00000000 },
-	{ &GUID_Key, 92, 0x80005C0C, 0x00000000 },
-	{ &GUID_Key, 93, 0x80005D0C, 0x00000000 },
-	{ &GUID_Key, 94, 0x80005E0C, 0x00000000 },
-	{ &GUID_Key, 95, 0x80005F0C, 0x00000000 },
-	{ &GUID_Key, 96, 0x8000600C, 0x00000000 },
-	{ &GUID_Key, 97, 0x8000610C, 0x00000000 },
-	{ &GUID_Key, 98, 0x8000620C, 0x00000000 },
-	{ &GUID_Key, 99, 0x8000630C, 0x00000000 },
-	{ &GUID_Key, 100, 0x8000640C, 0x00000000 },
-	{ &GUID_Key, 101, 0x8000650C, 0x00000000 },
-	{ &GUID_Key, 102, 0x8000660C, 0x00000000 },
-	{ &GUID_Key, 103, 0x8000670C, 0x00000000 },
-	{ &GUID_Key, 104, 0x8000680C, 0x00000000 },
-	{ &GUID_Key, 105, 0x8000690C, 0x00000000 },
-	{ &GUID_Key, 106, 0x80006A0C, 0x00000000 },
-	{ &GUID_Key, 107, 0x80006B0C, 0x00000000 },
-	{ &GUID_Key, 108, 0x80006C0C, 0x00000000 },
-	{ &GUID_Key, 109, 0x80006D0C, 0x00000000 },
-	{ &GUID_Key, 110, 0x80006E0C, 0x00000000 },
-	{ &GUID_Key, 111, 0x80006F0C, 0x00000000 },
-	{ &GUID_Key, 112, 0x8000700C, 0x00000000 },
-	{ &GUID_Key, 113, 0x8000710C, 0x00000000 },
-	{ &GUID_Key, 114, 0x8000720C, 0x00000000 },
-	{ &GUID_Key, 115, 0x8000730C, 0x00000000 },
-	{ &GUID_Key, 116, 0x8000740C, 0x00000000 },
-	{ &GUID_Key, 117, 0x8000750C, 0x00000000 },
-	{ &GUID_Key, 118, 0x8000760C, 0x00000000 },
-	{ &GUID_Key, 119, 0x8000770C, 0x00000000 },
-	{ &GUID_Key, 120, 0x8000780C, 0x00000000 },
-	{ &GUID_Key, 121, 0x8000790C, 0x00000000 },
-	{ &GUID_Key, 122, 0x80007A0C, 0x00000000 },
-	{ &GUID_Key, 123, 0x80007B0C, 0x00000000 },
-	{ &GUID_Key, 124, 0x80007C0C, 0x00000000 },
-	{ &GUID_Key, 125, 0x80007D0C, 0x00000000 },
-	{ &GUID_Key, 126, 0x80007E0C, 0x00000000 },
-	{ &GUID_Key, 127, 0x80007F0C, 0x00000000 },
-	{ &GUID_Key, 128, 0x8000800C, 0x00000000 },
-	{ &GUID_Key, 129, 0x8000810C, 0x00000000 },
-	{ &GUID_Key, 130, 0x8000820C, 0x00000000 },
-	{ &GUID_Key, 131, 0x8000830C, 0x00000000 },
-	{ &GUID_Key, 132, 0x8000840C, 0x00000000 },
-	{ &GUID_Key, 133, 0x8000850C, 0x00000000 },
-	{ &GUID_Key, 134, 0x8000860C, 0x00000000 },
-	{ &GUID_Key, 135, 0x8000870C, 0x00000000 },
-	{ &GUID_Key, 136, 0x8000880C, 0x00000000 },
-	{ &GUID_Key, 137, 0x8000890C, 0x00000000 },
-	{ &GUID_Key, 138, 0x80008A0C, 0x00000000 },
-	{ &GUID_Key, 139, 0x80008B0C, 0x00000000 },
-	{ &GUID_Key, 140, 0x80008C0C, 0x00000000 },
-	{ &GUID_Key, 141, 0x80008D0C, 0x00000000 },
-	{ &GUID_Key, 142, 0x80008E0C, 0x00000000 },
-	{ &GUID_Key, 143, 0x80008F0C, 0x00000000 },
-	{ &GUID_Key, 144, 0x8000900C, 0x00000000 },
-	{ &GUID_Key, 145, 0x8000910C, 0x00000000 },
-	{ &GUID_Key, 146, 0x8000920C, 0x00000000 },
-	{ &GUID_Key, 147, 0x8000930C, 0x00000000 },
-	{ &GUID_Key, 148, 0x8000940C, 0x00000000 },
-	{ &GUID_Key, 149, 0x8000950C, 0x00000000 },
-	{ &GUID_Key, 150, 0x8000960C, 0x00000000 },
-	{ &GUID_Key, 151, 0x8000970C, 0x00000000 },
-	{ &GUID_Key, 152, 0x8000980C, 0x00000000 },
-	{ &GUID_Key, 153, 0x8000990C, 0x00000000 },
-	{ &GUID_Key, 154, 0x80009A0C, 0x00000000 },
-	{ &GUID_Key, 155, 0x80009B0C, 0x00000000 },
-	{ &GUID_Key, 156, 0x80009C0C, 0x00000000 },
-	{ &GUID_Key, 157, 0x80009D0C, 0x00000000 },
-	{ &GUID_Key, 158, 0x80009E0C, 0x00000000 },
-	{ &GUID_Key, 159, 0x80009F0C, 0x00000000 },
-	{ &GUID_Key, 160, 0x8000A00C, 0x00000000 },
-	{ &GUID_Key, 161, 0x8000A10C, 0x00000000 },
-	{ &GUID_Key, 162, 0x8000A20C, 0x00000000 },
-	{ &GUID_Key, 163, 0x8000A30C, 0x00000000 },
-	{ &GUID_Key, 164, 0x8000A40C, 0x00000000 },
-	{ &GUID_Key, 165, 0x8000A50C, 0x00000000 },
-	{ &GUID_Key, 166, 0x8000A60C, 0x00000000 },
-	{ &GUID_Key, 167, 0x8000A70C, 0x00000000 },
-	{ &GUID_Key, 168, 0x8000A80C, 0x00000000 },
-	{ &GUID_Key, 169, 0x8000A90C, 0x00000000 },
-	{ &GUID_Key, 170, 0x8000AA0C, 0x00000000 },
-	{ &GUID_Key, 171, 0x8000AB0C, 0x00000000 },
-	{ &GUID_Key, 172, 0x8000AC0C, 0x00000000 },
-	{ &GUID_Key, 173, 0x8000AD0C, 0x00000000 },
-	{ &GUID_Key, 174, 0x8000AE0C, 0x00000000 },
-	{ &GUID_Key, 175, 0x8000AF0C, 0x00000000 },
-	{ &GUID_Key, 176, 0x8000B00C, 0x00000000 },
-	{ &GUID_Key, 177, 0x8000B10C, 0x00000000 },
-	{ &GUID_Key, 178, 0x8000B20C, 0x00000000 },
-	{ &GUID_Key, 179, 0x8000B30C, 0x00000000 },
-	{ &GUID_Key, 180, 0x8000B40C, 0x00000000 },
-	{ &GUID_Key, 181, 0x8000B50C, 0x00000000 },
-	{ &GUID_Key, 182, 0x8000B60C, 0x00000000 },
-	{ &GUID_Key, 183, 0x8000B70C, 0x00000000 },
-	{ &GUID_Key, 184, 0x8000B80C, 0x00000000 },
-	{ &GUID_Key, 185, 0x8000B90C, 0x00000000 },
-	{ &GUID_Key, 186, 0x8000BA0C, 0x00000000 },
-	{ &GUID_Key, 187, 0x8000BB0C, 0x00000000 },
-	{ &GUID_Key, 188, 0x8000BC0C, 0x00000000 },
-	{ &GUID_Key, 189, 0x8000BD0C, 0x00000000 },
-	{ &GUID_Key, 190, 0x8000BE0C, 0x00000000 },
-	{ &GUID_Key, 191, 0x8000BF0C, 0x00000000 },
-	{ &GUID_Key, 192, 0x8000C00C, 0x00000000 },
-	{ &GUID_Key, 193, 0x8000C10C, 0x00000000 },
-	{ &GUID_Key, 194, 0x8000C20C, 0x00000000 },
-	{ &GUID_Key, 195, 0x8000C30C, 0x00000000 },
-	{ &GUID_Key, 196, 0x8000C40C, 0x00000000 },
-	{ &GUID_Key, 197, 0x8000C50C, 0x00000000 },
-	{ &GUID_Key, 198, 0x8000C60C, 0x00000000 },
-	{ &GUID_Key, 199, 0x8000C70C, 0x00000000 },
-	{ &GUID_Key, 200, 0x8000C80C, 0x00000000 },
-	{ &GUID_Key, 201, 0x8000C90C, 0x00000000 },
-	{ &GUID_Key, 202, 0x8000CA0C, 0x00000000 },
-	{ &GUID_Key, 203, 0x8000CB0C, 0x00000000 },
-	{ &GUID_Key, 204, 0x8000CC0C, 0x00000000 },
-	{ &GUID_Key, 205, 0x8000CD0C, 0x00000000 },
-	{ &GUID_Key, 206, 0x8000CE0C, 0x00000000 },
-	{ &GUID_Key, 207, 0x8000CF0C, 0x00000000 },
-	{ &GUID_Key, 208, 0x8000D00C, 0x00000000 },
-	{ &GUID_Key, 209, 0x8000D10C, 0x00000000 },
-	{ &GUID_Key, 210, 0x8000D20C, 0x00000000 },
-	{ &GUID_Key, 211, 0x8000D30C, 0x00000000 },
-	{ &GUID_Key, 212, 0x8000D40C, 0x00000000 },
-	{ &GUID_Key, 213, 0x8000D50C, 0x00000000 },
-	{ &GUID_Key, 214, 0x8000D60C, 0x00000000 },
-	{ &GUID_Key, 215, 0x8000D70C, 0x00000000 },
-	{ &GUID_Key, 216, 0x8000D80C, 0x00000000 },
-	{ &GUID_Key, 217, 0x8000D90C, 0x00000000 },
-	{ &GUID_Key, 218, 0x8000DA0C, 0x00000000 },
-	{ &GUID_Key, 219, 0x8000DB0C, 0x00000000 },
-	{ &GUID_Key, 220, 0x8000DC0C, 0x00000000 },
-	{ &GUID_Key, 221, 0x8000DD0C, 0x00000000 },
-	{ &GUID_Key, 222, 0x8000DE0C, 0x00000000 },
-	{ &GUID_Key, 223, 0x8000DF0C, 0x00000000 },
-	{ &GUID_Key, 224, 0x8000E00C, 0x00000000 },
-	{ &GUID_Key, 225, 0x8000E10C, 0x00000000 },
-	{ &GUID_Key, 226, 0x8000E20C, 0x00000000 },
-	{ &GUID_Key, 227, 0x8000E30C, 0x00000000 },
-	{ &GUID_Key, 228, 0x8000E40C, 0x00000000 },
-	{ &GUID_Key, 229, 0x8000E50C, 0x00000000 },
-	{ &GUID_Key, 230, 0x8000E60C, 0x00000000 },
-	{ &GUID_Key, 231, 0x8000E70C, 0x00000000 },
-	{ &GUID_Key, 232, 0x8000E80C, 0x00000000 },
-	{ &GUID_Key, 233, 0x8000E90C, 0x00000000 },
-	{ &GUID_Key, 234, 0x8000EA0C, 0x00000000 },
-	{ &GUID_Key, 235, 0x8000EB0C, 0x00000000 },
-	{ &GUID_Key, 236, 0x8000EC0C, 0x00000000 },
-	{ &GUID_Key, 237, 0x8000ED0C, 0x00000000 },
-	{ &GUID_Key, 238, 0x8000EE0C, 0x00000000 },
-	{ &GUID_Key, 239, 0x8000EF0C, 0x00000000 },
-	{ &GUID_Key, 240, 0x8000F00C, 0x00000000 },
-	{ &GUID_Key, 241, 0x8000F10C, 0x00000000 },
-	{ &GUID_Key, 242, 0x8000F20C, 0x00000000 },
-	{ &GUID_Key, 243, 0x8000F30C, 0x00000000 },
-	{ &GUID_Key, 244, 0x8000F40C, 0x00000000 },
-	{ &GUID_Key, 245, 0x8000F50C, 0x00000000 },
-	{ &GUID_Key, 246, 0x8000F60C, 0x00000000 },
-	{ &GUID_Key, 247, 0x8000F70C, 0x00000000 },
-	{ &GUID_Key, 248, 0x8000F80C, 0x00000000 },
-	{ &GUID_Key, 249, 0x8000F90C, 0x00000000 },
-	{ &GUID_Key, 250, 0x8000FA0C, 0x00000000 },
-	{ &GUID_Key, 251, 0x8000FB0C, 0x00000000 },
-	{ &GUID_Key, 252, 0x8000FC0C, 0x00000000 },
-	{ &GUID_Key, 253, 0x8000FD0C, 0x00000000 },
-	{ &GUID_Key, 254, 0x8000FE0C, 0x00000000 },
-	{ &GUID_Key, 255, 0x8000FF0C, 0x00000000 },
+    {&GUID_Key, 0, 0x8000000C, 0x00000000},
+    {&GUID_Key, 1, 0x8000010C, 0x00000000},
+    {&GUID_Key, 2, 0x8000020C, 0x00000000},
+    {&GUID_Key, 3, 0x8000030C, 0x00000000},
+    {&GUID_Key, 4, 0x8000040C, 0x00000000},
+    {&GUID_Key, 5, 0x8000050C, 0x00000000},
+    {&GUID_Key, 6, 0x8000060C, 0x00000000},
+    {&GUID_Key, 7, 0x8000070C, 0x00000000},
+    {&GUID_Key, 8, 0x8000080C, 0x00000000},
+    {&GUID_Key, 9, 0x8000090C, 0x00000000},
+    {&GUID_Key, 10, 0x80000A0C, 0x00000000},
+    {&GUID_Key, 11, 0x80000B0C, 0x00000000},
+    {&GUID_Key, 12, 0x80000C0C, 0x00000000},
+    {&GUID_Key, 13, 0x80000D0C, 0x00000000},
+    {&GUID_Key, 14, 0x80000E0C, 0x00000000},
+    {&GUID_Key, 15, 0x80000F0C, 0x00000000},
+    {&GUID_Key, 16, 0x8000100C, 0x00000000},
+    {&GUID_Key, 17, 0x8000110C, 0x00000000},
+    {&GUID_Key, 18, 0x8000120C, 0x00000000},
+    {&GUID_Key, 19, 0x8000130C, 0x00000000},
+    {&GUID_Key, 20, 0x8000140C, 0x00000000},
+    {&GUID_Key, 21, 0x8000150C, 0x00000000},
+    {&GUID_Key, 22, 0x8000160C, 0x00000000},
+    {&GUID_Key, 23, 0x8000170C, 0x00000000},
+    {&GUID_Key, 24, 0x8000180C, 0x00000000},
+    {&GUID_Key, 25, 0x8000190C, 0x00000000},
+    {&GUID_Key, 26, 0x80001A0C, 0x00000000},
+    {&GUID_Key, 27, 0x80001B0C, 0x00000000},
+    {&GUID_Key, 28, 0x80001C0C, 0x00000000},
+    {&GUID_Key, 29, 0x80001D0C, 0x00000000},
+    {&GUID_Key, 30, 0x80001E0C, 0x00000000},
+    {&GUID_Key, 31, 0x80001F0C, 0x00000000},
+    {&GUID_Key, 32, 0x8000200C, 0x00000000},
+    {&GUID_Key, 33, 0x8000210C, 0x00000000},
+    {&GUID_Key, 34, 0x8000220C, 0x00000000},
+    {&GUID_Key, 35, 0x8000230C, 0x00000000},
+    {&GUID_Key, 36, 0x8000240C, 0x00000000},
+    {&GUID_Key, 37, 0x8000250C, 0x00000000},
+    {&GUID_Key, 38, 0x8000260C, 0x00000000},
+    {&GUID_Key, 39, 0x8000270C, 0x00000000},
+    {&GUID_Key, 40, 0x8000280C, 0x00000000},
+    {&GUID_Key, 41, 0x8000290C, 0x00000000},
+    {&GUID_Key, 42, 0x80002A0C, 0x00000000},
+    {&GUID_Key, 43, 0x80002B0C, 0x00000000},
+    {&GUID_Key, 44, 0x80002C0C, 0x00000000},
+    {&GUID_Key, 45, 0x80002D0C, 0x00000000},
+    {&GUID_Key, 46, 0x80002E0C, 0x00000000},
+    {&GUID_Key, 47, 0x80002F0C, 0x00000000},
+    {&GUID_Key, 48, 0x8000300C, 0x00000000},
+    {&GUID_Key, 49, 0x8000310C, 0x00000000},
+    {&GUID_Key, 50, 0x8000320C, 0x00000000},
+    {&GUID_Key, 51, 0x8000330C, 0x00000000},
+    {&GUID_Key, 52, 0x8000340C, 0x00000000},
+    {&GUID_Key, 53, 0x8000350C, 0x00000000},
+    {&GUID_Key, 54, 0x8000360C, 0x00000000},
+    {&GUID_Key, 55, 0x8000370C, 0x00000000},
+    {&GUID_Key, 56, 0x8000380C, 0x00000000},
+    {&GUID_Key, 57, 0x8000390C, 0x00000000},
+    {&GUID_Key, 58, 0x80003A0C, 0x00000000},
+    {&GUID_Key, 59, 0x80003B0C, 0x00000000},
+    {&GUID_Key, 60, 0x80003C0C, 0x00000000},
+    {&GUID_Key, 61, 0x80003D0C, 0x00000000},
+    {&GUID_Key, 62, 0x80003E0C, 0x00000000},
+    {&GUID_Key, 63, 0x80003F0C, 0x00000000},
+    {&GUID_Key, 64, 0x8000400C, 0x00000000},
+    {&GUID_Key, 65, 0x8000410C, 0x00000000},
+    {&GUID_Key, 66, 0x8000420C, 0x00000000},
+    {&GUID_Key, 67, 0x8000430C, 0x00000000},
+    {&GUID_Key, 68, 0x8000440C, 0x00000000},
+    {&GUID_Key, 69, 0x8000450C, 0x00000000},
+    {&GUID_Key, 70, 0x8000460C, 0x00000000},
+    {&GUID_Key, 71, 0x8000470C, 0x00000000},
+    {&GUID_Key, 72, 0x8000480C, 0x00000000},
+    {&GUID_Key, 73, 0x8000490C, 0x00000000},
+    {&GUID_Key, 74, 0x80004A0C, 0x00000000},
+    {&GUID_Key, 75, 0x80004B0C, 0x00000000},
+    {&GUID_Key, 76, 0x80004C0C, 0x00000000},
+    {&GUID_Key, 77, 0x80004D0C, 0x00000000},
+    {&GUID_Key, 78, 0x80004E0C, 0x00000000},
+    {&GUID_Key, 79, 0x80004F0C, 0x00000000},
+    {&GUID_Key, 80, 0x8000500C, 0x00000000},
+    {&GUID_Key, 81, 0x8000510C, 0x00000000},
+    {&GUID_Key, 82, 0x8000520C, 0x00000000},
+    {&GUID_Key, 83, 0x8000530C, 0x00000000},
+    {&GUID_Key, 84, 0x8000540C, 0x00000000},
+    {&GUID_Key, 85, 0x8000550C, 0x00000000},
+    {&GUID_Key, 86, 0x8000560C, 0x00000000},
+    {&GUID_Key, 87, 0x8000570C, 0x00000000},
+    {&GUID_Key, 88, 0x8000580C, 0x00000000},
+    {&GUID_Key, 89, 0x8000590C, 0x00000000},
+    {&GUID_Key, 90, 0x80005A0C, 0x00000000},
+    {&GUID_Key, 91, 0x80005B0C, 0x00000000},
+    {&GUID_Key, 92, 0x80005C0C, 0x00000000},
+    {&GUID_Key, 93, 0x80005D0C, 0x00000000},
+    {&GUID_Key, 94, 0x80005E0C, 0x00000000},
+    {&GUID_Key, 95, 0x80005F0C, 0x00000000},
+    {&GUID_Key, 96, 0x8000600C, 0x00000000},
+    {&GUID_Key, 97, 0x8000610C, 0x00000000},
+    {&GUID_Key, 98, 0x8000620C, 0x00000000},
+    {&GUID_Key, 99, 0x8000630C, 0x00000000},
+    {&GUID_Key, 100, 0x8000640C, 0x00000000},
+    {&GUID_Key, 101, 0x8000650C, 0x00000000},
+    {&GUID_Key, 102, 0x8000660C, 0x00000000},
+    {&GUID_Key, 103, 0x8000670C, 0x00000000},
+    {&GUID_Key, 104, 0x8000680C, 0x00000000},
+    {&GUID_Key, 105, 0x8000690C, 0x00000000},
+    {&GUID_Key, 106, 0x80006A0C, 0x00000000},
+    {&GUID_Key, 107, 0x80006B0C, 0x00000000},
+    {&GUID_Key, 108, 0x80006C0C, 0x00000000},
+    {&GUID_Key, 109, 0x80006D0C, 0x00000000},
+    {&GUID_Key, 110, 0x80006E0C, 0x00000000},
+    {&GUID_Key, 111, 0x80006F0C, 0x00000000},
+    {&GUID_Key, 112, 0x8000700C, 0x00000000},
+    {&GUID_Key, 113, 0x8000710C, 0x00000000},
+    {&GUID_Key, 114, 0x8000720C, 0x00000000},
+    {&GUID_Key, 115, 0x8000730C, 0x00000000},
+    {&GUID_Key, 116, 0x8000740C, 0x00000000},
+    {&GUID_Key, 117, 0x8000750C, 0x00000000},
+    {&GUID_Key, 118, 0x8000760C, 0x00000000},
+    {&GUID_Key, 119, 0x8000770C, 0x00000000},
+    {&GUID_Key, 120, 0x8000780C, 0x00000000},
+    {&GUID_Key, 121, 0x8000790C, 0x00000000},
+    {&GUID_Key, 122, 0x80007A0C, 0x00000000},
+    {&GUID_Key, 123, 0x80007B0C, 0x00000000},
+    {&GUID_Key, 124, 0x80007C0C, 0x00000000},
+    {&GUID_Key, 125, 0x80007D0C, 0x00000000},
+    {&GUID_Key, 126, 0x80007E0C, 0x00000000},
+    {&GUID_Key, 127, 0x80007F0C, 0x00000000},
+    {&GUID_Key, 128, 0x8000800C, 0x00000000},
+    {&GUID_Key, 129, 0x8000810C, 0x00000000},
+    {&GUID_Key, 130, 0x8000820C, 0x00000000},
+    {&GUID_Key, 131, 0x8000830C, 0x00000000},
+    {&GUID_Key, 132, 0x8000840C, 0x00000000},
+    {&GUID_Key, 133, 0x8000850C, 0x00000000},
+    {&GUID_Key, 134, 0x8000860C, 0x00000000},
+    {&GUID_Key, 135, 0x8000870C, 0x00000000},
+    {&GUID_Key, 136, 0x8000880C, 0x00000000},
+    {&GUID_Key, 137, 0x8000890C, 0x00000000},
+    {&GUID_Key, 138, 0x80008A0C, 0x00000000},
+    {&GUID_Key, 139, 0x80008B0C, 0x00000000},
+    {&GUID_Key, 140, 0x80008C0C, 0x00000000},
+    {&GUID_Key, 141, 0x80008D0C, 0x00000000},
+    {&GUID_Key, 142, 0x80008E0C, 0x00000000},
+    {&GUID_Key, 143, 0x80008F0C, 0x00000000},
+    {&GUID_Key, 144, 0x8000900C, 0x00000000},
+    {&GUID_Key, 145, 0x8000910C, 0x00000000},
+    {&GUID_Key, 146, 0x8000920C, 0x00000000},
+    {&GUID_Key, 147, 0x8000930C, 0x00000000},
+    {&GUID_Key, 148, 0x8000940C, 0x00000000},
+    {&GUID_Key, 149, 0x8000950C, 0x00000000},
+    {&GUID_Key, 150, 0x8000960C, 0x00000000},
+    {&GUID_Key, 151, 0x8000970C, 0x00000000},
+    {&GUID_Key, 152, 0x8000980C, 0x00000000},
+    {&GUID_Key, 153, 0x8000990C, 0x00000000},
+    {&GUID_Key, 154, 0x80009A0C, 0x00000000},
+    {&GUID_Key, 155, 0x80009B0C, 0x00000000},
+    {&GUID_Key, 156, 0x80009C0C, 0x00000000},
+    {&GUID_Key, 157, 0x80009D0C, 0x00000000},
+    {&GUID_Key, 158, 0x80009E0C, 0x00000000},
+    {&GUID_Key, 159, 0x80009F0C, 0x00000000},
+    {&GUID_Key, 160, 0x8000A00C, 0x00000000},
+    {&GUID_Key, 161, 0x8000A10C, 0x00000000},
+    {&GUID_Key, 162, 0x8000A20C, 0x00000000},
+    {&GUID_Key, 163, 0x8000A30C, 0x00000000},
+    {&GUID_Key, 164, 0x8000A40C, 0x00000000},
+    {&GUID_Key, 165, 0x8000A50C, 0x00000000},
+    {&GUID_Key, 166, 0x8000A60C, 0x00000000},
+    {&GUID_Key, 167, 0x8000A70C, 0x00000000},
+    {&GUID_Key, 168, 0x8000A80C, 0x00000000},
+    {&GUID_Key, 169, 0x8000A90C, 0x00000000},
+    {&GUID_Key, 170, 0x8000AA0C, 0x00000000},
+    {&GUID_Key, 171, 0x8000AB0C, 0x00000000},
+    {&GUID_Key, 172, 0x8000AC0C, 0x00000000},
+    {&GUID_Key, 173, 0x8000AD0C, 0x00000000},
+    {&GUID_Key, 174, 0x8000AE0C, 0x00000000},
+    {&GUID_Key, 175, 0x8000AF0C, 0x00000000},
+    {&GUID_Key, 176, 0x8000B00C, 0x00000000},
+    {&GUID_Key, 177, 0x8000B10C, 0x00000000},
+    {&GUID_Key, 178, 0x8000B20C, 0x00000000},
+    {&GUID_Key, 179, 0x8000B30C, 0x00000000},
+    {&GUID_Key, 180, 0x8000B40C, 0x00000000},
+    {&GUID_Key, 181, 0x8000B50C, 0x00000000},
+    {&GUID_Key, 182, 0x8000B60C, 0x00000000},
+    {&GUID_Key, 183, 0x8000B70C, 0x00000000},
+    {&GUID_Key, 184, 0x8000B80C, 0x00000000},
+    {&GUID_Key, 185, 0x8000B90C, 0x00000000},
+    {&GUID_Key, 186, 0x8000BA0C, 0x00000000},
+    {&GUID_Key, 187, 0x8000BB0C, 0x00000000},
+    {&GUID_Key, 188, 0x8000BC0C, 0x00000000},
+    {&GUID_Key, 189, 0x8000BD0C, 0x00000000},
+    {&GUID_Key, 190, 0x8000BE0C, 0x00000000},
+    {&GUID_Key, 191, 0x8000BF0C, 0x00000000},
+    {&GUID_Key, 192, 0x8000C00C, 0x00000000},
+    {&GUID_Key, 193, 0x8000C10C, 0x00000000},
+    {&GUID_Key, 194, 0x8000C20C, 0x00000000},
+    {&GUID_Key, 195, 0x8000C30C, 0x00000000},
+    {&GUID_Key, 196, 0x8000C40C, 0x00000000},
+    {&GUID_Key, 197, 0x8000C50C, 0x00000000},
+    {&GUID_Key, 198, 0x8000C60C, 0x00000000},
+    {&GUID_Key, 199, 0x8000C70C, 0x00000000},
+    {&GUID_Key, 200, 0x8000C80C, 0x00000000},
+    {&GUID_Key, 201, 0x8000C90C, 0x00000000},
+    {&GUID_Key, 202, 0x8000CA0C, 0x00000000},
+    {&GUID_Key, 203, 0x8000CB0C, 0x00000000},
+    {&GUID_Key, 204, 0x8000CC0C, 0x00000000},
+    {&GUID_Key, 205, 0x8000CD0C, 0x00000000},
+    {&GUID_Key, 206, 0x8000CE0C, 0x00000000},
+    {&GUID_Key, 207, 0x8000CF0C, 0x00000000},
+    {&GUID_Key, 208, 0x8000D00C, 0x00000000},
+    {&GUID_Key, 209, 0x8000D10C, 0x00000000},
+    {&GUID_Key, 210, 0x8000D20C, 0x00000000},
+    {&GUID_Key, 211, 0x8000D30C, 0x00000000},
+    {&GUID_Key, 212, 0x8000D40C, 0x00000000},
+    {&GUID_Key, 213, 0x8000D50C, 0x00000000},
+    {&GUID_Key, 214, 0x8000D60C, 0x00000000},
+    {&GUID_Key, 215, 0x8000D70C, 0x00000000},
+    {&GUID_Key, 216, 0x8000D80C, 0x00000000},
+    {&GUID_Key, 217, 0x8000D90C, 0x00000000},
+    {&GUID_Key, 218, 0x8000DA0C, 0x00000000},
+    {&GUID_Key, 219, 0x8000DB0C, 0x00000000},
+    {&GUID_Key, 220, 0x8000DC0C, 0x00000000},
+    {&GUID_Key, 221, 0x8000DD0C, 0x00000000},
+    {&GUID_Key, 222, 0x8000DE0C, 0x00000000},
+    {&GUID_Key, 223, 0x8000DF0C, 0x00000000},
+    {&GUID_Key, 224, 0x8000E00C, 0x00000000},
+    {&GUID_Key, 225, 0x8000E10C, 0x00000000},
+    {&GUID_Key, 226, 0x8000E20C, 0x00000000},
+    {&GUID_Key, 227, 0x8000E30C, 0x00000000},
+    {&GUID_Key, 228, 0x8000E40C, 0x00000000},
+    {&GUID_Key, 229, 0x8000E50C, 0x00000000},
+    {&GUID_Key, 230, 0x8000E60C, 0x00000000},
+    {&GUID_Key, 231, 0x8000E70C, 0x00000000},
+    {&GUID_Key, 232, 0x8000E80C, 0x00000000},
+    {&GUID_Key, 233, 0x8000E90C, 0x00000000},
+    {&GUID_Key, 234, 0x8000EA0C, 0x00000000},
+    {&GUID_Key, 235, 0x8000EB0C, 0x00000000},
+    {&GUID_Key, 236, 0x8000EC0C, 0x00000000},
+    {&GUID_Key, 237, 0x8000ED0C, 0x00000000},
+    {&GUID_Key, 238, 0x8000EE0C, 0x00000000},
+    {&GUID_Key, 239, 0x8000EF0C, 0x00000000},
+    {&GUID_Key, 240, 0x8000F00C, 0x00000000},
+    {&GUID_Key, 241, 0x8000F10C, 0x00000000},
+    {&GUID_Key, 242, 0x8000F20C, 0x00000000},
+    {&GUID_Key, 243, 0x8000F30C, 0x00000000},
+    {&GUID_Key, 244, 0x8000F40C, 0x00000000},
+    {&GUID_Key, 245, 0x8000F50C, 0x00000000},
+    {&GUID_Key, 246, 0x8000F60C, 0x00000000},
+    {&GUID_Key, 247, 0x8000F70C, 0x00000000},
+    {&GUID_Key, 248, 0x8000F80C, 0x00000000},
+    {&GUID_Key, 249, 0x8000F90C, 0x00000000},
+    {&GUID_Key, 250, 0x8000FA0C, 0x00000000},
+    {&GUID_Key, 251, 0x8000FB0C, 0x00000000},
+    {&GUID_Key, 252, 0x8000FC0C, 0x00000000},
+    {&GUID_Key, 253, 0x8000FD0C, 0x00000000},
+    {&GUID_Key, 254, 0x8000FE0C, 0x00000000},
+    {&GUID_Key, 255, 0x8000FF0C, 0x00000000},
 };
 
 const DIDATAFORMAT c_dfDIKeyboard = { 24, 16, 0x00000002, 256, 256, KBD_fmt };
@@ -338,13 +341,13 @@
 /* Mouse */
 
 static DIOBJECTDATAFORMAT PTR_fmt[] = {
-	{ &GUID_XAxis, 0, 0x00FFFF03, 0x00000000 },
-	{ &GUID_YAxis, 4, 0x00FFFF03, 0x00000000 },
-	{ &GUID_ZAxis, 8, 0x80FFFF03, 0x00000000 },
-	{ NULL, 12, 0x00FFFF0C, 0x00000000 },
-	{ NULL, 13, 0x00FFFF0C, 0x00000000 },
-	{ NULL, 14, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 15, 0x80FFFF0C, 0x00000000 },
+    {&GUID_XAxis, 0, 0x00FFFF03, 0x00000000},
+    {&GUID_YAxis, 4, 0x00FFFF03, 0x00000000},
+    {&GUID_ZAxis, 8, 0x80FFFF03, 0x00000000},
+    {NULL, 12, 0x00FFFF0C, 0x00000000},
+    {NULL, 13, 0x00FFFF0C, 0x00000000},
+    {NULL, 14, 0x80FFFF0C, 0x00000000},
+    {NULL, 15, 0x80FFFF0C, 0x00000000},
 };
 
 const DIDATAFORMAT c_dfDIMouse = { 24, 16, 0x00000002, 16, 7, PTR_fmt };
@@ -353,78 +356,81 @@
 /* Joystick */
 
 static DIOBJECTDATAFORMAT JOY_fmt[] = {
-	{ &GUID_XAxis, 0, 0x80FFFF03, 0x00000100 },
-	{ &GUID_YAxis, 4, 0x80FFFF03, 0x00000100 },
-	{ &GUID_ZAxis, 8, 0x80FFFF03, 0x00000100 },
-	{ &GUID_RxAxis, 12, 0x80FFFF03, 0x00000100 },
-	{ &GUID_RyAxis, 16, 0x80FFFF03, 0x00000100 },
-	{ &GUID_RzAxis, 20, 0x80FFFF03, 0x00000100 },
-	{ &GUID_Slider, 24, 0x80FFFF03, 0x00000100 },
-	{ &GUID_Slider, 28, 0x80FFFF03, 0x00000100 },
-	{ &GUID_POV, 32, 0x80FFFF10, 0x00000000 },
-	{ &GUID_POV, 36, 0x80FFFF10, 0x00000000 },
-	{ &GUID_POV, 40, 0x80FFFF10, 0x00000000 },
-	{ &GUID_POV, 44, 0x80FFFF10, 0x00000000 },
-	{ NULL, 48, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 49, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 50, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 51, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 52, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 53, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 54, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 55, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 56, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 57, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 58, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 59, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 60, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 61, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 62, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 63, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 64, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 65, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 66, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 67, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 68, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 69, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 70, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 71, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 72, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 73, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 74, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 75, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 76, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 77, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 78, 0x80FFFF0C, 0x00000000 },
-	{ NULL, 79, 0x80FFFF0C, 0x00000000 },
+    {&GUID_XAxis, 0, 0x80FFFF03, 0x00000100},
+    {&GUID_YAxis, 4, 0x80FFFF03, 0x00000100},
+    {&GUID_ZAxis, 8, 0x80FFFF03, 0x00000100},
+    {&GUID_RxAxis, 12, 0x80FFFF03, 0x00000100},
+    {&GUID_RyAxis, 16, 0x80FFFF03, 0x00000100},
+    {&GUID_RzAxis, 20, 0x80FFFF03, 0x00000100},
+    {&GUID_Slider, 24, 0x80FFFF03, 0x00000100},
+    {&GUID_Slider, 28, 0x80FFFF03, 0x00000100},
+    {&GUID_POV, 32, 0x80FFFF10, 0x00000000},
+    {&GUID_POV, 36, 0x80FFFF10, 0x00000000},
+    {&GUID_POV, 40, 0x80FFFF10, 0x00000000},
+    {&GUID_POV, 44, 0x80FFFF10, 0x00000000},
+    {NULL, 48, 0x80FFFF0C, 0x00000000},
+    {NULL, 49, 0x80FFFF0C, 0x00000000},
+    {NULL, 50, 0x80FFFF0C, 0x00000000},
+    {NULL, 51, 0x80FFFF0C, 0x00000000},
+    {NULL, 52, 0x80FFFF0C, 0x00000000},
+    {NULL, 53, 0x80FFFF0C, 0x00000000},
+    {NULL, 54, 0x80FFFF0C, 0x00000000},
+    {NULL, 55, 0x80FFFF0C, 0x00000000},
+    {NULL, 56, 0x80FFFF0C, 0x00000000},
+    {NULL, 57, 0x80FFFF0C, 0x00000000},
+    {NULL, 58, 0x80FFFF0C, 0x00000000},
+    {NULL, 59, 0x80FFFF0C, 0x00000000},
+    {NULL, 60, 0x80FFFF0C, 0x00000000},
+    {NULL, 61, 0x80FFFF0C, 0x00000000},
+    {NULL, 62, 0x80FFFF0C, 0x00000000},
+    {NULL, 63, 0x80FFFF0C, 0x00000000},
+    {NULL, 64, 0x80FFFF0C, 0x00000000},
+    {NULL, 65, 0x80FFFF0C, 0x00000000},
+    {NULL, 66, 0x80FFFF0C, 0x00000000},
+    {NULL, 67, 0x80FFFF0C, 0x00000000},
+    {NULL, 68, 0x80FFFF0C, 0x00000000},
+    {NULL, 69, 0x80FFFF0C, 0x00000000},
+    {NULL, 70, 0x80FFFF0C, 0x00000000},
+    {NULL, 71, 0x80FFFF0C, 0x00000000},
+    {NULL, 72, 0x80FFFF0C, 0x00000000},
+    {NULL, 73, 0x80FFFF0C, 0x00000000},
+    {NULL, 74, 0x80FFFF0C, 0x00000000},
+    {NULL, 75, 0x80FFFF0C, 0x00000000},
+    {NULL, 76, 0x80FFFF0C, 0x00000000},
+    {NULL, 77, 0x80FFFF0C, 0x00000000},
+    {NULL, 78, 0x80FFFF0C, 0x00000000},
+    {NULL, 79, 0x80FFFF0C, 0x00000000},
 };
 
 const DIDATAFORMAT c_dfDIJoystick = { 24, 16, 0x00000001, 80, 44, JOY_fmt };
 
 
 /* Initialization/Query functions */
-static int DX5_VideoInit(_THIS, SDL_PixelFormat *vformat);
-static SDL_Rect **DX5_ListModes(_THIS, SDL_PixelFormat *format, Uint32 flags);
-static SDL_Surface *DX5_SetVideoMode(_THIS, SDL_Surface *current, int width, int height, int bpp, Uint32 flags);
+static int DX5_VideoInit(_THIS, SDL_PixelFormat * vformat);
+static SDL_Rect **DX5_ListModes(_THIS, SDL_PixelFormat * format,
+                                Uint32 flags);
+static SDL_Surface *DX5_SetVideoMode(_THIS, SDL_Surface * current, int width,
+                                     int height, int bpp, Uint32 flags);
 static int DX5_SetColors(_THIS, int firstcolor, int ncolors,
-			 SDL_Color *colors);
-static int DX5_SetGammaRamp(_THIS, Uint16 *ramp);
-static int DX5_GetGammaRamp(_THIS, Uint16 *ramp);
+                         SDL_Color * colors);
+static int DX5_SetGammaRamp(_THIS, Uint16 * ramp);
+static int DX5_GetGammaRamp(_THIS, Uint16 * ramp);
 static void DX5_VideoQuit(_THIS);
 
 /* Hardware surface functions */
-static int DX5_AllocHWSurface(_THIS, SDL_Surface *surface);
-static int DX5_CheckHWBlit(_THIS, SDL_Surface *src, SDL_Surface *dst);
-static int DX5_FillHWRect(_THIS, SDL_Surface *dst, SDL_Rect *dstrect, Uint32 color);
-static int DX5_SetHWColorKey(_THIS, SDL_Surface *surface, Uint32 key);
-static int DX5_SetHWAlpha(_THIS, SDL_Surface *surface, Uint8 alpha);
-static int DX5_LockHWSurface(_THIS, SDL_Surface *surface);
-static void DX5_UnlockHWSurface(_THIS, SDL_Surface *surface);
-static int DX5_FlipHWSurface(_THIS, SDL_Surface *surface);
-static void DX5_FreeHWSurface(_THIS, SDL_Surface *surface);
+static int DX5_AllocHWSurface(_THIS, SDL_Surface * surface);
+static int DX5_CheckHWBlit(_THIS, SDL_Surface * src, SDL_Surface * dst);
+static int DX5_FillHWRect(_THIS, SDL_Surface * dst, SDL_Rect * dstrect,
+                          Uint32 color);
+static int DX5_SetHWColorKey(_THIS, SDL_Surface * surface, Uint32 key);
+static int DX5_SetHWAlpha(_THIS, SDL_Surface * surface, Uint8 alpha);
+static int DX5_LockHWSurface(_THIS, SDL_Surface * surface);
+static void DX5_UnlockHWSurface(_THIS, SDL_Surface * surface);
+static int DX5_FlipHWSurface(_THIS, SDL_Surface * surface);
+static void DX5_FreeHWSurface(_THIS, SDL_Surface * surface);
 
-static int DX5_AllocDDSurface(_THIS, SDL_Surface *surface, 
-				LPDIRECTDRAWSURFACE3 requested, Uint32 flag);
+static int DX5_AllocDDSurface(_THIS, SDL_Surface * surface,
+                              LPDIRECTDRAWSURFACE3 requested, Uint32 flag);
 
 /* Windows message handling functions */
 static void DX5_RealizePalette(_THIS);
@@ -432,1709 +438,1764 @@
 static void DX5_WinPAINT(_THIS, HDC hdc);
 
 /* WinDIB driver functions for manipulating gamma ramps */
-extern int DIB_SetGammaRamp(_THIS, Uint16 *ramp);
-extern int DIB_GetGammaRamp(_THIS, Uint16 *ramp);
+extern int DIB_SetGammaRamp(_THIS, Uint16 * ramp);
+extern int DIB_GetGammaRamp(_THIS, Uint16 * ramp);
 extern void DIB_QuitGamma(_THIS);
 
-/* DX5 driver bootstrap functions */
-
-static int DX5_Available(void)
-{
-	HINSTANCE DInputDLL;
-	HINSTANCE DDrawDLL;
-	int dinput_ok;
-	int ddraw_ok;
-
-	/* Version check DINPUT.DLL and DDRAW.DLL (Is DirectX okay?) */
-	dinput_ok = 0;
-	DInputDLL = LoadLibrary(TEXT("DINPUT.DLL"));
-	if ( DInputDLL != NULL ) {
-		dinput_ok = 1;
-	  	FreeLibrary(DInputDLL);
-	}
-	ddraw_ok = 0;
-	DDrawDLL = LoadLibrary(TEXT("DDRAW.DLL"));
-	if ( DDrawDLL != NULL ) {
-	  HRESULT (WINAPI *DDrawCreate)(GUID *,LPDIRECTDRAW *,IUnknown *);
-	  LPDIRECTDRAW DDraw;
-
-	  /* Try to create a valid DirectDraw object */
-	  DDrawCreate = (void *)GetProcAddress(DDrawDLL, TEXT("DirectDrawCreate"));
-	  if ( (DDrawCreate != NULL)
-			&& !FAILED(DDrawCreate(NULL, &DDraw, NULL)) ) {
-	    if ( !FAILED(IDirectDraw_SetCooperativeLevel(DDraw,
-							NULL, DDSCL_NORMAL)) ) {
-	      DDSURFACEDESC desc;
-	      LPDIRECTDRAWSURFACE  DDrawSurf;
-	      LPDIRECTDRAWSURFACE3 DDrawSurf3;
-
-	      /* Try to create a DirectDrawSurface3 object */
-	      SDL_memset(&desc, 0, sizeof(desc));
-	      desc.dwSize = sizeof(desc);
-	      desc.dwFlags = DDSD_CAPS;
-	      desc.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE|DDSCAPS_VIDEOMEMORY;
-	      if ( !FAILED(IDirectDraw_CreateSurface(DDraw, &desc,
-							&DDrawSurf, NULL)) ) {
-	        if ( !FAILED(IDirectDrawSurface_QueryInterface(DDrawSurf,
-			&IID_IDirectDrawSurface3, (LPVOID *)&DDrawSurf3)) ) {
-	          /* Yay! */
-		  ddraw_ok = 1;
-
-	          /* Clean up.. */
-	          IDirectDrawSurface3_Release(DDrawSurf3);
-	        }
-	        IDirectDrawSurface_Release(DDrawSurf);
-	      }
-	    }
-	    IDirectDraw_Release(DDraw);
-	  }
-	  FreeLibrary(DDrawDLL);
-	}
-	return(dinput_ok && ddraw_ok);
-}
-
 /* Functions for loading the DirectX functions dynamically */
+static int DX5_loaded = 0;
 static HINSTANCE DDrawDLL = NULL;
 static HINSTANCE DInputDLL = NULL;
 
-static void DX5_Unload(void)
+void
+DX5_Unload(void)
 {
-	if ( DDrawDLL != NULL ) {
-		FreeLibrary(DDrawDLL);
-		DDrawCreate = NULL;
-		DDrawDLL = NULL;
-	}
-	if ( DInputDLL != NULL ) {
-		FreeLibrary(DInputDLL);
-		DInputCreate = NULL;
-		DInputDLL = NULL;
-	}
+    if (--DX5_loaded == 0) {
+        if (DDrawDLL != NULL) {
+            FreeLibrary(DDrawDLL);
+            DDrawCreate = NULL;
+            DDrawDLL = NULL;
+        }
+        if (DInputDLL != NULL) {
+            FreeLibrary(DInputDLL);
+            DInputCreate = NULL;
+            DInputDLL = NULL;
+        }
+    }
 }
-static int DX5_Load(void)
+int
+DX5_Load(void)
 {
-	int status;
+    int status = 0;
 
-	DX5_Unload();
-	DDrawDLL = LoadLibrary(TEXT("DDRAW.DLL"));
-	if ( DDrawDLL != NULL ) {
-		DDrawCreate = (void *)GetProcAddress(DDrawDLL,
-					TEXT("DirectDrawCreate"));
-	}
-	DInputDLL = LoadLibrary(TEXT("DINPUT.DLL"));
-	if ( DInputDLL != NULL ) {
-		DInputCreate = (void *)GetProcAddress(DInputDLL,
-					TEXT("DirectInputCreateA"));
-	}
-	if ( DDrawDLL && DDrawCreate && DInputDLL && DInputCreate ) {
-		status = 0;
-	} else {
-		DX5_Unload();
-		status = -1;
-	}
-	return status;
+    if (++DX5_loaded == 1) {
+        DDrawDLL = LoadLibrary(TEXT("DDRAW.DLL"));
+        if (DDrawDLL != NULL) {
+            DDrawCreate = (void *) GetProcAddress(DDrawDLL,
+                                                  TEXT("DirectDrawCreate"));
+        }
+        DInputDLL = LoadLibrary(TEXT("DINPUT.DLL"));
+        if (DInputDLL != NULL) {
+            DInputCreate = (void *) GetProcAddress(DInputDLL,
+                                                   TEXT
+                                                   ("DirectInputCreateA"));
+        }
+        if (DDrawDLL && DDrawCreate && DInputDLL && DInputCreate) {
+            status = 0;
+        } else {
+            DX5_Unload();
+            status = -1;
+        }
+    }
+    return status;
 }
 
-static void DX5_DeleteDevice(SDL_VideoDevice *this)
+/* DX5 driver bootstrap functions */
+
+static int
+DX5_Available(void)
 {
-	/* Free DirectDraw object */
-	if ( ddraw2 != NULL ) {
-		IDirectDraw2_Release(ddraw2);
-	}
-	DX5_Unload();
-	if ( this ) {
-		if ( this->hidden ) {
-			SDL_free(this->hidden);
-		}
-		if ( this->gl_data ) {
-			SDL_free(this->gl_data);
-		}
-		SDL_free(this);
-	}
+    int ddraw_ok = 0;
+    HRESULT(WINAPI * DDrawCreate) (GUID *, LPDIRECTDRAW *, IUnknown *);
+    LPDIRECTDRAW DDraw;
+
+    /* Version check DINPUT.DLL and DDRAW.DLL (Is DirectX okay?) */
+    if (DX5_Load() < 0) {
+        return -1;
+    }
+
+    /* Try to create a valid DirectDraw object */
+    DDrawCreate = (void *) GetProcAddress(DDrawDLL, TEXT("DirectDrawCreate"));
+    if ((DDrawCreate != NULL) && !FAILED(DDrawCreate(NULL, &DDraw, NULL))) {
+        if (!FAILED(IDirectDraw_SetCooperativeLevel(DDraw,
+                                                    NULL, DDSCL_NORMAL))) {
+            DDSURFACEDESC desc;
+            LPDIRECTDRAWSURFACE DDrawSurf;
+            LPDIRECTDRAWSURFACE3 DDrawSurf3;
+
+            /* Try to create a DirectDrawSurface3 object */
+            SDL_memset(&desc, 0, sizeof(desc));
+            desc.dwSize = sizeof(desc);
+            desc.dwFlags = DDSD_CAPS;
+            desc.ddsCaps.dwCaps =
+                DDSCAPS_PRIMARYSURFACE | DDSCAPS_VIDEOMEMORY;
+            if (!FAILED
+                (IDirectDraw_CreateSurface(DDraw, &desc, &DDrawSurf, NULL))) {
+                if (!FAILED
+                    (IDirectDrawSurface_QueryInterface
+                     (DDrawSurf, &IID_IDirectDrawSurface3,
+                      (LPVOID *) & DDrawSurf3))) {
+                    /* Yay! */
+                    ddraw_ok = 1;
+
+                    /* Clean up.. */
+                    IDirectDrawSurface3_Release(DDrawSurf3);
+                }
+                IDirectDrawSurface_Release(DDrawSurf);
+            }
+        }
+        IDirectDraw_Release(DDraw);
+    }
+
+    DX5_Unload();
+
+    return ddraw_ok;
 }
 
-static SDL_VideoDevice *DX5_CreateDevice(int devindex)
+static void
+DX5_DeleteDevice(SDL_VideoDevice * this)
 {
-	SDL_VideoDevice *device;
+    /* Free DirectDraw object */
+    if (ddraw2 != NULL) {
+        IDirectDraw2_Release(ddraw2);
+    }
+    DX5_Unload();
 
-	/* Load DirectX */
-	if ( DX5_Load() < 0 ) {
-		return(NULL);
-	}
+    if (this) {
+        if (this->hidden) {
+            SDL_free(this->hidden);
+        }
+        if (this->gl_data) {
+            SDL_free(this->gl_data);
+        }
+        SDL_free(this);
+    }
+}
 
-	/* Initialize all variables that we clean on shutdown */
-	device = (SDL_VideoDevice *)SDL_malloc(sizeof(SDL_VideoDevice));
-	if ( device ) {
-		SDL_memset(device, 0, (sizeof *device));
-		device->hidden = (struct SDL_PrivateVideoData *)
-				SDL_malloc((sizeof *device->hidden));
-		device->gl_data = (struct SDL_PrivateGLData *)
-				SDL_malloc((sizeof *device->gl_data));
-	}
-	if ( (device == NULL) || (device->hidden == NULL) ||
-		                 (device->gl_data == NULL) ) {
-		SDL_OutOfMemory();
-		DX5_DeleteDevice(device);
-		return(NULL);
-	}
-	SDL_memset(device->hidden, 0, (sizeof *device->hidden));
-	SDL_memset(device->gl_data, 0, (sizeof *device->gl_data));
+static SDL_VideoDevice *
+DX5_CreateDevice(int devindex)
+{
+    SDL_VideoDevice *device;
+
+    /* Load DirectX */
+    if (DX5_Load() < 0) {
+        return (NULL);
+    }
+
+    /* Initialize all variables that we clean on shutdown */
+    device = (SDL_VideoDevice *) SDL_malloc(sizeof(SDL_VideoDevice));
+    if (device) {
+        SDL_memset(device, 0, (sizeof *device));
+        device->hidden = (struct SDL_PrivateVideoData *)
+            SDL_malloc((sizeof *device->hidden));
+        device->gl_data = (struct SDL_PrivateGLData *)
+            SDL_malloc((sizeof *device->gl_data));
+    }
+    if ((device == NULL) || (device->hidden == NULL) ||
+        (device->gl_data == NULL)) {
+        SDL_OutOfMemory();
+        DX5_DeleteDevice(device);
+        return (NULL);
+    }
+    SDL_memset(device->hidden, 0, (sizeof *device->hidden));
+    SDL_memset(device->gl_data, 0, (sizeof *device->gl_data));
 
-	/* Set the function pointers */
-	device->VideoInit = DX5_VideoInit;
-	device->ListModes = DX5_ListModes;
-	device->SetVideoMode = DX5_SetVideoMode;
-	device->UpdateMouse = WIN_UpdateMouse;
-	device->CreateYUVOverlay = DX5_CreateYUVOverlay;
-	device->SetColors = DX5_SetColors;
-	device->UpdateRects = NULL;
-	device->VideoQuit = DX5_VideoQuit;
-	device->AllocHWSurface = DX5_AllocHWSurface;
-	device->CheckHWBlit = DX5_CheckHWBlit;
-	device->FillHWRect = DX5_FillHWRect;
-	device->SetHWColorKey = DX5_SetHWColorKey;
-	device->SetHWAlpha = DX5_SetHWAlpha;
-	device->LockHWSurface = DX5_LockHWSurface;
-	device->UnlockHWSurface = DX5_UnlockHWSurface;
-	device->FlipHWSurface = DX5_FlipHWSurface;
-	device->FreeHWSurface = DX5_FreeHWSurface;
-	device->SetGammaRamp = DX5_SetGammaRamp;
-	device->GetGammaRamp = DX5_GetGammaRamp;
+    /* Set the function pointers */
+    device->VideoInit = DX5_VideoInit;
+    device->ListModes = DX5_ListModes;
+    device->SetVideoMode = DX5_SetVideoMode;
+    device->UpdateMouse = WIN_UpdateMouse;
+    device->CreateYUVOverlay = DX5_CreateYUVOverlay;
+    device->SetColors = DX5_SetColors;
+    device->UpdateRects = NULL;
+    device->VideoQuit = DX5_VideoQuit;
+    device->AllocHWSurface = DX5_AllocHWSurface;
+    device->CheckHWBlit = DX5_CheckHWBlit;
+    device->FillHWRect = DX5_FillHWRect;
+    device->SetHWColorKey = DX5_SetHWColorKey;
+    device->SetHWAlpha = DX5_SetHWAlpha;
+    device->LockHWSurface = DX5_LockHWSurface;
+    device->UnlockHWSurface = DX5_UnlockHWSurface;
+    device->FlipHWSurface = DX5_FlipHWSurface;
+    device->FreeHWSurface = DX5_FreeHWSurface;
+    device->SetGammaRamp = DX5_SetGammaRamp;
+    device->GetGammaRamp = DX5_GetGammaRamp;
 #if SDL_VIDEO_OPENGL
-	device->GL_LoadLibrary = WIN_GL_LoadLibrary;
-	device->GL_GetProcAddress = WIN_GL_GetProcAddress;
-	device->GL_GetAttribute = WIN_GL_GetAttribute;
-	device->GL_MakeCurrent = WIN_GL_MakeCurrent;
-	device->GL_SwapBuffers = WIN_GL_SwapBuffers;
+    device->GL_LoadLibrary = WIN_GL_LoadLibrary;
+    device->GL_GetProcAddress = WIN_GL_GetProcAddress;
+    device->GL_GetAttribute = WIN_GL_GetAttribute;
+    device->GL_MakeCurrent = WIN_GL_MakeCurrent;
+    device->GL_SwapBuffers = WIN_GL_SwapBuffers;
 #endif
-	device->SetCaption = WIN_SetWMCaption;
-	device->SetIcon = WIN_SetWMIcon;
-	device->IconifyWindow = WIN_IconifyWindow;
-	device->GrabInput = WIN_GrabInput;
-	device->GetWMInfo = WIN_GetWMInfo;
-	device->FreeWMCursor = WIN_FreeWMCursor;
-	device->CreateWMCursor = WIN_CreateWMCursor;
-	device->ShowWMCursor = WIN_ShowWMCursor;
-	device->WarpWMCursor = WIN_WarpWMCursor;
-	device->CheckMouseMode = WIN_CheckMouseMode;
-	device->InitOSKeymap = DX5_InitOSKeymap;
-	device->PumpEvents = DX5_PumpEvents;
+    device->SetCaption = WIN_SetWMCaption;
+    device->SetIcon = WIN_SetWMIcon;
+    device->IconifyWindow = WIN_IconifyWindow;
+    device->GrabInput = WIN_GrabInput;
+    device->GetWMInfo = WIN_GetWMInfo;
+    device->FreeWMCursor = WIN_FreeWMCursor;
+    device->CreateWMCursor = WIN_CreateWMCursor;
+    device->ShowWMCursor = WIN_ShowWMCursor;
+    device->WarpWMCursor = WIN_WarpWMCursor;
+    device->CheckMouseMode = WIN_CheckMouseMode;
+    device->InitOSKeymap = DX5_InitOSKeymap;
+    device->PumpEvents = DX5_PumpEvents;
 
-	/* Set up the windows message handling functions */
-	WIN_RealizePalette = DX5_RealizePalette;
-	WIN_PaletteChanged = DX5_PaletteChanged;
-	WIN_WinPAINT = DX5_WinPAINT;
-	HandleMessage = DX5_HandleMessage;
+    /* Set up the windows message handling functions */
+    WIN_RealizePalette = DX5_RealizePalette;
+    WIN_PaletteChanged = DX5_PaletteChanged;
+    WIN_WinPAINT = DX5_WinPAINT;
+    HandleMessage = DX5_HandleMessage;
 
-	device->free = DX5_DeleteDevice;
+    device->free = DX5_DeleteDevice;
 
-	/* We're finally ready */
-	return device;
+    /* We're finally ready */
+    return device;
 }
 
 VideoBootStrap DIRECTX_bootstrap = {
-	"directx", "Win95/98/2000 DirectX",
-	DX5_Available, DX5_CreateDevice
+    "directx", "Win95/98/2000 DirectX",
+    DX5_Available, DX5_CreateDevice
 };
 
-static int cmpmodes(const void *va, const void *vb)
+static int
+cmpmodes(const void *va, const void *vb)
 {
-    SDL_Rect *a = *(SDL_Rect **)va;
-    SDL_Rect *b = *(SDL_Rect **)vb;
-    if ( a->w == b->w )
+    SDL_Rect *a = *(SDL_Rect **) va;
+    SDL_Rect *b = *(SDL_Rect **) vb;
+    if (a->w == b->w)
         return b->h - a->h;
     else
         return b->w - a->w;
 }
 
-static HRESULT WINAPI EnumModes2(DDSURFACEDESC *desc, VOID *udata)
+static HRESULT WINAPI
+EnumModes2(DDSURFACEDESC * desc, VOID * udata)
 {
-	SDL_VideoDevice *this = (SDL_VideoDevice *)udata;
-	struct DX5EnumRect *enumrect;
+    SDL_VideoDevice *this = (SDL_VideoDevice *) udata;
+    struct DX5EnumRect *enumrect;
 #if defined(NONAMELESSUNION)
-	int bpp = desc->ddpfPixelFormat.u1.dwRGBBitCount;
-	int refreshRate = desc->u2.dwRefreshRate;
+    int bpp = desc->ddpfPixelFormat.u1.dwRGBBitCount;
+    int refreshRate = desc->u2.dwRefreshRate;
 #else
-	int bpp = desc->ddpfPixelFormat.dwRGBBitCount;
-	int refreshRate = desc->dwRefreshRate;
+    int bpp = desc->ddpfPixelFormat.dwRGBBitCount;
+    int refreshRate = desc->dwRefreshRate;
 #endif
-	int maxRefreshRate;
+    int maxRefreshRate;
 
-	if ( desc->dwWidth <= SDL_desktop_mode.dmPelsWidth &&
-	     desc->dwHeight <= SDL_desktop_mode.dmPelsHeight ) {
-		maxRefreshRate = SDL_desktop_mode.dmDisplayFrequency;
-	} else {
-		maxRefreshRate = 85;	/* safe value? */
-	}
+    if (desc->dwWidth <= SDL_desktop_mode.dmPelsWidth &&
+        desc->dwHeight <= SDL_desktop_mode.dmPelsHeight) {
+        maxRefreshRate = SDL_desktop_mode.dmDisplayFrequency;
+    } else {
+        maxRefreshRate = 85;    /* safe value? */
+    }
 
-	switch (bpp)  {
-		case 8:
-		case 16:
-		case 24:
-		case 32:
-			bpp /= 8; --bpp;
-			if ( enumlists[bpp] &&
-			     enumlists[bpp]->r.w == (Uint16)desc->dwWidth &&
-			     enumlists[bpp]->r.h == (Uint16)desc->dwHeight ) {
-				if ( refreshRate > enumlists[bpp]->refreshRate &&
-				     refreshRate <= maxRefreshRate ) {
-					enumlists[bpp]->refreshRate = refreshRate;
+    switch (bpp) {
+    case 8:
+    case 16:
+    case 24:
+    case 32:
+        bpp /= 8;
+        --bpp;
+        if (enumlists[bpp] &&
+            enumlists[bpp]->r.w == (Uint16) desc->dwWidth &&
+            enumlists[bpp]->r.h == (Uint16) desc->dwHeight) {
+            if (refreshRate > enumlists[bpp]->refreshRate &&
+                refreshRate <= maxRefreshRate) {
+                enumlists[bpp]->refreshRate = refreshRate;
 #ifdef DDRAW_DEBUG
- fprintf(stderr, "New refresh rate for %d bpp: %dx%d at %d Hz\n", (bpp+1)*8, (int)desc->dwWidth, (int)desc->dwHeight, refreshRate);
+                fprintf(stderr,
+                        "New refresh rate for %d bpp: %dx%d at %d Hz\n",
+                        (bpp + 1) * 8, (int) desc->dwWidth,
+                        (int) desc->dwHeight, refreshRate);
 #endif
-				}
-				break;
-			}
-			++SDL_nummodes[bpp];
-			enumrect = (struct DX5EnumRect*)SDL_malloc(sizeof(struct DX5EnumRect));
-			if ( !enumrect ) {
-				SDL_OutOfMemory();
-				return(DDENUMRET_CANCEL);
-			}
-			enumrect->refreshRate = refreshRate;
-			enumrect->r.x = 0;
-			enumrect->r.y = 0;
-			enumrect->r.w = (Uint16)desc->dwWidth;
-			enumrect->r.h = (Uint16)desc->dwHeight;
-			enumrect->next = enumlists[bpp];
-			enumlists[bpp] = enumrect;
+            }
+            break;
+        }
+        ++SDL_nummodes[bpp];
+        enumrect =
+            (struct DX5EnumRect *) SDL_malloc(sizeof(struct DX5EnumRect));
+        if (!enumrect) {
+            SDL_OutOfMemory();
+            return (DDENUMRET_CANCEL);
+        }
+        enumrect->refreshRate = refreshRate;
+        enumrect->r.x = 0;
+        enumrect->r.y = 0;
+        enumrect->r.w = (Uint16) desc->dwWidth;
+        enumrect->r.h = (Uint16) desc->dwHeight;
+        enumrect->next = enumlists[bpp];
+        enumlists[bpp] = enumrect;
 #ifdef DDRAW_DEBUG
- fprintf(stderr, "New mode for %d bpp: %dx%d at %d Hz\n", (bpp+1)*8, (int)desc->dwWidth, (int)desc->dwHeight, refreshRate);
+        fprintf(stderr, "New mode for %d bpp: %dx%d at %d Hz\n",
+                (bpp + 1) * 8, (int) desc->dwWidth, (int) desc->dwHeight,
+                refreshRate);
 #endif
-			break;
-	}
+        break;
+    }
 
-	return(DDENUMRET_OK);
+    return (DDENUMRET_OK);
 }
 
-void SetDDerror(const char *function, int code)
+void
+SetDDerror(const char *function, int code)
 {
-	static char *error;
-	static char  errbuf[1024];
+    static char *error;
+    static char errbuf[1024];
 
-	errbuf[0] = 0;
-	switch (code) {
-		case DDERR_GENERIC:
-			error = "Undefined error!";
-			break;
-		case DDERR_EXCEPTION:
-			error = "Exception encountered";
-			break;
-		case DDERR_INVALIDOBJECT:
-			error = "Invalid object";
-			break;
-		case DDERR_INVALIDPARAMS:
-			error = "Invalid parameters";
-			break;
-		case DDERR_NOTFOUND:
-			error = "Object not found";
-			break;
-		case DDERR_INVALIDRECT:
-			error = "Invalid rectangle";
-			break;
-		case DDERR_INVALIDCAPS:
-			error = "Invalid caps member";
-			break;
-		case DDERR_INVALIDPIXELFORMAT:
-			error = "Invalid pixel format";
-			break;
-		case DDERR_OUTOFMEMORY:
-			error = "Out of memory";
-			break;
-		case DDERR_OUTOFVIDEOMEMORY:
-			error = "Out of video memory";
-			break;
-		case DDERR_SURFACEBUSY:
-			error = "Surface busy";
-			break;
-		case DDERR_SURFACELOST:
-			error = "Surface was lost";
-			break;
-		case DDERR_WASSTILLDRAWING:
-			error = "DirectDraw is still drawing";
-			break;
-		case DDERR_INVALIDSURFACETYPE:
-			error = "Invalid surface type";
-			break;
-		case DDERR_NOEXCLUSIVEMODE:
-			error = "Not in exclusive access mode";
-			break;
-		case DDERR_NOPALETTEATTACHED:
-			error = "No palette attached";
-			break;
-		case DDERR_NOPALETTEHW:
-			error = "No palette hardware";
-			break;
-		case DDERR_NOT8BITCOLOR:
-			error = "Not 8-bit color";
-			break;
-		case DDERR_EXCLUSIVEMODEALREADYSET:
-			error = "Exclusive mode was already set";
-			break;
-		case DDERR_HWNDALREADYSET:
-			error = "Window handle already set";
-			break;
-		case DDERR_HWNDSUBCLASSED:
-			error = "Window handle is subclassed";
-			break;
-		case DDERR_NOBLTHW:
-			error = "No blit hardware";
-			break;
-		case DDERR_IMPLICITLYCREATED:
-			error = "Surface was implicitly created";
-			break;
-		case DDERR_INCOMPATIBLEPRIMARY:
-			error = "Incompatible primary surface";
-			break;
-		case DDERR_NOCOOPERATIVELEVELSET:
-			error = "No cooperative level set";
-			break;
-		case DDERR_NODIRECTDRAWHW:
-			error = "No DirectDraw hardware";
-			break;
-		case DDERR_NOEMULATION:
-			error = "No emulation available";
-			break;
-		case DDERR_NOFLIPHW:
-			error = "No flip hardware";
-			break;
-		case DDERR_NOTFLIPPABLE:
-			error = "Surface not flippable";
-			break;
-		case DDERR_PRIMARYSURFACEALREADYEXISTS:
-			error = "Primary surface already exists";
-			break;
-		case DDERR_UNSUPPORTEDMODE:
-			error = "Unsupported mode";
-			break;
-		case DDERR_WRONGMODE:
-			error = "Surface created in different mode";
-			break;
-		case DDERR_UNSUPPORTED:
-			error = "Operation not supported";
-			break;
-		case E_NOINTERFACE:
-			error = "Interface not present";
-			break;
-		default:
-			SDL_snprintf(errbuf, SDL_arraysize(errbuf),
-			         "%s: Unknown DirectDraw error: 0x%x",
-								function, code);
-			break;
-	}
-	if ( ! errbuf[0] ) {
-		SDL_snprintf(errbuf, SDL_arraysize(errbuf), "%s: %s", function, error);
-	}
-	SDL_SetError("%s", errbuf);
-	return;
+    errbuf[0] = 0;
+    switch (code) {
+    case DDERR_GENERIC:
+        error = "Undefined error!";
+        break;
+    case DDERR_EXCEPTION:
+        error = "Exception encountered";
+        break;
+    case DDERR_INVALIDOBJECT:
+        error = "Invalid object";
+        break;
+    case DDERR_INVALIDPARAMS:
+        error = "Invalid parameters";
+        break;
+    case DDERR_NOTFOUND:
+        error = "Object not found";
+        break;
+    case DDERR_INVALIDRECT:
+        error = "Invalid rectangle";
+        break;
+    case DDERR_INVALIDCAPS:
+        error = "Invalid caps member";
+        break;
+    case DDERR_INVALIDPIXELFORMAT:
+        error = "Invalid pixel format";
+        break;
+    case DDERR_OUTOFMEMORY:
+        error = "Out of memory";
+        break;
+    case DDERR_OUTOFVIDEOMEMORY:
+        error = "Out of video memory";
+        break;
+    case DDERR_SURFACEBUSY:
+        error = "Surface busy";
+        break;
+    case DDERR_SURFACELOST:
+        error = "Surface was lost";
+        break;
+    case DDERR_WASSTILLDRAWING:
+        error = "DirectDraw is still drawing";
+        break;
+    case DDERR_INVALIDSURFACETYPE:
+        error = "Invalid surface type";
+        break;
+    case DDERR_NOEXCLUSIVEMODE:
+        error = "Not in exclusive access mode";
+        break;
+    case DDERR_NOPALETTEATTACHED:
+        error = "No palette attached";
+        break;
+    case DDERR_NOPALETTEHW:
+        error = "No palette hardware";
+        break;
+    case DDERR_NOT8BITCOLOR:
+        error = "Not 8-bit color";
+        break;
+    case DDERR_EXCLUSIVEMODEALREADYSET:
+        error = "Exclusive mode was already set";
+        break;
+    case DDERR_HWNDALREADYSET:
+        error = "Window handle already set";
+        break;
+    case DDERR_HWNDSUBCLASSED:
+        error = "Window handle is subclassed";
+        break;
+    case DDERR_NOBLTHW:
+        error = "No blit hardware";
+        break;
+    case DDERR_IMPLICITLYCREATED:
+        error = "Surface was implicitly created";
+        break;
+    case DDERR_INCOMPATIBLEPRIMARY:
+        error = "Incompatible primary surface";
+        break;
+    case DDERR_NOCOOPERATIVELEVELSET:
+        error = "No cooperative level set";
+        break;
+    case DDERR_NODIRECTDRAWHW:
+        error = "No DirectDraw hardware";
+        break;
+    case DDERR_NOEMULATION:
+        error = "No emulation available";
+        break;
+    case DDERR_NOFLIPHW:
+        error = "No flip hardware";
+        break;
+    case DDERR_NOTFLIPPABLE:
+        error = "Surface not flippable";
+        break;
+    case DDERR_PRIMARYSURFACEALREADYEXISTS:
+        error = "Primary surface already exists";
+        break;
+    case DDERR_UNSUPPORTEDMODE:
+        error = "Unsupported mode";
+        break;
+    case DDERR_WRONGMODE:
+        error = "Surface created in different mode";
+        break;
+    case DDERR_UNSUPPORTED:
+        error = "Operation not supported";
+        break;
+    case E_NOINTERFACE:
+        error = "Interface not present";
+        break;
+    default:
+        SDL_snprintf(errbuf, SDL_arraysize(errbuf),
+                     "%s: Unknown DirectDraw error: 0x%x", function, code);
+        break;
+    }
+    if (!errbuf[0]) {
+        SDL_snprintf(errbuf, SDL_arraysize(errbuf), "%s: %s", function,
+                     error);
+    }
+    SDL_SetError("%s", errbuf);
+    return;
 }
 
 
-static int DX5_UpdateVideoInfo(_THIS)
+static int
+DX5_UpdateVideoInfo(_THIS)
 {
-	/* This needs to be DDCAPS_DX5 for the DirectDraw2 interface */
+    /* This needs to be DDCAPS_DX5 for the DirectDraw2 interface */
 #if DIRECTDRAW_VERSION <= 0x300
 #error Your version of DirectX must be greater than or equal to 5.0
 #endif
 #ifndef IDirectDrawGammaControl_SetGammaRamp
-	/*if gamma is undefined then we really have directx <= 0x500*/
-	DDCAPS DDCaps;
+    /*if gamma is undefined then we really have directx <= 0x500 */
+    DDCAPS DDCaps;
 #else
-	DDCAPS_DX5 DDCaps;
+    DDCAPS_DX5 DDCaps;
 #endif
-	HRESULT result;
+    HRESULT result;
 
-	/* Fill in our hardware acceleration capabilities */
-	SDL_memset(&DDCaps, 0, sizeof(DDCaps));
-	DDCaps.dwSize = sizeof(DDCaps);
-	result = IDirectDraw2_GetCaps(ddraw2, (DDCAPS *)&DDCaps, NULL);
-	if ( result != DD_OK ) {
-		SetDDerror("DirectDraw2::GetCaps", result);
-		return(-1);
-	}
-	this->info.hw_available = 1;
-	if ( (DDCaps.dwCaps & DDCAPS_BLT) == DDCAPS_BLT ) {
-		this->info.blit_hw = 1;
-	}
-	if ( ((DDCaps.dwCaps & DDCAPS_COLORKEY) == DDCAPS_COLORKEY) &&
-	     ((DDCaps.dwCKeyCaps & DDCKEYCAPS_SRCBLT) == DDCKEYCAPS_SRCBLT) ) {
-		this->info.blit_hw_CC = 1;
-	}
-	if ( (DDCaps.dwCaps & DDCAPS_ALPHA) == DDCAPS_ALPHA ) {
-		/* This is only for alpha channel, and DirectX 6
-		   doesn't support 2D alpha blits yet, so set it 0
-		 */
-		this->info.blit_hw_A = 0;
-	}
-	if ( (DDCaps.dwCaps & DDCAPS_CANBLTSYSMEM) == DDCAPS_CANBLTSYSMEM ) {
-		this->info.blit_sw = 1;
-		/* This isn't necessarily true, but the HEL will cover us */
-		this->info.blit_sw_CC = this->info.blit_hw_CC;
-		this->info.blit_sw_A = this->info.blit_hw_A;
-	}
-	if ( (DDCaps.dwCaps & DDCAPS_BLTCOLORFILL) == DDCAPS_BLTCOLORFILL ) {
-		this->info.blit_fill = 1;
-	}
+    /* Fill in our hardware acceleration capabilities */
+    SDL_memset(&DDCaps, 0, sizeof(DDCaps));
+    DDCaps.dwSize = sizeof(DDCaps);
+    result = IDirectDraw2_GetCaps(ddraw2, (DDCAPS *) & DDCaps, NULL);
+    if (result != DD_OK) {
+        SetDDerror("DirectDraw2::GetCaps", result);
+        return (-1);
+    }
+    this->info.hw_available = 1;
+    if ((DDCaps.dwCaps & DDCAPS_BLT) == DDCAPS_BLT) {
+        this->info.blit_hw = 1;
+    }
+    if (((DDCaps.dwCaps & DDCAPS_COLORKEY) == DDCAPS_COLORKEY) &&
+        ((DDCaps.dwCKeyCaps & DDCKEYCAPS_SRCBLT) == DDCKEYCAPS_SRCBLT)) {
+        this->info.blit_hw_CC = 1;
+    }
+    if ((DDCaps.dwCaps & DDCAPS_ALPHA) == DDCAPS_ALPHA) {
+        /* This is only for alpha channel, and DirectX 6
+           doesn't support 2D alpha blits yet, so set it 0
+         */
+        this->info.blit_hw_A = 0;
+    }
+    if ((DDCaps.dwCaps & DDCAPS_CANBLTSYSMEM) == DDCAPS_CANBLTSYSMEM) {
+        this->info.blit_sw = 1;
+        /* This isn't necessarily true, but the HEL will cover us */
+        this->info.blit_sw_CC = this->info.blit_hw_CC;
+        this->info.blit_sw_A = this->info.blit_hw_A;
+    }
+    if ((DDCaps.dwCaps & DDCAPS_BLTCOLORFILL) == DDCAPS_BLTCOLORFILL) {
+        this->info.blit_fill = 1;
+    }
 
-	/* Find out how much video memory is available */
-	{ DDSCAPS ddsCaps;
-	  DWORD total_mem;
-		ddsCaps.dwCaps = DDSCAPS_VIDEOMEMORY;
-		result = IDirectDraw2_GetAvailableVidMem(ddraw2,
-						&ddsCaps, &total_mem, NULL);
-		if ( result != DD_OK ) {
-			total_mem = DDCaps.dwVidMemTotal; 
-		}
-		this->info.video_mem = total_mem/1024;
-	}
-	return(0);
+    /* Find out how much video memory is available */
+    {
+        DDSCAPS ddsCaps;
+        DWORD total_mem;
+        ddsCaps.dwCaps = DDSCAPS_VIDEOMEMORY;
+        result = IDirectDraw2_GetAvailableVidMem(ddraw2,
+                                                 &ddsCaps, &total_mem, NULL);
+        if (result != DD_OK) {
+            total_mem = DDCaps.dwVidMemTotal;
+        }
+        this->info.video_mem = total_mem / 1024;
+    }
+    return (0);
 }
 
-int DX5_VideoInit(_THIS, SDL_PixelFormat *vformat)
+int
+DX5_VideoInit(_THIS, SDL_PixelFormat * vformat)
 {
-	HRESULT result;
-	LPDIRECTDRAW ddraw;
-	int i, j;
-	HDC hdc;
+    HRESULT result;
+    LPDIRECTDRAW ddraw;
+    int i, j;
+    HDC hdc;
 
-	/* Intialize everything */
-	ddraw2 = NULL;
-	SDL_primary = NULL;
-	SDL_clipper = NULL;
-	SDL_palette = NULL;
-	for ( i=0; i<NUM_MODELISTS; ++i ) {
-		SDL_nummodes[i] = 0;
-		SDL_modelist[i] = NULL;
-		SDL_modeindex[i] = 0;
-	}
-	colorchange_expected = 0;
+    /* Intialize everything */
+    ddraw2 = NULL;
+    SDL_primary = NULL;
+    SDL_clipper = NULL;
+    SDL_palette = NULL;
+    for (i = 0; i < NUM_MODELISTS; ++i) {
+        SDL_nummodes[i] = 0;
+        SDL_modelist[i] = NULL;
+        SDL_modeindex[i] = 0;
+    }
+    colorchange_expected = 0;
 
-	/* Create the window */
-	if ( DX5_CreateWindow(this) < 0 ) {
-		return(-1);
-	}
-
+    /* Create the window */
+    if (DX5_CreateWindow(this) < 0) {
+        return (-1);
+    }
 #if !SDL_AUDIO_DISABLED
-	DX5_SoundFocus(SDL_Window);
+    DX5_SoundFocus(SDL_Window);
 #endif
 
-	/* Create the DirectDraw object */
-	result = DDrawCreate(NULL, &ddraw, NULL);
-	if ( result != DD_OK ) {
-		SetDDerror("DirectDrawCreate", result);
-		return(-1);
-	}
-	result = IDirectDraw_QueryInterface(ddraw, &IID_IDirectDraw2,
-							(LPVOID *)&ddraw2);
-	IDirectDraw_Release(ddraw);
-	if ( result != DD_OK ) {
-		SetDDerror("DirectDraw::QueryInterface", result);
-		return(-1);
-	}
+    /* Create the DirectDraw object */
+    result = DDrawCreate(NULL, &ddraw, NULL);
+    if (result != DD_OK) {
+        SetDDerror("DirectDrawCreate", result);
+        return (-1);
+    }
+    result = IDirectDraw_QueryInterface(ddraw, &IID_IDirectDraw2,
+                                        (LPVOID *) & ddraw2);
+    IDirectDraw_Release(ddraw);
+    if (result != DD_OK) {
+        SetDDerror("DirectDraw::QueryInterface", result);
+        return (-1);
+    }
 
-	/* Determine the screen depth */
-	hdc = GetDC(SDL_Window);
-	vformat->BitsPerPixel = GetDeviceCaps(hdc,PLANES) *
-					GetDeviceCaps(hdc,BITSPIXEL);
-	ReleaseDC(SDL_Window, hdc);
+    /* Determine the screen depth */
+    hdc = GetDC(SDL_Window);
+    vformat->BitsPerPixel = GetDeviceCaps(hdc, PLANES) *
+        GetDeviceCaps(hdc, BITSPIXEL);
+    ReleaseDC(SDL_Window, hdc);
 
 #ifndef NO_CHANGEDISPLAYSETTINGS
-	/* Query for the desktop resolution */
-	EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &SDL_desktop_mode);
-	this->info.current_w = SDL_desktop_mode.dmPelsWidth;
-	this->info.current_h = SDL_desktop_mode.dmPelsHeight;
+    /* Query for the desktop resolution */
+    EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &SDL_desktop_mode);
+    this->info.current_w = SDL_desktop_mode.dmPelsWidth;
+    this->info.current_h = SDL_desktop_mode.dmPelsHeight;
 #endif
 
-	/* Enumerate the available fullscreen modes */
-	for ( i=0; i<NUM_MODELISTS; ++i )
-		enumlists[i] = NULL;
+    /* Enumerate the available fullscreen modes */
+    for (i = 0; i < NUM_MODELISTS; ++i)
+        enumlists[i] = NULL;
 
-	result = IDirectDraw2_EnumDisplayModes(ddraw2,DDEDM_REFRESHRATES,NULL,this,EnumModes2);
-	if ( result != DD_OK ) {
-		SetDDerror("DirectDraw2::EnumDisplayModes", result);
-		return(-1);
-	}
-	for ( i=0; i<NUM_MODELISTS; ++i ) {
-		struct DX5EnumRect *rect;
-		SDL_modelist[i] = (SDL_Rect **)
-				SDL_malloc((SDL_nummodes[i]+1)*sizeof(SDL_Rect *));
-		if ( SDL_modelist[i] == NULL ) {
-			SDL_OutOfMemory();
-			return(-1);
-		}
-		for ( j = 0, rect = enumlists[i]; rect; ++j, rect = rect->next ) {
-			SDL_modelist[i][j] = &rect->r;
-		}
-		SDL_modelist[i][j] = NULL;
+    result =
+        IDirectDraw2_EnumDisplayModes(ddraw2, DDEDM_REFRESHRATES, NULL, this,
+                                      EnumModes2);
+    if (result != DD_OK) {
+        SetDDerror("DirectDraw2::EnumDisplayModes", result);
+        return (-1);
+    }
+    for (i = 0; i < NUM_MODELISTS; ++i) {
+        struct DX5EnumRect *rect;
+        SDL_modelist[i] = (SDL_Rect **)
+            SDL_malloc((SDL_nummodes[i] + 1) * sizeof(SDL_Rect *));
+        if (SDL_modelist[i] == NULL) {
+            SDL_OutOfMemory();
+            return (-1);
+        }
+        for (j = 0, rect = enumlists[i]; rect; ++j, rect = rect->next) {
+            SDL_modelist[i][j] = &rect->r;
+        }
+        SDL_modelist[i][j] = NULL;
 
-		if ( SDL_nummodes[i] > 0 ) {
-			SDL_qsort(SDL_modelist[i], SDL_nummodes[i], sizeof *SDL_modelist[i], cmpmodes);
-		}
-	}
-	
-	/* Fill in some window manager capabilities */
-	this->info.wm_available = 1;
+        if (SDL_nummodes[i] > 0) {
+            SDL_qsort(SDL_modelist[i], SDL_nummodes[i],
+                      sizeof *SDL_modelist[i], cmpmodes);
+        }
+    }
 
-	/* Fill in the video hardware capabilities */
-	DX5_UpdateVideoInfo(this);
+    /* Fill in some window manager capabilities */
+    this->info.wm_available = 1;
 
-	return(0);
+    /* Fill in the video hardware capabilities */
+    DX5_UpdateVideoInfo(this);
+
+    return (0);
 }
 
-SDL_Rect **DX5_ListModes(_THIS, SDL_PixelFormat *format, Uint32 flags)
+SDL_Rect **
+DX5_ListModes(_THIS, SDL_PixelFormat * format, Uint32 flags)
 {
-	int bpp;
+    int bpp;
 
-	bpp = format->BitsPerPixel;
-	if ( (flags & SDL_FULLSCREEN) == SDL_FULLSCREEN ) {
-		/* FIXME:  No support for 1 bpp or 4 bpp formats */
-		switch (bpp) {  /* Does windows support other BPP? */
-			case 8:
-			case 16:
-			case 24:
-			case 32:
-				bpp = (bpp/8)-1;
-				if ( SDL_nummodes[bpp] > 0 )
-					return(SDL_modelist[bpp]);
-				/* Fall through */
-			default:
-				return((SDL_Rect **)0);
-		}
-	} else {
-		if ( this->screen->format->BitsPerPixel == bpp ) {
-			return((SDL_Rect **)-1);
-		} else {
-			return((SDL_Rect **)0);
-		}
-	}
+    bpp = format->BitsPerPixel;
+    if ((flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) {
+        /* FIXME:  No support for 1 bpp or 4 bpp formats */
+        switch (bpp) {          /* Does windows support other BPP? */
+        case 8:
+        case 16:
+        case 24:
+        case 32:
+            bpp = (bpp / 8) - 1;
+            if (SDL_nummodes[bpp] > 0)
+                return (SDL_modelist[bpp]);
+            /* Fall through */
+        default:
+            return ((SDL_Rect **) 0);
+        }
+    } else {
+        if (this->screen->format->BitsPerPixel == bpp) {
+            return ((SDL_Rect **) - 1);
+        } else {
+            return ((SDL_Rect **) 0);
+        }
+    }
 }
 
 /* Various screen update functions available */
-static void DX5_WindowUpdate(_THIS, int numrects, SDL_Rect *rects);
-static void DX5_DirectUpdate(_THIS, int numrects, SDL_Rect *rects);
+static void DX5_WindowUpdate(_THIS, int numrects, SDL_Rect * rects);
+static void DX5_DirectUpdate(_THIS, int numrects, SDL_Rect * rects);
 
-SDL_Surface *DX5_SetVideoMode(_THIS, SDL_Surface *current,
-				int width, int height, int bpp, Uint32 flags)
+SDL_Surface *
+DX5_SetVideoMode(_THIS, SDL_Surface * current,
+                 int width, int height, int bpp, Uint32 flags)
 {
-	SDL_Surface *video;
-	HRESULT result;
-	DWORD sharemode;
-	DWORD style;
-	const DWORD directstyle =
-			(WS_POPUP);
-	const DWORD windowstyle = 
-			(WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX);
-	const DWORD resizestyle =
-			(WS_THICKFRAME|WS_MAXIMIZEBOX);
-	DDSURFACEDESC ddsd;
-	LPDIRECTDRAWSURFACE  dd_surface1;
-	LPDIRECTDRAWSURFACE3 dd_surface3;
+    SDL_Surface *video;
+    HRESULT result;
+    DWORD sharemode;
+    DWORD style;
+    const DWORD directstyle = (WS_POPUP);
+    const DWORD windowstyle =
+        (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX);
+    const DWORD resizestyle = (WS_THICKFRAME | WS_MAXIMIZEBOX);
+    DDSURFACEDESC ddsd;
+    LPDIRECTDRAWSURFACE dd_surface1;
+    LPDIRECTDRAWSURFACE3 dd_surface3;
 
-	SDL_resizing = 1;
+    SDL_resizing = 1;
 #ifdef DDRAW_DEBUG
- fprintf(stderr, "Setting %dx%dx%d video mode\n", width, height, bpp);
+    fprintf(stderr, "Setting %dx%dx%d video mode\n", width, height, bpp);
 #endif
-	/* Clean up any previous DirectDraw surfaces */
-	if ( current->hwdata ) {
-		this->FreeHWSurface(this, current);
-		current->hwdata = NULL;
-	}
-	if ( SDL_primary != NULL ) {
-		IDirectDrawSurface3_Release(SDL_primary);
-		SDL_primary = NULL;
-	}
-
+    /* Clean up any previous DirectDraw surfaces */
+    if (current->hwdata) {
+        this->FreeHWSurface(this, current);
+        current->hwdata = NULL;
+    }
+    if (SDL_primary != NULL) {
+        IDirectDrawSurface3_Release(SDL_primary);
+        SDL_primary = NULL;
+    }
 #ifndef NO_CHANGEDISPLAYSETTINGS
-	/* Unset any previous OpenGL fullscreen mode */
-	if ( (current->flags & (SDL_OPENGL|SDL_FULLSCREEN)) ==
-	                       (SDL_OPENGL|SDL_FULLSCREEN) ) {
-		ChangeDisplaySettings(NULL, 0);
-	}
+    /* Unset any previous OpenGL fullscreen mode */
+    if ((current->flags & (SDL_INTERNALOPENGL | SDL_FULLSCREEN)) ==
+        (SDL_INTERNALOPENGL | SDL_FULLSCREEN)) {
+        ChangeDisplaySettings(NULL, 0);
+    }
 #endif
 
-	/* Clean up any GL context that may be hanging around */
-	if ( current->flags & SDL_OPENGL ) {
-		WIN_GL_ShutDown(this);
-	}
+    /* Clean up any GL context that may be hanging around */
+    if (current->flags & SDL_INTERNALOPENGL) {
+        WIN_GL_ShutDown(this);
+    }
 
-	/* If we are setting a GL mode, use GDI, not DirectX (yuck) */
-	if ( flags & SDL_OPENGL ) {
-		Uint32 Rmask, Gmask, Bmask;
+    /* If we are setting a GL mode, use GDI, not DirectX (yuck) */
+    if (flags & SDL_INTERNALOPENGL) {
+        Uint32 Rmask, Gmask, Bmask;
 
-		/* Recalculate the bitmasks if necessary */
-		if ( bpp == current->format->BitsPerPixel ) {
-			video = current;
-		} else {
-			switch (bpp) {
-			    case 15:
-			    case 16:
-				if ( 0 /*DIB_SussScreenDepth() == 15*/ ) {
-					/* 5-5-5 */
-					Rmask = 0x00007c00;
-					Gmask = 0x000003e0;
-					Bmask = 0x0000001f;
-				} else {
-					/* 5-6-5 */
-					Rmask = 0x0000f800;
-					Gmask = 0x000007e0;
-					Bmask = 0x0000001f;
-				}
-				break;
-			    case 24:
-			    case 32:
-				/* GDI defined as 8-8-8 */
-				Rmask = 0x00ff0000;
-				Gmask = 0x0000ff00;
-				Bmask = 0x000000ff;
-				break;
-			    default:
-				Rmask = 0x00000000;
-				Gmask = 0x00000000;
-				Bmask = 0x00000000;
-				break;
-			}
-			video = SDL_CreateRGBSurface(SDL_SWSURFACE, 0, 0, bpp,
-			                             Rmask, Gmask, Bmask, 0);
-			if ( video == NULL ) {
-				SDL_OutOfMemory();
-				return(NULL);
-			}
-		}
+        /* Recalculate the bitmasks if necessary */
+        if (bpp == current->format->BitsPerPixel) {
+            video = current;
+        } else {
+            switch (bpp) {
+            case 15:
+            case 16:
+                if (0 /*DIB_SussScreenDepth() == 15 */ ) {
+                    /* 5-5-5 */
+                    Rmask = 0x00007c00;
+                    Gmask = 0x000003e0;
+                    Bmask = 0x0000001f;
+                } else {
+                    /* 5-6-5 */
+                    Rmask = 0x0000f800;
+                    Gmask = 0x000007e0;
+                    Bmask = 0x0000001f;
+                }
+                break;
+            case 24:
+            case 32:
+                /* GDI defined as 8-8-8 */
+                Rmask = 0x00ff0000;
+                Gmask = 0x0000ff00;
+                Bmask = 0x000000ff;
+                break;
+            default:
+                Rmask = 0x00000000;
+                Gmask = 0x00000000;
+                Bmask = 0x00000000;
+                break;
+            }
+            video = SDL_CreateRGBSurface(SDL_SWSURFACE, 0, 0, bpp,
+                                         Rmask, Gmask, Bmask, 0);
+            if (video == NULL) {
+                SDL_OutOfMemory();
+                return (NULL);
+            }
+        }
 
-		/* Fill in part of the video surface */
-		video->flags = 0;	/* Clear flags */
-		video->w = width;
-		video->h = height;
-		video->pitch = SDL_CalculatePitch(video);
+        /* Fill in part of the video surface */
+        video->flags = 0;       /* Clear flags */
+        video->w = width;
+        video->h = height;
+        video->pitch = SDL_CalculatePitch(video);
 
 #ifndef NO_CHANGEDISPLAYSETTINGS
-		/* Set fullscreen mode if appropriate.
-		   Ugh, since our list of valid video modes comes from
-		   the DirectX driver, we may not actually be able to
-		   change to the desired resolution here.
-		   FIXME: Should we do a closest match?
-		 */
-		if ( (flags & SDL_FULLSCREEN) == SDL_FULLSCREEN ) {
-			DEVMODE settings;
-			BOOL changed;
+        /* Set fullscreen mode if appropriate.
+           Ugh, since our list of valid video modes comes from
+           the DirectX driver, we may not actually be able to
+           change to the desired resolution here.
+           FIXME: Should we do a closest match?
+         */
+        if ((flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) {
+            DEVMODE settings;
+            BOOL changed;
 
-			SDL_memset(&settings, 0, sizeof(DEVMODE));
-			settings.dmSize = sizeof(DEVMODE);
-			settings.dmBitsPerPel = video->format->BitsPerPixel;
-			settings.dmPelsWidth = width;
-			settings.dmPelsHeight = height;
-			settings.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL;
-			if ( width <= (int)SDL_desktop_mode.dmPelsWidth &&
-			     height <= (int)SDL_desktop_mode.dmPelsHeight ) {
-				settings.dmDisplayFrequency = SDL_desktop_mode.dmDisplayFrequency;
-				settings.dmFields |= DM_DISPLAYFREQUENCY;
-			}
-			changed = (ChangeDisplaySettings(&settings, CDS_FULLSCREEN) == DISP_CHANGE_SUCCESSFUL);
-			if ( ! changed && (settings.dmFields & DM_DISPLAYFREQUENCY) ) {
-				settings.dmFields &= ~DM_DISPLAYFREQUENCY;
-				changed = (ChangeDisplaySettings(&settings, CDS_FULLSCREEN) == DISP_CHANGE_SUCCESSFUL);
-			}
-			if ( changed ) {
-				video->flags |= SDL_FULLSCREEN;
-				SDL_fullscreen_mode = settings;
-			}
-		}
+            SDL_memset(&settings, 0, sizeof(DEVMODE));
+            settings.dmSize = sizeof(DEVMODE);
+            settings.dmBitsPerPel = video->format->BitsPerPixel;
+            settings.dmPelsWidth = width;
+            settings.dmPelsHeight = height;
+            settings.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL;
+            if (width <= (int) SDL_desktop_mode.dmPelsWidth
+                && height <= (int) SDL_desktop_mode.dmPelsHeight) {
+                settings.dmDisplayFrequency =
+                    SDL_desktop_mode.dmDisplayFrequency;
+                settings.dmFields |= DM_DISPLAYFREQUENCY;
+            }
+            changed =
+                (ChangeDisplaySettings(&settings, CDS_FULLSCREEN) ==
+                 DISP_CHANGE_SUCCESSFUL);
+            if (!changed && (settings.dmFields & DM_DISPLAYFREQUENCY)) {
+                settings.dmFields &= ~DM_DISPLAYFREQUENCY;
+                changed = (ChangeDisplaySettings(&settings, CDS_FULLSCREEN)
+                           == DISP_CHANGE_SUCCESSFUL);
+            }
+            if (changed) {
+                video->flags |= SDL_FULLSCREEN;
+                SDL_fullscreen_mode = settings;
+            }
+        }
 #endif /* !NO_CHANGEDISPLAYSETTINGS */
 
-		style = GetWindowLong(SDL_Window, GWL_STYLE);
-		style &= ~(resizestyle|WS_MAXIMIZE);
-		if ( video->flags & SDL_FULLSCREEN ) {
-			style &= ~windowstyle;
-			style |= directstyle;
-		} else {
-			if ( flags & SDL_NOFRAME ) {
-				style &= ~windowstyle;
-				style |= directstyle;
-				video->flags |= SDL_NOFRAME;
-			} else {
-				style &= ~directstyle;
-				style |= windowstyle;
-				if ( flags & SDL_RESIZABLE ) {
-					style |= resizestyle;
-					video->flags |= SDL_RESIZABLE;
-				}
-			}
+        style = GetWindowLong(SDL_Window, GWL_STYLE);
+        style &= ~(resizestyle | WS_MAXIMIZE);
+        if (video->flags & SDL_FULLSCREEN) {
+            style &= ~windowstyle;
+            style |= directstyle;
+        } else {
+            if (flags & SDL_NOFRAME) {
+                style &= ~windowstyle;
+                style |= directstyle;
+                video->flags |= SDL_NOFRAME;
+            } else {
+                style &= ~directstyle;
+                style |= windowstyle;
+                if (flags & SDL_RESIZABLE) {
+                    style |= resizestyle;
+                    video->flags |= SDL_RESIZABLE;
+                }
+            }
 #if WS_MAXIMIZE
-			if (IsZoomed(SDL_Window)) style |= WS_MAXIMIZE;
+            if (IsZoomed(SDL_Window))
+                style |= WS_MAXIMIZE;
 #endif
-		}
+        }
 
-		/* DJM: Don't piss of anyone who has setup his own window */
-		if ( !SDL_windowid )
-			SetWindowLong(SDL_Window, GWL_STYLE, style);
+        /* DJM: Don't piss of anyone who has setup his own window */
+        if (!SDL_windowid)
+            SetWindowLong(SDL_Window, GWL_STYLE, style);
 
-		/* Resize the window (copied from SDL WinDIB driver) */
-		if ( !SDL_windowid && !IsZoomed(SDL_Window) ) {
-			RECT bounds;
-			int x, y;
-			HWND top;
-			UINT swp_flags;
-			const char *window = NULL;
-			const char *center = NULL;
+        /* Resize the window (copied from SDL WinDIB driver) */
+        if (!SDL_windowid && !IsZoomed(SDL_Window)) {
+            RECT bounds;
+            int x, y;
+            HWND top;
+            UINT swp_flags;
+            const char *window = NULL;
+            const char *center = NULL;
 
-			if ( !SDL_windowX && !SDL_windowY ) {
-				window = SDL_getenv("SDL_VIDEO_WINDOW_POS");
-				center = SDL_getenv("SDL_VIDEO_CENTERED");
-				if ( window ) {
-					if ( SDL_sscanf(window, "%d,%d", &x, &y) == 2 ) {
-						SDL_windowX = x;
-						SDL_windowY = y;
-					}
-					if ( SDL_strcmp(window, "center") == 0 ) {
-						center = window;
-					}
-				}
-			}
-			swp_flags = (SWP_NOCOPYBITS | SWP_SHOWWINDOW);
+            if (!SDL_windowX && !SDL_windowY) {
+                window = SDL_getenv("SDL_VIDEO_WINDOW_POS");
+                center = SDL_getenv("SDL_VIDEO_CENTERED");
+                if (window) {
+                    if (SDL_sscanf(window, "%d,%d", &x, &y) == 2) {
+                        SDL_windowX = x;
+                        SDL_windowY = y;
+                    }
+                    if (SDL_strcmp(window, "center") == 0) {
+                        center = window;
+                    }
+                }
+            }
+            swp_flags = (SWP_NOCOPYBITS | SWP_SHOWWINDOW);
 
-			bounds.left = SDL_windowX;
-			bounds.top = SDL_windowY;
-			bounds.right = SDL_windowX+video->w;
-			bounds.bottom = SDL_windowY+video->h;
-			AdjustWindowRectEx(&bounds, GetWindowLong(SDL_Window, GWL_STYLE), (GetMenu(SDL_Window) != NULL), 0);
-			width = bounds.right-bounds.left;
-			height = bounds.bottom-bounds.top;
-			if ( (flags & SDL_FULLSCREEN) ) {
-				x = (GetSystemMetrics(SM_CXSCREEN)-width)/2;
-				y = (GetSystemMetrics(SM_CYSCREEN)-height)/2;
-			} else if ( center ) {
-				x = (GetSystemMetrics(SM_CXSCREEN)-width)/2;
-				y = (GetSystemMetrics(SM_CYSCREEN)-height)/2;
-			} else if ( SDL_windowX || SDL_windowY || window ) {
-				x = bounds.left;
-				y = bounds.top;
-			} else {
-				x = y = -1;
-				swp_flags |= SWP_NOMOVE;
-			}
-			if ( flags & SDL_FULLSCREEN ) {
-				top = HWND_TOPMOST;
-			} else {
-				top = HWND_NOTOPMOST;
-			}
-			SetWindowPos(SDL_Window, top, x, y, width, height, swp_flags);
-			if ( !(flags & SDL_FULLSCREEN) ) {
-				SDL_windowX = SDL_bounds.left;
-				SDL_windowY = SDL_bounds.top;
-			}
-			SetForegroundWindow(SDL_Window);
-		}
-		SDL_resizing = 0;
+            bounds.left = SDL_windowX;
+            bounds.top = SDL_windowY;
+            bounds.right = SDL_windowX + video->w;
+            bounds.bottom = SDL_windowY + video->h;
+            AdjustWindowRectEx(&bounds, GetWindowLong(SDL_Window, GWL_STYLE),
+                               (GetMenu(SDL_Window) != NULL), 0);
+            width = bounds.right - bounds.left;
+            height = bounds.bottom - bounds.top;
+            if ((flags & SDL_FULLSCREEN)) {
+                x = (GetSystemMetrics(SM_CXSCREEN) - width) / 2;
+                y = (GetSystemMetrics(SM_CYSCREEN) - height) / 2;
+            } else if (center) {
+                x = (GetSystemMetrics(SM_CXSCREEN) - width) / 2;
+                y = (GetSystemMetrics(SM_CYSCREEN) - height) / 2;
+            } else if (SDL_windowX || SDL_windowY || window) {
+                x = bounds.left;
+                y = bounds.top;
+            } else {
+                x = y = -1;
+                swp_flags |= SWP_NOMOVE;
+            }
+            if (flags & SDL_FULLSCREEN) {
+                top = HWND_TOPMOST;
+            } else {
+                top = HWND_NOTOPMOST;
+            }
+            SetWindowPos(SDL_Window, top, x, y, width, height, swp_flags);
+            if (!(flags & SDL_FULLSCREEN)) {
+                SDL_windowX = SDL_bounds.left;
+                SDL_windowY = SDL_bounds.top;
+            }
+            SetForegroundWindow(SDL_Window);
+        }
+        SDL_resizing = 0;
 
-		/* Set up for OpenGL */
-		if ( WIN_GL_SetupWindow(this) < 0 ) {
-			return(NULL);
-		}
-		video->flags |= SDL_OPENGL;
-		return(video);
-	}
+        /* Set up for OpenGL */
+        if (WIN_GL_SetupWindow(this) < 0) {
+            return (NULL);
+        }
+        video->flags |= SDL_INTERNALOPENGL;
+        return (video);
+    }
 
-	/* Set the appropriate window style */
-	style = GetWindowLong(SDL_Window, GWL_STYLE);
-	style &= ~(resizestyle|WS_MAXIMIZE);
-	if ( (flags & SDL_FULLSCREEN) == SDL_FULLSCREEN ) {
-		style &= ~windowstyle;
-		style |= directstyle;
-	} else {
-		if ( flags & SDL_NOFRAME ) {
-			style &= ~windowstyle;
-			style |= directstyle;
-		} else {
-			style &= ~directstyle;
-			style |= windowstyle;
-			if ( flags & SDL_RESIZABLE ) {
-				style |= resizestyle;
-			}
-		}
+    /* Set the appropriate window style */
+    style = GetWindowLong(SDL_Window, GWL_STYLE);
+    style &= ~(resizestyle | WS_MAXIMIZE);
+    if ((flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) {
+        style &= ~windowstyle;
+        style |= directstyle;
+    } else {
+        if (flags & SDL_NOFRAME) {
+            style &= ~windowstyle;
+            style |= directstyle;
+        } else {
+            style &= ~directstyle;
+            style |= windowstyle;
+            if (flags & SDL_RESIZABLE) {
+                style |= resizestyle;
+            }
+        }
 #if WS_MAXIMIZE
-		if (IsZoomed(SDL_Window)) style |= WS_MAXIMIZE;
+        if (IsZoomed(SDL_Window))
+            style |= WS_MAXIMIZE;
 #endif
-	}
-	/* DJM: Don't piss of anyone who has setup his own window */
-	if ( !SDL_windowid )
-		SetWindowLong(SDL_Window, GWL_STYLE, style);
+    }
+    /* DJM: Don't piss of anyone who has setup his own window */
+    if (!SDL_windowid)
+        SetWindowLong(SDL_Window, GWL_STYLE, style);
 
-	/* Set DirectDraw sharing mode.. exclusive when fullscreen */
-	if ( (flags & SDL_FULLSCREEN) == SDL_FULLSCREEN ) {
-		sharemode = DDSCL_FULLSCREEN|DDSCL_EXCLUSIVE|DDSCL_ALLOWREBOOT;
-	} else {
-		sharemode = DDSCL_NORMAL;
-	}
-	result = IDirectDraw2_SetCooperativeLevel(ddraw2,SDL_Window,sharemode);
-	if ( result != DD_OK ) {
-		SetDDerror("DirectDraw2::SetCooperativeLevel", result);
-		return(NULL);
-	}
+    /* Set DirectDraw sharing mode.. exclusive when fullscreen */
+    if ((flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) {
+        sharemode = DDSCL_FULLSCREEN | DDSCL_EXCLUSIVE | DDSCL_ALLOWREBOOT;
+    } else {
+        sharemode = DDSCL_NORMAL;
+    }
+    result = IDirectDraw2_SetCooperativeLevel(ddraw2, SDL_Window, sharemode);
+    if (result != DD_OK) {
+        SetDDerror("DirectDraw2::SetCooperativeLevel", result);
+        return (NULL);
+    }
 
-	/* Set the display mode, if we are in fullscreen mode */
-	if ( (flags & SDL_FULLSCREEN) == SDL_FULLSCREEN ) {
-		RECT bounds;
-		struct DX5EnumRect *rect;
-		int maxRefreshRate;
+    /* Set the display mode, if we are in fullscreen mode */
+    if ((flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) {
+        RECT bounds;
+        struct DX5EnumRect *rect;
+        int maxRefreshRate;
 
-		/* Cover up desktop during mode change */
-		bounds.left = 0;
-		bounds.top = 0;
-		bounds.right = GetSystemMetrics(SM_CXSCREEN);
-		bounds.bottom = GetSystemMetrics(SM_CYSCREEN);
-		AdjustWindowRectEx(&bounds, GetWindowLong(SDL_Window, GWL_STYLE), (GetMenu(SDL_Window) != NULL), 0);
-		SetWindowPos(SDL_Window, HWND_TOPMOST,
-			bounds.left, bounds.top, 
-			bounds.right - bounds.left,
-			bounds.bottom - bounds.top, SWP_NOCOPYBITS);
-		ShowWindow(SDL_Window, SW_SHOW);
-		while ( GetForegroundWindow() != SDL_Window ) {
-			SetForegroundWindow(SDL_Window);
-			SDL_Delay(100);
-		}
+        /* Cover up desktop during mode change */
+        bounds.left = 0;
+        bounds.top = 0;
+        bounds.right = GetSystemMetrics(SM_CXSCREEN);
+        bounds.bottom = GetSystemMetrics(SM_CYSCREEN);
+        AdjustWindowRectEx(&bounds, GetWindowLong(SDL_Window, GWL_STYLE),
+                           (GetMenu(SDL_Window) != NULL), 0);
+        SetWindowPos(SDL_Window, HWND_TOPMOST, bounds.left, bounds.top,
+                     bounds.right - bounds.left, bounds.bottom - bounds.top,
+                     SWP_NOCOPYBITS);
+        ShowWindow(SDL_Window, SW_SHOW);
+        while (GetForegroundWindow() != SDL_Window) {
+            SetForegroundWindow(SDL_Window);
+            SDL_Delay(100);
+        }
 
-		/* find maximum monitor refresh rate for this resolution */
-		/* Dmitry Yakimov ftech@tula.net */
-		maxRefreshRate = 0; /* system default */
-		for ( rect = enumlists[bpp / 8 - 1]; rect; rect = rect->next ) {
-			if ( (width == rect->r.w) && (height == rect->r.h) ) {
-				maxRefreshRate = rect->refreshRate;
-				break;
-			}
-		}
+        /* find maximum monitor refresh rate for this resolution */
+        /* Dmitry Yakimov ftech@tula.net */
+        maxRefreshRate = 0;     /* system default */
+        for (rect = enumlists[bpp / 8 - 1]; rect; rect = rect->next) {
+            if ((width == rect->r.w) && (height == rect->r.h)) {
+                maxRefreshRate = rect->refreshRate;
+                break;
+            }
+        }
 #ifdef DDRAW_DEBUG
- fprintf(stderr, "refresh rate = %d Hz\n", maxRefreshRate);
+        fprintf(stderr, "refresh rate = %d Hz\n", maxRefreshRate);
 #endif
 
-		result = IDirectDraw2_SetDisplayMode(ddraw2, width, height, bpp, maxRefreshRate, 0);
-		if ( result != DD_OK ) {
-			result = IDirectDraw2_SetDisplayMode(ddraw2, width, height, bpp, 0, 0);
-			if ( result != DD_OK ) {
-				/* We couldn't set fullscreen mode, try window */
-				return(DX5_SetVideoMode(this, current, width, height, bpp, flags & ~SDL_FULLSCREEN)); 
-			}
-		}
-		DX5_DInputReset(this, 1);
-	} else {
-		DX5_DInputReset(this, 0);
-	}
-	DX5_UpdateVideoInfo(this);
+        result =
+            IDirectDraw2_SetDisplayMode(ddraw2, width, height, bpp,
+                                        maxRefreshRate, 0);
+        if (result != DD_OK) {
+            result =
+                IDirectDraw2_SetDisplayMode(ddraw2, width, height, bpp, 0, 0);
+            if (result != DD_OK) {
+                /* We couldn't set fullscreen mode, try window */
+                return (DX5_SetVideoMode
+                        (this, current, width, height, bpp,
+                         flags & ~SDL_FULLSCREEN));
+            }
+        }
+        DX5_DInputReset(this, 1);
+    } else {
+        DX5_DInputReset(this, 0);
+    }
+    DX5_UpdateVideoInfo(this);
 
-	/* Create a primary DirectDraw surface */
-	SDL_memset(&ddsd, 0, sizeof(ddsd));
-	ddsd.dwSize = sizeof(ddsd);
-	ddsd.dwFlags = DDSD_CAPS;
-	ddsd.ddsCaps.dwCaps = (DDSCAPS_PRIMARYSURFACE|DDSCAPS_VIDEOMEMORY);
-	if ( (flags & SDL_FULLSCREEN) != SDL_FULLSCREEN ) {
-		/* There's no windowed double-buffering */
-		flags &= ~SDL_DOUBLEBUF;
-	}
-	if ( (flags & SDL_DOUBLEBUF) == SDL_DOUBLEBUF ) {
-		ddsd.dwFlags |= DDSD_BACKBUFFERCOUNT;
-		ddsd.ddsCaps.dwCaps |= (DDSCAPS_COMPLEX|DDSCAPS_FLIP);
-		ddsd.dwBackBufferCount = 1;
-	}
-	result = IDirectDraw2_CreateSurface(ddraw2, &ddsd, &dd_surface1, NULL); 
-	if ( (result != DD_OK) && ((flags & SDL_DOUBLEBUF) == SDL_DOUBLEBUF) ) {
-		ddsd.dwFlags &= ~DDSD_BACKBUFFERCOUNT;
-		ddsd.ddsCaps.dwCaps &= ~(DDSCAPS_COMPLEX|DDSCAPS_FLIP);
-		ddsd.dwBackBufferCount = 0;
-		result = IDirectDraw2_CreateSurface(ddraw2,
-						&ddsd, &dd_surface1, NULL); 
-	}
-	if ( result != DD_OK ) {
-		SetDDerror("DirectDraw2::CreateSurface(PRIMARY)", result);
-		return(NULL);
-	}
-	result = IDirectDrawSurface_QueryInterface(dd_surface1,
-			&IID_IDirectDrawSurface3, (LPVOID *)&SDL_primary);
-	if ( result != DD_OK ) {
-		SetDDerror("DirectDrawSurface::QueryInterface", result);
-		return(NULL);
-	}
-	IDirectDrawSurface_Release(dd_surface1);
+    /* Create a primary DirectDraw surface */
+    SDL_memset(&ddsd, 0, sizeof(ddsd));
+    ddsd.dwSize = sizeof(ddsd);
+    ddsd.dwFlags = DDSD_CAPS;
+    ddsd.ddsCaps.dwCaps = (DDSCAPS_PRIMARYSURFACE | DDSCAPS_VIDEOMEMORY);
+    if ((flags & SDL_FULLSCREEN) != SDL_FULLSCREEN) {
+        /* There's no windowed double-buffering */
+        flags &= ~SDL_DOUBLEBUF;
+    }
+    if ((flags & SDL_DOUBLEBUF) == SDL_DOUBLEBUF) {
+        ddsd.dwFlags |= DDSD_BACKBUFFERCOUNT;
+        ddsd.ddsCaps.dwCaps |= (DDSCAPS_COMPLEX | DDSCAPS_FLIP);
+        ddsd.dwBackBufferCount = 1;
+    }
+    result = IDirectDraw2_CreateSurface(ddraw2, &ddsd, &dd_surface1, NULL);
+    if ((result != DD_OK) && ((flags & SDL_DOUBLEBUF) == SDL_DOUBLEBUF)) {
+        ddsd.dwFlags &= ~DDSD_BACKBUFFERCOUNT;
+        ddsd.ddsCaps.dwCaps &= ~(DDSCAPS_COMPLEX | DDSCAPS_FLIP);
+        ddsd.dwBackBufferCount = 0;
+        result = IDirectDraw2_CreateSurface(ddraw2,
+                                            &ddsd, &dd_surface1, NULL);
+    }
+    if (result != DD_OK) {
+        SetDDerror("DirectDraw2::CreateSurface(PRIMARY)", result);
+        return (NULL);
+    }
+    result = IDirectDrawSurface_QueryInterface(dd_surface1,
+                                               &IID_IDirectDrawSurface3,
+                                               (LPVOID *) & SDL_primary);
+    if (result != DD_OK) {
+        SetDDerror("DirectDrawSurface::QueryInterface", result);
+        return (NULL);
+    }
+    IDirectDrawSurface_Release(dd_surface1);
 
-	/* Get the format of the primary DirectDraw surface */
-	SDL_memset(&ddsd, 0, sizeof(ddsd));
-	ddsd.dwSize = sizeof(ddsd);
-	ddsd.dwFlags = DDSD_PIXELFORMAT|DDSD_CAPS;
-	result = IDirectDrawSurface3_GetSurfaceDesc(SDL_primary, &ddsd);
-	if ( result != DD_OK ) {
-		SetDDerror("DirectDrawSurface::GetSurfaceDesc", result);
-		return(NULL);
-	}
-	if ( ! (ddsd.ddpfPixelFormat.dwFlags&DDPF_RGB) ) {
-		SDL_SetError("Primary DDRAW surface is not RGB format");
-		return(NULL);
-	}
-
-	/* Free old palette and create a new one if we're in 8-bit mode */
-	if ( SDL_palette != NULL ) {
-		IDirectDrawPalette_Release(SDL_palette);
-		SDL_palette = NULL;
-	}
-#if defined(NONAMELESSUNION)
-	if ( ddsd.ddpfPixelFormat.u1.dwRGBBitCount == 8 ) {
-#else
-	if ( ddsd.ddpfPixelFormat.dwRGBBitCount == 8 ) {
-#endif
-		int i;
+    /* Get the format of the primary DirectDraw surface */
+    SDL_memset(&ddsd, 0, sizeof(ddsd));
+    ddsd.dwSize = sizeof(ddsd);
+    ddsd.dwFlags = DDSD_PIXELFORMAT | DDSD_CAPS;
+    result = IDirectDrawSurface3_GetSurfaceDesc(SDL_primary, &ddsd);
+    if (result != DD_OK) {
+        SetDDerror("DirectDrawSurface::GetSurfaceDesc", result);
+        return (NULL);
+    }
+    if (!(ddsd.ddpfPixelFormat.dwFlags & DDPF_RGB)) {
+        SDL_SetError("Primary DDRAW surface is not RGB format");
+        return (NULL);
+    }
 
-		if ( (flags & SDL_FULLSCREEN) == SDL_FULLSCREEN ) {
-			/* We have access to the entire palette */
-			for ( i=0; i<256; ++i ) {
-				SDL_colors[i].peFlags =
-						(PC_NOCOLLAPSE|PC_RESERVED);
-				SDL_colors[i].peRed = 0;
-				SDL_colors[i].peGreen = 0;
-				SDL_colors[i].peBlue = 0;
-			}
-		} else {
-			/* First 10 colors are reserved by Windows */
-			for ( i=0; i<10; ++i ) {
-				SDL_colors[i].peFlags = PC_EXPLICIT;
-				SDL_colors[i].peRed = i;
-				SDL_colors[i].peGreen = 0;
-				SDL_colors[i].peBlue = 0;
-			}
-			for ( i=10; i<(10+236); ++i ) {
-				SDL_colors[i].peFlags = PC_NOCOLLAPSE;
-				SDL_colors[i].peRed = 0;
-				SDL_colors[i].peGreen = 0;
-				SDL_colors[i].peBlue = 0;
-			}
-			/* Last 10 colors are reserved by Windows */
-			for ( i=246; i<256; ++i ) {
-				SDL_colors[i].peFlags = PC_EXPLICIT;
-				SDL_colors[i].peRed = i;
-				SDL_colors[i].peGreen = 0;
-				SDL_colors[i].peBlue = 0;
-			}
-		}
-		result = IDirectDraw2_CreatePalette(ddraw2,
-		     			(DDPCAPS_8BIT|DDPCAPS_ALLOW256),
-						SDL_colors, &SDL_palette, NULL);
-		if ( result != DD_OK ) {
-			SetDDerror("DirectDraw2::CreatePalette", result);
-			return(NULL);
-		}
-		result = IDirectDrawSurface3_SetPalette(SDL_primary,
-								SDL_palette);
-		if ( result != DD_OK ) {
-			SetDDerror("DirectDrawSurface3::SetPalette", result);
-			return(NULL);
-		}
-	}
+    /* Free old palette and create a new one if we're in 8-bit mode */
+    if (SDL_palette != NULL) {
+        IDirectDrawPalette_Release(SDL_palette);
+        SDL_palette = NULL;
+    }
+#if defined(NONAMELESSUNION)
+    if (ddsd.ddpfPixelFormat.u1.dwRGBBitCount == 8) {
+#else
+    if (ddsd.ddpfPixelFormat.dwRGBBitCount == 8) {
+#endif
+        int i;
 
-	/* Create our video surface using the same pixel format */
-	video = current;
-	if ( (width != video->w) || (height != video->h)
-			|| (video->format->BitsPerPixel != 
-#if defined(NONAMELESSUNION)
-				ddsd.ddpfPixelFormat.u1.dwRGBBitCount) ) {
-#else
-				ddsd.ddpfPixelFormat.dwRGBBitCount) ) {
-#endif
-		SDL_FreeSurface(video);
-		video = SDL_CreateRGBSurface(SDL_SWSURFACE, 0, 0,
+        if ((flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) {
+            /* We have access to the entire palette */
+            for (i = 0; i < 256; ++i) {
+                SDL_colors[i].peFlags = (PC_NOCOLLAPSE | PC_RESERVED);
+                SDL_colors[i].peRed = 0;
+                SDL_colors[i].peGreen = 0;
+                SDL_colors[i].peBlue = 0;
+            }
+        } else {
+            /* First 10 colors are reserved by Windows */
+            for (i = 0; i < 10; ++i) {
+                SDL_colors[i].peFlags = PC_EXPLICIT;
+                SDL_colors[i].peRed = i;
+                SDL_colors[i].peGreen = 0;
+                SDL_colors[i].peBlue = 0;
+            }
+            for (i = 10; i < (10 + 236); ++i) {
+                SDL_colors[i].peFlags = PC_NOCOLLAPSE;
+                SDL_colors[i].peRed = 0;
+                SDL_colors[i].peGreen = 0;
+                SDL_colors[i].peBlue = 0;
+            }
+            /* Last 10 colors are reserved by Windows */
+            for (i = 246; i < 256; ++i) {
+                SDL_colors[i].peFlags = PC_EXPLICIT;
+                SDL_colors[i].peRed = i;
+                SDL_colors[i].peGreen = 0;
+                SDL_colors[i].peBlue = 0;
+            }
+        }
+        result = IDirectDraw2_CreatePalette(ddraw2,
+                                            (DDPCAPS_8BIT |
+                                             DDPCAPS_ALLOW256), SDL_colors,
+                                            &SDL_palette, NULL);
+        if (result != DD_OK) {
+            SetDDerror("DirectDraw2::CreatePalette", result);
+            return (NULL);
+        }
+        result = IDirectDrawSurface3_SetPalette(SDL_primary, SDL_palette);
+        if (result != DD_OK) {
+            SetDDerror("DirectDrawSurface3::SetPalette", result);
+            return (NULL);
+        }
+    }
+
+    /* Create our video surface using the same pixel format */
+    video = current;
+    if ((width != video->w) || (height != video->h)
+        || (video->format->BitsPerPixel !=
 #if defined(NONAMELESSUNION)
-				ddsd.ddpfPixelFormat.u1.dwRGBBitCount,
-					ddsd.ddpfPixelFormat.u2.dwRBitMask,
-					ddsd.ddpfPixelFormat.u3.dwGBitMask,
-					ddsd.ddpfPixelFormat.u4.dwBBitMask,
+            ddsd.ddpfPixelFormat.u1.dwRGBBitCount)) {
 #else
-				ddsd.ddpfPixelFormat.dwRGBBitCount,
-					ddsd.ddpfPixelFormat.dwRBitMask,
-					ddsd.ddpfPixelFormat.dwGBitMask,
-					ddsd.ddpfPixelFormat.dwBBitMask,
+            ddsd.ddpfPixelFormat.dwRGBBitCount)) {
 #endif
-								0);
-		if ( video == NULL ) {
-			SDL_OutOfMemory();
-			return(NULL);
-		}
-		video->w = width;
-		video->h = height;
-		video->pitch = 0;
-	}
-	video->flags = 0;	/* Clear flags */
+        SDL_FreeSurface(video);
+        video = SDL_CreateRGBSurface(SDL_SWSURFACE, 0, 0,
+#if defined(NONAMELESSUNION)
+                                     ddsd.ddpfPixelFormat.u1.dwRGBBitCount,
+                                     ddsd.ddpfPixelFormat.u2.dwRBitMask,
+                                     ddsd.ddpfPixelFormat.u3.dwGBitMask,
+                                     ddsd.ddpfPixelFormat.u4.dwBBitMask,
+#else
+                                     ddsd.ddpfPixelFormat.dwRGBBitCount,
+                                     ddsd.ddpfPixelFormat.dwRBitMask,
+                                     ddsd.ddpfPixelFormat.dwGBitMask,
+                                     ddsd.ddpfPixelFormat.dwBBitMask,
+#endif
+                                     0);
+        if (video == NULL) {
+            SDL_OutOfMemory();
+            return (NULL);
+        }
+        video->w = width;
+        video->h = height;
+        video->pitch = 0;
+    }
+    video->flags = 0;           /* Clear flags */
 
-	/* If not fullscreen, locking is possible, but it doesn't do what 
-	   the caller really expects -- if the locked surface is written to,
-	   the appropriate portion of the entire screen is modified, not 
-	   the application window, as we would like.
-	   Note that it is still possible to write directly to display
-	   memory, but the application must respect the clip list of
-	   the surface.  There might be some odd timing interactions
-	   involving clip list updates and background refreshing as
-	   Windows moves other windows across our window.
-	   We currently don't support this, even though it might be a
-	   good idea since BeOS has an implementation of BDirectWindow
-	   that does the same thing.  This would be most useful for
-	   applications that do complete screen updates every frame.
-	    -- Fixme?
-	*/
-	if ( (flags & SDL_FULLSCREEN) != SDL_FULLSCREEN ) {
-		/* Necessary if we're going from fullscreen to window */
-		if ( video->pixels == NULL ) {
-			video->pitch = (width*video->format->BytesPerPixel);
-			/* Pitch needs to be QWORD (8-byte) aligned */
-			video->pitch = (video->pitch + 7) & ~7;
-			video->pixels = (void *)SDL_malloc(video->h*video->pitch);
-			if ( video->pixels == NULL ) {
-				if ( video != current ) {
-					SDL_FreeSurface(video);
-				}
-				SDL_OutOfMemory();
-				return(NULL);
-			}
-		}
-		dd_surface3 = NULL;
-#if 0 /* FIXME: enable this when SDL consistently reports lost surfaces */
-		if ( (flags & SDL_HWSURFACE) == SDL_HWSURFACE ) {
-			video->flags |= SDL_HWSURFACE;
-		} else {
-			video->flags |= SDL_SWSURFACE;
-		}
+    /* If not fullscreen, locking is possible, but it doesn't do what 
+       the caller really expects -- if the locked surface is written to,
+       the appropriate portion of the entire screen is modified, not 
+       the application window, as we would like.
+       Note that it is still possible to write directly to display
+       memory, but the application must respect the clip list of
+       the surface.  There might be some odd timing interactions
+       involving clip list updates and background refreshing as
+       Windows moves other windows across our window.
+       We currently don't support this, even though it might be a
+       good idea since BeOS has an implementation of BDirectWindow
+       that does the same thing.  This would be most useful for
+       applications that do complete screen updates every frame.
+       -- Fixme?
+     */
+    if ((flags & SDL_FULLSCREEN) != SDL_FULLSCREEN) {
+        /* Necessary if we're going from fullscreen to window */
+        if (video->pixels == NULL) {
+            video->pitch = (width * video->format->BytesPerPixel);
+            /* Pitch needs to be QWORD (8-byte) aligned */
+            video->pitch = (video->pitch + 7) & ~7;
+            video->pixels = (void *) SDL_malloc(video->h * video->pitch);
+            if (video->pixels == NULL) {
+                if (video != current) {
+                    SDL_FreeSurface(video);
+                }
+                SDL_OutOfMemory();
+                return (NULL);
+            }
+        }
+        dd_surface3 = NULL;
+#if 0                           /* FIXME: enable this when SDL consistently reports lost surfaces */
+        if ((flags & SDL_HWSURFACE) == SDL_HWSURFACE) {
+            video->flags |= SDL_HWSURFACE;
+        } else {
+            video->flags |= SDL_SWSURFACE;
+        }
 #else
-		video->flags |= SDL_SWSURFACE;
+        video->flags |= SDL_SWSURFACE;
 #endif
-		if ( (flags & SDL_RESIZABLE) && !(flags & SDL_NOFRAME) ) {
-			video->flags |= SDL_RESIZABLE;
-		}
-		if ( flags & SDL_NOFRAME ) {
-			video->flags |= SDL_NOFRAME;
-		}
-	} else {
-		/* Necessary if we're going from window to fullscreen */
-		if ( video->pixels != NULL ) {
-			SDL_free(video->pixels);
-			video->pixels = NULL;
-		}
-		dd_surface3 = SDL_primary;
-		video->flags |= SDL_HWSURFACE;
-	}
+        if ((flags & SDL_RESIZABLE) && !(flags & SDL_NOFRAME)) {
+            video->flags |= SDL_RESIZABLE;
+        }
+        if (flags & SDL_NOFRAME) {
+            video->flags |= SDL_NOFRAME;
+        }
+    } else {
+        /* Necessary if we're going from window to fullscreen */
+        if (video->pixels != NULL) {
+            SDL_free(video->pixels);
+            video->pixels = NULL;
+        }
+        dd_surface3 = SDL_primary;
+        video->flags |= SDL_HWSURFACE;
+    }
 
-	/* See if the primary surface has double-buffering enabled */
-	if ( (ddsd.ddsCaps.dwCaps & DDSCAPS_FLIP) == DDSCAPS_FLIP ) {
-		video->flags |= SDL_DOUBLEBUF;
-	}
+    /* See if the primary surface has double-buffering enabled */
+    if ((ddsd.ddsCaps.dwCaps & DDSCAPS_FLIP) == DDSCAPS_FLIP) {
+        video->flags |= SDL_DOUBLEBUF;
+    }
 
-	/* Allocate the SDL surface associated with the primary surface */
-	if ( DX5_AllocDDSurface(this, video, dd_surface3,
-	                        video->flags&SDL_HWSURFACE) < 0 ) {
-		if ( video != current ) {
-			SDL_FreeSurface(video);
-		}
-		return(NULL);
-	}
+    /* Allocate the SDL surface associated with the primary surface */
+    if (DX5_AllocDDSurface(this, video, dd_surface3,
+                           video->flags & SDL_HWSURFACE) < 0) {
+        if (video != current) {
+            SDL_FreeSurface(video);
+        }
+        return (NULL);
+    }
 
-	/* Use the appropriate blitting function */
-	if ( (flags & SDL_FULLSCREEN) == SDL_FULLSCREEN ) {
-		video->flags |= SDL_FULLSCREEN;
-		if ( video->format->palette != NULL ) {
-			video->flags |= SDL_HWPALETTE;
-		}
-		this->UpdateRects = DX5_DirectUpdate;
-	} else {
-		this->UpdateRects = DX5_WindowUpdate;
-	}
+    /* Use the appropriate blitting function */
+    if ((flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) {
+        video->flags |= SDL_FULLSCREEN;
+        if (video->format->palette != NULL) {
+            video->flags |= SDL_HWPALETTE;
+        }
+        this->UpdateRects = DX5_DirectUpdate;
+    } else {
+        this->UpdateRects = DX5_WindowUpdate;
+    }
 
-	/* Make our window the proper size, set the clipper, then show it */
-	if ( (flags & SDL_FULLSCREEN) != SDL_FULLSCREEN ) {
-		/* Create and set a clipper on our primary surface */
-		if ( SDL_clipper == NULL ) {
-			result = IDirectDraw2_CreateClipper(ddraw2,
-							0, &SDL_clipper, NULL);
-			if ( result != DD_OK ) {
-				if ( video != current ) {
-					SDL_FreeSurface(video);
-				}
-				SetDDerror("DirectDraw2::CreateClipper",result);
-				return(NULL);
-			}
-		}
-		result = IDirectDrawClipper_SetHWnd(SDL_clipper, 0, SDL_Window);
-		if ( result != DD_OK ) {
-			if ( video != current ) {
-				SDL_FreeSurface(video);
-			}
-			SetDDerror("DirectDrawClipper::SetHWnd", result);
-			return(NULL);
-		}
-		result = IDirectDrawSurface3_SetClipper(SDL_primary,
-								SDL_clipper);
-		if ( result != DD_OK ) {
-			if ( video != current ) {
-				SDL_FreeSurface(video);
-			}
-			SetDDerror("DirectDrawSurface3::SetClipper", result);
-			return(NULL);
-		}
+    /* Make our window the proper size, set the clipper, then show it */
+    if ((flags & SDL_FULLSCREEN) != SDL_FULLSCREEN) {
+        /* Create and set a clipper on our primary surface */
+        if (SDL_clipper == NULL) {
+            result = IDirectDraw2_CreateClipper(ddraw2,
+                                                0, &SDL_clipper, NULL);
+            if (result != DD_OK) {
+                if (video != current) {
+                    SDL_FreeSurface(video);
+                }
+                SetDDerror("DirectDraw2::CreateClipper", result);
+                return (NULL);
+            }
+        }
+        result = IDirectDrawClipper_SetHWnd(SDL_clipper, 0, SDL_Window);
+        if (result != DD_OK) {
+            if (video != current) {
+                SDL_FreeSurface(video);
+            }
+            SetDDerror("DirectDrawClipper::SetHWnd", result);
+            return (NULL);
+        }
+        result = IDirectDrawSurface3_SetClipper(SDL_primary, SDL_clipper);
+        if (result != DD_OK) {
+            if (video != current) {
+                SDL_FreeSurface(video);
+            }
+            SetDDerror("DirectDrawSurface3::SetClipper", result);
+            return (NULL);
+        }
 
-		/* Resize the window (copied from SDL WinDIB driver) */
-		if ( !SDL_windowid && !IsZoomed(SDL_Window) ) {
-			RECT bounds;
-			int  x, y;
-			UINT swp_flags;
-			const char *window = NULL;
-			const char *center = NULL;
+        /* Resize the window (copied from SDL WinDIB driver) */
+        if (!SDL_windowid && !IsZoomed(SDL_Window)) {
+            RECT bounds;
+            int x, y;
+            UINT swp_flags;
+            const char *window = NULL;
+            const char *center = NULL;
 
-			if ( !SDL_windowX && !SDL_windowY ) {
-				window = SDL_getenv("SDL_VIDEO_WINDOW_POS");
-				center = SDL_getenv("SDL_VIDEO_CENTERED");
-				if ( window ) {
-					if ( SDL_sscanf(window, "%d,%d", &x, &y) == 2 ) {
-						SDL_windowX = x;
-						SDL_windowY = y;
-					}
-					if ( SDL_strcmp(window, "center") == 0 ) {
-						center = window;
-					}
-				}
-			}
-			swp_flags = SWP_NOCOPYBITS;
+            if (!SDL_windowX && !SDL_windowY) {
+                window = SDL_getenv("SDL_VIDEO_WINDOW_POS");
+                center = SDL_getenv("SDL_VIDEO_CENTERED");
+                if (window) {
+                    if (SDL_sscanf(window, "%d,%d", &x, &y) == 2) {
+                        SDL_windowX = x;
+                        SDL_windowY = y;
+                    }
+                    if (SDL_strcmp(window, "center") == 0) {
+                        center = window;
+                    }
+                }
+            }
+            swp_flags = SWP_NOCOPYBITS;
 
-			bounds.left = SDL_windowX;
-			bounds.top = SDL_windowY;
-			bounds.right = SDL_windowX+video->w;
-			bounds.bottom = SDL_windowY+video->h;
-			AdjustWindowRectEx(&bounds, GetWindowLong(SDL_Window, GWL_STYLE), (GetMenu(SDL_Window) != NULL), 0);
-			width = bounds.right-bounds.left;
-			height = bounds.bottom-bounds.top;
-			if ( center ) {
-				x = (GetSystemMetrics(SM_CXSCREEN)-width)/2;
-				y = (GetSystemMetrics(SM_CYSCREEN)-height)/2;
-			} else if ( SDL_windowX || SDL_windowY || window ) {
-				x = bounds.left;
-				y = bounds.top;
-			} else {
-				x = y = -1;
-				swp_flags |= SWP_NOMOVE;
-			}
-			SetWindowPos(SDL_Window, HWND_NOTOPMOST, x, y, width, height, swp_flags);
-			SDL_windowX = SDL_bounds.left;
-			SDL_windowY = SDL_bounds.top;
-		}
+            bounds.left = SDL_windowX;
+            bounds.top = SDL_windowY;
+            bounds.right = SDL_windowX + video->w;
+            bounds.bottom = SDL_windowY + video->h;
+            AdjustWindowRectEx(&bounds, GetWindowLong(SDL_Window, GWL_STYLE),
+                               (GetMenu(SDL_Window) != NULL), 0);
+            width = bounds.right - bounds.left;
+            height = bounds.bottom - bounds.top;
+            if (center) {
+                x = (GetSystemMetrics(SM_CXSCREEN) - width) / 2;
+                y = (GetSystemMetrics(SM_CYSCREEN) - height) / 2;
+            } else if (SDL_windowX || SDL_windowY || window) {
+                x = bounds.left;
+                y = bounds.top;
+            } else {
+                x = y = -1;
+                swp_flags |= SWP_NOMOVE;
+            }
+            SetWindowPos(SDL_Window, HWND_NOTOPMOST, x, y, width, height,
+                         swp_flags);
+            SDL_windowX = SDL_bounds.left;
+            SDL_windowY = SDL_bounds.top;
+        }
 
-	}
-	ShowWindow(SDL_Window, SW_SHOW);
-	SetForegroundWindow(SDL_Window);
-	SDL_resizing = 0;
+    }
+    ShowWindow(SDL_Window, SW_SHOW);
+    SetForegroundWindow(SDL_Window);
+    SDL_resizing = 0;
 
-	/* JC 14 Mar 2006
-		Flush the message loop or this can cause big problems later
-		Especially if the user decides to use dialog boxes or assert()!
-	*/
-	WIN_FlushMessageQueue();
+    /* JC 14 Mar 2006
+       Flush the message loop or this can cause big problems later
+       Especially if the user decides to use dialog boxes or assert()!
+     */
+    WIN_FlushMessageQueue();
 
-	/* We're live! */
-	return(video);
+    /* We're live! */
+    return (video);
 }
 
-struct private_hwdata {
-	LPDIRECTDRAWSURFACE3 dd_surface;
-	LPDIRECTDRAWSURFACE3 dd_writebuf;
+struct private_hwdata
+{
+    LPDIRECTDRAWSURFACE3 dd_surface;
+    LPDIRECTDRAWSURFACE3 dd_writebuf;
 };
 
-static int DX5_AllocDDSurface(_THIS, SDL_Surface *surface, 
-				LPDIRECTDRAWSURFACE3 requested, Uint32 flag)
+static int
+DX5_AllocDDSurface(_THIS, SDL_Surface * surface,
+                   LPDIRECTDRAWSURFACE3 requested, Uint32 flag)
 {
-	LPDIRECTDRAWSURFACE  dd_surface1;
-	LPDIRECTDRAWSURFACE3 dd_surface3;
-	DDSURFACEDESC ddsd;
-	HRESULT result;
+    LPDIRECTDRAWSURFACE dd_surface1;
+    LPDIRECTDRAWSURFACE3 dd_surface3;
+    DDSURFACEDESC ddsd;
+    HRESULT result;
 
-	/* Clear the hardware flag, in case we fail */
-	surface->flags &= ~flag;
+    /* Clear the hardware flag, in case we fail */
+    surface->flags &= ~flag;
 
-	/* Allocate the hardware acceleration data */
-	surface->hwdata = (struct private_hwdata *)
-					SDL_malloc(sizeof(*surface->hwdata));
-	if ( surface->hwdata == NULL ) {
-		SDL_OutOfMemory();
-		return(-1);
-	}
-	dd_surface3 = NULL;
+    /* Allocate the hardware acceleration data */
+    surface->hwdata = (struct private_hwdata *)
+        SDL_malloc(sizeof(*surface->hwdata));
+    if (surface->hwdata == NULL) {
+        SDL_OutOfMemory();
+        return (-1);
+    }
+    dd_surface3 = NULL;
 
-	/* Set up the surface description */
-	SDL_memset(&ddsd, 0, sizeof(ddsd));
-	ddsd.dwSize = sizeof(ddsd);
-	ddsd.dwFlags = (DDSD_WIDTH|DDSD_HEIGHT|DDSD_CAPS|
-					DDSD_PITCH|DDSD_PIXELFORMAT);
-	ddsd.dwWidth = surface->w;
-	ddsd.dwHeight= surface->h;
+    /* Set up the surface description */
+    SDL_memset(&ddsd, 0, sizeof(ddsd));
+    ddsd.dwSize = sizeof(ddsd);
+    ddsd.dwFlags = (DDSD_WIDTH | DDSD_HEIGHT | DDSD_CAPS |
+                    DDSD_PITCH | DDSD_PIXELFORMAT);
+    ddsd.dwWidth = surface->w;
+    ddsd.dwHeight = surface->h;
 #if defined(NONAMELESSUNION)
-	ddsd.u1.lPitch = surface->pitch;
+    ddsd.u1.lPitch = surface->pitch;
 #else
-	ddsd.lPitch = surface->pitch;
+    ddsd.lPitch = surface->pitch;
 #endif
-	if ( (flag & SDL_HWSURFACE) == SDL_HWSURFACE ) {
-		ddsd.ddsCaps.dwCaps =
-				(DDSCAPS_OFFSCREENPLAIN|DDSCAPS_VIDEOMEMORY);
-	} else {
-		ddsd.ddsCaps.dwCaps =
-				(DDSCAPS_OFFSCREENPLAIN|DDSCAPS_SYSTEMMEMORY);
-	}
-	ddsd.ddpfPixelFormat.dwSize = sizeof(ddsd.ddpfPixelFormat);
-	ddsd.ddpfPixelFormat.dwFlags = DDPF_RGB;
-	if ( surface->format->palette ) {
-		ddsd.ddpfPixelFormat.dwFlags |= DDPF_PALETTEINDEXED8;
-	}
+    if ((flag & SDL_HWSURFACE) == SDL_HWSURFACE) {
+        ddsd.ddsCaps.dwCaps = (DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY);
+    } else {
+        ddsd.ddsCaps.dwCaps = (DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY);
+    }
+    ddsd.ddpfPixelFormat.dwSize = sizeof(ddsd.ddpfPixelFormat);
+    ddsd.ddpfPixelFormat.dwFlags = DDPF_RGB;
+    if (surface->format->palette) {
+        ddsd.ddpfPixelFormat.dwFlags |= DDPF_PALETTEINDEXED8;
+    }
 #if defined(NONAMELESSUNION)
-	ddsd.ddpfPixelFormat.u1.dwRGBBitCount = surface->format->BitsPerPixel;
-	ddsd.ddpfPixelFormat.u2.dwRBitMask = surface->format->Rmask;
-	ddsd.ddpfPixelFormat.u3.dwGBitMask = surface->format->Gmask;
-	ddsd.ddpfPixelFormat.u4.dwBBitMask = surface->format->Bmask;
+    ddsd.ddpfPixelFormat.u1.dwRGBBitCount = surface->format->BitsPerPixel;
+    ddsd.ddpfPixelFormat.u2.dwRBitMask = surface->format->Rmask;
+    ddsd.ddpfPixelFormat.u3.dwGBitMask = surface->format->Gmask;
+    ddsd.ddpfPixelFormat.u4.dwBBitMask = surface->format->Bmask;
 #else
-	ddsd.ddpfPixelFormat.dwRGBBitCount = surface->format->BitsPerPixel;
-	ddsd.ddpfPixelFormat.dwRBitMask = surface->format->Rmask;
-	ddsd.ddpfPixelFormat.dwGBitMask = surface->format->Gmask;
-	ddsd.ddpfPixelFormat.dwBBitMask = surface->format->Bmask;
+    ddsd.ddpfPixelFormat.dwRGBBitCount = surface->format->BitsPerPixel;
+    ddsd.ddpfPixelFormat.dwRBitMask = surface->format->Rmask;
+    ddsd.ddpfPixelFormat.dwGBitMask = surface->format->Gmask;
+    ddsd.ddpfPixelFormat.dwBBitMask = surface->format->Bmask;
 #endif
 
-	/* Create the DirectDraw video surface */
-	if ( requested != NULL ) {
-		dd_surface3 = requested;
-	} else {
-		result = IDirectDraw2_CreateSurface(ddraw2,
-						&ddsd, &dd_surface1, NULL); 
-		if ( result != DD_OK ) {
-			SetDDerror("DirectDraw2::CreateSurface", result);
-			goto error_end;
-		}
-		result = IDirectDrawSurface_QueryInterface(dd_surface1,
-			&IID_IDirectDrawSurface3, (LPVOID *)&dd_surface3);
-		IDirectDrawSurface_Release(dd_surface1);
-		if ( result != DD_OK ) {
-			SetDDerror("DirectDrawSurface::QueryInterface", result);
-			goto error_end;
-		}
-	}
+    /* Create the DirectDraw video surface */
+    if (requested != NULL) {
+        dd_surface3 = requested;
+    } else {
+        result = IDirectDraw2_CreateSurface(ddraw2,
+                                            &ddsd, &dd_surface1, NULL);
+        if (result != DD_OK) {
+            SetDDerror("DirectDraw2::CreateSurface", result);
+            goto error_end;
+        }
+        result = IDirectDrawSurface_QueryInterface(dd_surface1,
+                                                   &IID_IDirectDrawSurface3,
+                                                   (LPVOID *) & dd_surface3);
+        IDirectDrawSurface_Release(dd_surface1);
+        if (result != DD_OK) {
+            SetDDerror("DirectDrawSurface::QueryInterface", result);
+            goto error_end;
+        }
+    }
 
-	if ( (flag & SDL_HWSURFACE) == SDL_HWSURFACE ) {
-		/* Check to see whether the surface actually ended up
-		   in video memory, and fail if not.  We expect the
-		   surfaces we create here to actually be in hardware!
-		*/
-		result = IDirectDrawSurface3_GetCaps(dd_surface3,&ddsd.ddsCaps);
-		if ( result != DD_OK ) {
-			SetDDerror("DirectDrawSurface3::GetCaps", result);
-			goto error_end;
-		}
-		if ( (ddsd.ddsCaps.dwCaps&DDSCAPS_VIDEOMEMORY) !=
-							DDSCAPS_VIDEOMEMORY ) {
-			SDL_SetError("No room in video memory");
-			goto error_end;
-		}
-	} else {
-		/* Try to hook our surface memory */
-		ddsd.dwFlags = DDSD_LPSURFACE;
-		ddsd.lpSurface = surface->pixels;
-		result = IDirectDrawSurface3_SetSurfaceDesc(dd_surface3,
-								&ddsd, 0);
-		if ( result != DD_OK ) {
-			SetDDerror("DirectDraw2::SetSurfaceDesc", result);
-			goto error_end;
-		}
-	
-	}
+    if ((flag & SDL_HWSURFACE) == SDL_HWSURFACE) {
+        /* Check to see whether the surface actually ended up
+           in video memory, and fail if not.  We expect the
+           surfaces we create here to actually be in hardware!
+         */
+        result = IDirectDrawSurface3_GetCaps(dd_surface3, &ddsd.ddsCaps);
+        if (result != DD_OK) {
+            SetDDerror("DirectDrawSurface3::GetCaps", result);
+            goto error_end;
+        }
+        if ((ddsd.ddsCaps.dwCaps & DDSCAPS_VIDEOMEMORY) !=
+            DDSCAPS_VIDEOMEMORY) {
+            SDL_SetError("No room in video memory");
+            goto error_end;
+        }
+    } else {
+        /* Try to hook our surface memory */
+        ddsd.dwFlags = DDSD_LPSURFACE;
+        ddsd.lpSurface = surface->pixels;
+        result = IDirectDrawSurface3_SetSurfaceDesc(dd_surface3, &ddsd, 0);
+        if (result != DD_OK) {
+            SetDDerror("DirectDraw2::SetSurfaceDesc", result);
+            goto error_end;
+        }
 
-	/* Make sure the surface format was set properly */
-	SDL_memset(&ddsd, 0, sizeof(ddsd));
-	ddsd.dwSize = sizeof(ddsd);
-	result = IDirectDrawSurface3_Lock(dd_surface3, NULL,
-		&ddsd, (DDLOCK_NOSYSLOCK|DDLOCK_WAIT), NULL);
-	if ( result != DD_OK ) {
-		SetDDerror("DirectDrawSurface3::Lock", result);
-		goto error_end;
-	}
-	IDirectDrawSurface3_Unlock(dd_surface3, NULL);
+    }
 
-	if ( (flag & SDL_HWSURFACE) == SDL_SWSURFACE ) {
-		if ( ddsd.lpSurface != surface->pixels ) {
-			SDL_SetError("DDraw didn't use SDL surface memory");
-			goto error_end;
-		}
-		if (
+    /* Make sure the surface format was set properly */
+    SDL_memset(&ddsd, 0, sizeof(ddsd));
+    ddsd.dwSize = sizeof(ddsd);
+    result = IDirectDrawSurface3_Lock(dd_surface3, NULL,
+                                      &ddsd,
+                                      (DDLOCK_NOSYSLOCK | DDLOCK_WAIT), NULL);
+    if (result != DD_OK) {
+        SetDDerror("DirectDrawSurface3::Lock", result);
+        goto error_end;
+    }
+    IDirectDrawSurface3_Unlock(dd_surface3, NULL);
+
+    if ((flag & SDL_HWSURFACE) == SDL_SWSURFACE) {
+        if (ddsd.lpSurface != surface->pixels) {
+            SDL_SetError("DDraw didn't use SDL surface memory");
+            goto error_end;
+        }
+        if (
 #if defined(NONAMELESSUNION)
-			ddsd.u1.lPitch
+               ddsd.u1.lPitch
 #else
-			ddsd.lPitch
+               ddsd.lPitch
 #endif
-				 != (LONG)surface->pitch ) {
-			SDL_SetError("DDraw created surface with wrong pitch");
-			goto error_end;
-		}
-	} else {
+               != (LONG) surface->pitch) {
+            SDL_SetError("DDraw created surface with wrong pitch");
+            goto error_end;
+        }
+    } else {
 #if defined(NONAMELESSUNION)
-		surface->pitch = (Uint16)ddsd.u1.lPitch;
+        surface->pitch = (Uint16) ddsd.u1.lPitch;
 #else
-		surface->pitch = (Uint16)ddsd.lPitch;
+        surface->pitch = (Uint16) ddsd.lPitch;
 #endif
-	}
+    }
 #if defined(NONAMELESSUNION)
-	if ( (ddsd.ddpfPixelFormat.u1.dwRGBBitCount != 
-					surface->format->BitsPerPixel) ||
-	     (ddsd.ddpfPixelFormat.u2.dwRBitMask != surface->format->Rmask) ||
-	     (ddsd.ddpfPixelFormat.u3.dwGBitMask != surface->format->Gmask) ||
-	     (ddsd.ddpfPixelFormat.u4.dwBBitMask != surface->format->Bmask) ){
+    if ((ddsd.ddpfPixelFormat.u1.dwRGBBitCount !=
+         surface->format->BitsPerPixel) ||
+        (ddsd.ddpfPixelFormat.u2.dwRBitMask != surface->format->Rmask) ||
+        (ddsd.ddpfPixelFormat.u3.dwGBitMask != surface->format->Gmask) ||
+        (ddsd.ddpfPixelFormat.u4.dwBBitMask != surface->format->Bmask)) {
 #else
-	if ( (ddsd.ddpfPixelFormat.dwRGBBitCount != 
-					surface->format->BitsPerPixel) ||
-	     (ddsd.ddpfPixelFormat.dwRBitMask != surface->format->Rmask) ||
-	     (ddsd.ddpfPixelFormat.dwGBitMask != surface->format->Gmask) ||
-	     (ddsd.ddpfPixelFormat.dwBBitMask != surface->format->Bmask) ){
+    if ((ddsd.ddpfPixelFormat.dwRGBBitCount !=
+         surface->format->BitsPerPixel) ||
+        (ddsd.ddpfPixelFormat.dwRBitMask != surface->format->Rmask) ||
+        (ddsd.ddpfPixelFormat.dwGBitMask != surface->format->Gmask) ||
+        (ddsd.ddpfPixelFormat.dwBBitMask != surface->format->Bmask)) {
 #endif
-		SDL_SetError("DDraw didn't use SDL surface description");
-		goto error_end;
-	}
-	if ( (ddsd.dwWidth != (DWORD)surface->w) ||
-		(ddsd.dwHeight != (DWORD)surface->h) ) {
-		SDL_SetError("DDraw created surface with wrong size");
-		goto error_end;
-	}
+        SDL_SetError("DDraw didn't use SDL surface description");
+        goto error_end;
+    }
+    if ((ddsd.dwWidth != (DWORD) surface->w) ||
+        (ddsd.dwHeight != (DWORD) surface->h)) {
+        SDL_SetError("DDraw created surface with wrong size");
+        goto error_end;
+    }
 
-	/* Set the surface private data */
-	surface->flags |= flag;
-	surface->hwdata->dd_surface = dd_surface3;
-	if ( (surface->flags & SDL_DOUBLEBUF) == SDL_DOUBLEBUF ) {
-		LPDIRECTDRAWSURFACE3 dd_writebuf;
+    /* Set the surface private data */
+    surface->flags |= flag;
+    surface->hwdata->dd_surface = dd_surface3;
+    if ((surface->flags & SDL_DOUBLEBUF) == SDL_DOUBLEBUF) {
+        LPDIRECTDRAWSURFACE3 dd_writebuf;
 
-		ddsd.ddsCaps.dwCaps = DDSCAPS_BACKBUFFER;
-		result = IDirectDrawSurface3_GetAttachedSurface(dd_surface3,
-						&ddsd.ddsCaps, &dd_writebuf);
-		if ( result != DD_OK ) {
-			SetDDerror("DirectDrawSurface3::GetAttachedSurface",
-								result);
-		} else {
-			dd_surface3 = dd_writebuf;
-		}
-	}
-	surface->hwdata->dd_writebuf = dd_surface3;
+        ddsd.ddsCaps.dwCaps = DDSCAPS_BACKBUFFER;
+        result = IDirectDrawSurface3_GetAttachedSurface(dd_surface3,
+                                                        &ddsd.ddsCaps,
+                                                        &dd_writebuf);
+        if (result != DD_OK) {
+            SetDDerror("DirectDrawSurface3::GetAttachedSurface", result);
+        } else {
+            dd_surface3 = dd_writebuf;
+        }
+    }
+    surface->hwdata->dd_writebuf = dd_surface3;
 
-	/* We're ready to go! */
-	return(0);
+    /* We're ready to go! */
+    return (0);
 
-	/* Okay, so goto's are cheesy, but there are so many possible
-	   errors in this function, and the cleanup is the same in 
-	   every single case.  Is there a better way, other than deeply
-	   nesting the code?
-	*/
-error_end:
-	if ( (dd_surface3 != NULL) && (dd_surface3 != requested) ) {
-		IDirectDrawSurface_Release(dd_surface3);
-	}
-	SDL_free(surface->hwdata);
-	surface->hwdata = NULL;
-	return(-1);
+    /* Okay, so goto's are cheesy, but there are so many possible
+       errors in this function, and the cleanup is the same in 
+       every single case.  Is there a better way, other than deeply
+       nesting the code?
+     */
+  error_end:
+    if ((dd_surface3 != NULL) && (dd_surface3 != requested)) {
+        IDirectDrawSurface_Release(dd_surface3);
+    }
+    SDL_free(surface->hwdata);
+    surface->hwdata = NULL;
+    return (-1);
 }
 
-static int DX5_AllocHWSurface(_THIS, SDL_Surface *surface)
+static int
+DX5_AllocHWSurface(_THIS, SDL_Surface * surface)
 {
-	/* DDraw limitation -- you need to set cooperative level first */
-	if ( SDL_primary == NULL ) {
-		SDL_SetError("You must set a non-GL video mode first");
-		return(-1);
-	}
-	return(DX5_AllocDDSurface(this, surface, NULL, SDL_HWSURFACE));
+    /* DDraw limitation -- you need to set cooperative level first */
+    if (SDL_primary == NULL) {
+        SDL_SetError("You must set a non-GL video mode first");
+        return (-1);
+    }
+    return (DX5_AllocDDSurface(this, surface, NULL, SDL_HWSURFACE));
 }
 
 #ifdef DDRAW_DEBUG
-void PrintSurface(char *title, LPDIRECTDRAWSURFACE3 surface, Uint32 flags)
+void
+PrintSurface(char *title, LPDIRECTDRAWSURFACE3 surface, Uint32 flags)
 {
-	DDSURFACEDESC ddsd;
+    DDSURFACEDESC ddsd;
+
+    /* Lock and load! */
+    SDL_memset(&ddsd, 0, sizeof(ddsd));
+    ddsd.dwSize = sizeof(ddsd);
+    if (IDirectDrawSurface3_Lock(surface, NULL, &ddsd,
+                                 (DDLOCK_NOSYSLOCK | DDLOCK_WAIT),
+                                 NULL) != DD_OK) {
+        return;
+    }
+    IDirectDrawSurface3_Unlock(surface, NULL);
 
-	/* Lock and load! */
-	SDL_memset(&ddsd, 0, sizeof(ddsd));
-	ddsd.dwSize = sizeof(ddsd);
-	if ( IDirectDrawSurface3_Lock(surface, NULL, &ddsd,
-			(DDLOCK_NOSYSLOCK|DDLOCK_WAIT), NULL) != DD_OK ) {
-		return;
-	}
-	IDirectDrawSurface3_Unlock(surface, NULL);
-	
-	fprintf(stderr, "%s:\n", title);
-	fprintf(stderr, "\tSize: %dx%d in %s at %ld bpp (pitch = %ld)\n",
-		ddsd.dwWidth, ddsd.dwHeight,
-		(flags & SDL_HWSURFACE) ? "hardware" : "software",
+    fprintf(stderr, "%s:\n", title);
+    fprintf(stderr, "\tSize: %dx%d in %s at %ld bpp (pitch = %ld)\n",
+            ddsd.dwWidth, ddsd.dwHeight,
+            (flags & SDL_HWSURFACE) ? "hardware" : "software",
 #if defined(NONAMELESSUNION)
-		ddsd.ddpfPixelFormat.u1.dwRGBBitCount, ddsd.u1.lPitch);
+            ddsd.ddpfPixelFormat.u1.dwRGBBitCount, ddsd.u1.lPitch);
 #else
-		ddsd.ddpfPixelFormat.dwRGBBitCount, ddsd.lPitch);
+            ddsd.ddpfPixelFormat.dwRGBBitCount, ddsd.lPitch);
 #endif
-	fprintf(stderr, "\tR = 0x%X, G = 0x%X, B = 0x%X\n", 
+    fprintf(stderr, "\tR = 0x%X, G = 0x%X, B = 0x%X\n",
 #if defined(NONAMELESSUNION)
-	     		ddsd.ddpfPixelFormat.u2.dwRBitMask,
-	     		ddsd.ddpfPixelFormat.u3.dwGBitMask,
-	     		ddsd.ddpfPixelFormat.u4.dwBBitMask);
+            ddsd.ddpfPixelFormat.u2.dwRBitMask,
+            ddsd.ddpfPixelFormat.u3.dwGBitMask,
+            ddsd.ddpfPixelFormat.u4.dwBBitMask);
 #else
-	     		ddsd.ddpfPixelFormat.dwRBitMask,
-	     		ddsd.ddpfPixelFormat.dwGBitMask,
-	     		ddsd.ddpfPixelFormat.dwBBitMask);
+            ddsd.ddpfPixelFormat.dwRBitMask,
+            ddsd.ddpfPixelFormat.dwGBitMask, ddsd.ddpfPixelFormat.dwBBitMask);
 #endif
 }
 #endif /* DDRAW_DEBUG */
 
-static int DX5_HWAccelBlit(SDL_Surface *src, SDL_Rect *srcrect,
-					SDL_Surface *dst, SDL_Rect *dstrect)
+static int
+DX5_HWAccelBlit(SDL_Surface * src, SDL_Rect * srcrect,
+                SDL_Surface * dst, SDL_Rect * dstrect)
 {
-	LPDIRECTDRAWSURFACE3 src_surface;
-	LPDIRECTDRAWSURFACE3 dst_surface;
-	DWORD flags;
-	RECT rect;
-	HRESULT result;
+    LPDIRECTDRAWSURFACE3 src_surface;
+    LPDIRECTDRAWSURFACE3 dst_surface;
+    DWORD flags;
+    RECT rect;
+    HRESULT result;
 
-	/* Set it up.. the desination must have a DDRAW surface */
-	src_surface = src->hwdata->dd_writebuf;
-	dst_surface = dst->hwdata->dd_writebuf;
-	rect.top    = (LONG)srcrect->y;
-	rect.bottom = (LONG)srcrect->y+srcrect->h;
-	rect.left   = (LONG)srcrect->x;
-	rect.right  = (LONG)srcrect->x+srcrect->w;
-	if ( (src->flags & SDL_SRCCOLORKEY) == SDL_SRCCOLORKEY )
-		flags = DDBLTFAST_SRCCOLORKEY;
-	else
-		flags = DDBLTFAST_NOCOLORKEY;
-	/* FIXME:  We can remove this flag for _really_ fast blit queuing,
-	           but it will affect the return values of locks and flips.
-	 */
-	flags |= DDBLTFAST_WAIT;
+    /* Set it up.. the desination must have a DDRAW surface */
+    src_surface = src->hwdata->dd_writebuf;
+    dst_surface = dst->hwdata->dd_writebuf;
+    rect.top = (LONG) srcrect->y;
+    rect.bottom = (LONG) srcrect->y + srcrect->h;
+    rect.left = (LONG) srcrect->x;
+    rect.right = (LONG) srcrect->x + srcrect->w;
+    if ((src->flags & SDL_SRCCOLORKEY) == SDL_SRCCOLORKEY)
+        flags = DDBLTFAST_SRCCOLORKEY;
+    else
+        flags = DDBLTFAST_NOCOLORKEY;
+    /* FIXME:  We can remove this flag for _really_ fast blit queuing,
+       but it will affect the return values of locks and flips.
+     */
+    flags |= DDBLTFAST_WAIT;
 
-	/* Do the blit! */
-	result = IDirectDrawSurface3_BltFast(dst_surface,
-			dstrect->x, dstrect->y, src_surface, &rect, flags);
-	if ( result != DD_OK ) {
-		if ( result == DDERR_SURFACELOST ) {
-			result = IDirectDrawSurface3_Restore(src_surface);
-			result = IDirectDrawSurface3_Restore(dst_surface);
-			/* The surfaces need to be reloaded with artwork */
-			SDL_SetError("Blit surfaces were lost, reload them");
-			return(-2);
-		}
-		SetDDerror("IDirectDrawSurface3::BltFast", result);
+    /* Do the blit! */
+    result = IDirectDrawSurface3_BltFast(dst_surface,
+                                         dstrect->x, dstrect->y, src_surface,
+                                         &rect, flags);
+    if (result != DD_OK) {
+        if (result == DDERR_SURFACELOST) {
+            result = IDirectDrawSurface3_Restore(src_surface);
+            result = IDirectDrawSurface3_Restore(dst_surface);
+            /* The surfaces need to be reloaded with artwork */
+            SDL_SetError("Blit surfaces were lost, reload them");
+            return (-2);
+        }
+        SetDDerror("IDirectDrawSurface3::BltFast", result);
 #ifdef DDRAW_DEBUG
- fprintf(stderr, "Original dest rect: %dx%d at %d,%d\n", dstrect->w, dstrect->h, dstrect->x, dstrect->y);
- fprintf(stderr, "HW accelerated %sblit to from 0x%p to 0x%p at (%d,%d)\n",
-		(src->flags & SDL_SRCCOLORKEY) ? "colorkey " : "", src, dst,
-					dstrect->x, dstrect->y);
-  PrintSurface("SRC", src_surface, src->flags);
-  PrintSurface("DST", dst_surface, dst->flags);
- fprintf(stderr, "Source rectangle: (%d,%d) - (%d,%d)\n",
-		rect.left, rect.top, rect.right, rect.bottom);
+        fprintf(stderr, "Original dest rect: %dx%d at %d,%d\n", dstrect->w,
+                dstrect->h, dstrect->x, dstrect->y);
+        fprintf(stderr,
+                "HW accelerated %sblit to from 0x%p to 0x%p at (%d,%d)\n",
+                (src->flags & SDL_SRCCOLORKEY) ? "colorkey " : "", src,
+                dst, dstrect->x, dstrect->y);
+        PrintSurface("SRC", src_surface, src->flags);
+        PrintSurface("DST", dst_surface, dst->flags);
+        fprintf(stderr, "Source rectangle: (%d,%d) - (%d,%d)\n",
+                rect.left, rect.top, rect.right, rect.bottom);
 #endif
-		/* Unexpected error, fall back to software blit */
-		return(src->map->sw_blit(src, srcrect, dst, dstrect));
-	}
-	return(0);
+        /* Unexpected error, fall back to software blit */
+        return (src->map->sw_blit(src, srcrect, dst, dstrect));
+    }
+    return (0);
 }
 
-static int DX5_CheckHWBlit(_THIS, SDL_Surface *src, SDL_Surface *dst)
+static int
+DX5_CheckHWBlit(_THIS, SDL_Surface * src, SDL_Surface * dst)
 {
-	int accelerated;
+    int accelerated;
 
-	/* We need to have a DDraw surface for HW blits */
-	if ( (src->flags & SDL_HWSURFACE) == SDL_SWSURFACE ) {
-		/* Allocate a DDraw surface for the blit */
-		if ( src->hwdata == NULL ) {
-			DX5_AllocDDSurface(this, src, NULL, SDL_SWSURFACE);
-		}
-	}
-	if ( src->hwdata == NULL ) {
-		return(0);
-	}
+    /* We need to have a DDraw surface for HW blits */
+    if ((src->flags & SDL_HWSURFACE) == SDL_SWSURFACE) {
+        /* Allocate a DDraw surface for the blit */
+        if (src->hwdata == NULL) {
+            DX5_AllocDDSurface(this, src, NULL, SDL_SWSURFACE);
+        }
+    }
+    if (src->hwdata == NULL) {
+        return (0);
+    }
 
-	/* Set initial acceleration on */
-	src->flags |= SDL_HWACCEL;
+    /* Set initial acceleration on */
+    src->flags |= SDL_HWACCEL;
 
-	/* Set the surface attributes */
-	if ( (src->flags & SDL_SRCCOLORKEY) == SDL_SRCCOLORKEY ) {
-		if ( DX5_SetHWColorKey(this, src, src->format->colorkey) < 0 ) {
-			src->flags &= ~SDL_HWACCEL;
-		}
-	}
-	if ( (src->flags & SDL_SRCALPHA) == SDL_SRCALPHA ) {
-		if ( DX5_SetHWAlpha(this, src, src->format->alpha) < 0 ) {
-			src->flags &= ~SDL_HWACCEL;
-		}
-	}
+    /* Set the surface attributes */
+    if ((src->flags & SDL_SRCCOLORKEY) == SDL_SRCCOLORKEY) {
+        if (DX5_SetHWColorKey(this, src, src->format->colorkey) < 0) {
+            src->flags &= ~SDL_HWACCEL;
+        }
+    }
+    if ((src->flags & SDL_SRCALPHA) == SDL_SRCALPHA) {
+        if (DX5_SetHWAlpha(this, src, src->format->alpha) < 0) {
+            src->flags &= ~SDL_HWACCEL;
+        }
+    }
 
-	/* Check to see if final surface blit is accelerated */
-	accelerated = !!(src->flags & SDL_HWACCEL);
-	if ( accelerated ) {
+    /* Check to see if final surface blit is accelerated */
+    accelerated = !!(src->flags & SDL_HWACCEL);
+    if (accelerated) {
 #ifdef DDRAW_DEBUG
-  fprintf(stderr, "Setting accelerated blit on 0x%p\n", src);
+        fprintf(stderr, "Setting accelerated blit on 0x%p\n", src);
 #endif
-		src->map->hw_blit = DX5_HWAccelBlit;
-	}
-	return(accelerated);
+        src->map->hw_blit = DX5_HWAccelBlit;
+    }
+    return (accelerated);
 }
 
-static int DX5_FillHWRect(_THIS, SDL_Surface *dst, SDL_Rect *dstrect, Uint32 color)
+static int
+DX5_FillHWRect(_THIS, SDL_Surface * dst, SDL_Rect * dstrect, Uint32 color)
 {
-	LPDIRECTDRAWSURFACE3 dst_surface;
-	RECT area;
-	DDBLTFX bltfx;
-	HRESULT result;
+    LPDIRECTDRAWSURFACE3 dst_surface;
+    RECT area;
+    DDBLTFX bltfx;
+    HRESULT result;
 
 #ifdef DDRAW_DEBUG
- fprintf(stderr, "HW accelerated fill at (%d,%d)\n", dstrect->x, dstrect->y);
+    fprintf(stderr, "HW accelerated fill at (%d,%d)\n", dstrect->x,
+            dstrect->y);
 #endif
-	dst_surface = dst->hwdata->dd_writebuf;
-	area.top    = (LONG)dstrect->y;
-	area.bottom = (LONG)dstrect->y+dstrect->h;
-	area.left   = (LONG)dstrect->x;
-	area.right  = (LONG)dstrect->x+dstrect->w;
-	bltfx.dwSize = sizeof(bltfx);
+    dst_surface = dst->hwdata->dd_writebuf;
+    area.top = (LONG) dstrect->y;
+    area.bottom = (LONG) dstrect->y + dstrect->h;
+    area.left = (LONG) dstrect->x;
+    area.right = (LONG) dstrect->x + dstrect->w;
+    bltfx.dwSize = sizeof(bltfx);
 #if defined(NONAMELESSUNION)
-	bltfx.u5.dwFillColor = color;
+    bltfx.u5.dwFillColor = color;
 #else
-	bltfx.dwFillColor = color;
+    bltfx.dwFillColor = color;
 #endif
-	result = IDirectDrawSurface3_Blt(dst_surface,
-			&area, NULL, NULL, DDBLT_COLORFILL|DDBLT_WAIT, &bltfx);
-	if ( result == DDERR_SURFACELOST ) {
-		IDirectDrawSurface3_Restore(dst_surface);
-		result = IDirectDrawSurface3_Blt(dst_surface,
-			&area, NULL, NULL, DDBLT_COLORFILL|DDBLT_WAIT, &bltfx);
-	}
-	if ( result != DD_OK ) {
-		SetDDerror("IDirectDrawSurface3::Blt", result);
-		return(-1);
-	}
-	return(0);
+    result = IDirectDrawSurface3_Blt(dst_surface,
+                                     &area, NULL, NULL,
+                                     DDBLT_COLORFILL | DDBLT_WAIT, &bltfx);
+    if (result == DDERR_SURFACELOST) {
+        IDirectDrawSurface3_Restore(dst_surface);
+        result = IDirectDrawSurface3_Blt(dst_surface,
+                                         &area, NULL, NULL,
+                                         DDBLT_COLORFILL | DDBLT_WAIT,
+                                         &bltfx);
+    }
+    if (result != DD_OK) {
+        SetDDerror("IDirectDrawSurface3::Blt", result);
+        return (-1);
+    }
+    return (0);
 }
 
-static int DX5_SetHWColorKey(_THIS, SDL_Surface *surface, Uint32 key)
+static int
+DX5_SetHWColorKey(_THIS, SDL_Surface * surface, Uint32 key)
 {
-	DDCOLORKEY colorkey;
-	HRESULT result;
+    DDCOLORKEY colorkey;
+    HRESULT result;
 
-	/* Set the surface colorkey */
-	colorkey.dwColorSpaceLowValue = key;
-	colorkey.dwColorSpaceHighValue = key;
-	result = IDirectDrawSurface3_SetColorKey(
-			surface->hwdata->dd_surface, DDCKEY_SRCBLT, &colorkey);
-	if ( result != DD_OK ) {
-		SetDDerror("IDirectDrawSurface3::SetColorKey", result);
-		return(-1);
-	}
-	return(0);
+    /* Set the surface colorkey */
+    colorkey.dwColorSpaceLowValue = key;
+    colorkey.dwColorSpaceHighValue = key;
+    result =
+        IDirectDrawSurface3_SetColorKey(surface->hwdata->dd_surface,
+                                        DDCKEY_SRCBLT, &colorkey);
+    if (result != DD_OK) {
+        SetDDerror("IDirectDrawSurface3::SetColorKey", result);
+        return (-1);
+    }
+    return (0);
 }
-static int DX5_SetHWAlpha(_THIS, SDL_Surface *surface, Uint8 alpha)
+static int
+DX5_SetHWAlpha(_THIS, SDL_Surface * surface, Uint8 alpha)
 {
-	return(-1);
+    return (-1);
 }
 
-static int DX5_LockHWSurface(_THIS, SDL_Surface *surface)
+static int
+DX5_LockHWSurface(_THIS, SDL_Surface * surface)
 {
-	HRESULT result;
-	LPDIRECTDRAWSURFACE3 dd_surface;
-	DDSURFACEDESC ddsd;
+    HRESULT result;
+    LPDIRECTDRAWSURFACE3 dd_surface;
+    DDSURFACEDESC ddsd;
 
-	/* Lock and load! */
-	dd_surface = surface->hwdata->dd_writebuf;
-	SDL_memset(&ddsd, 0, sizeof(ddsd));
-	ddsd.dwSize = sizeof(ddsd);
-	result = IDirectDrawSurface3_Lock(dd_surface, NULL, &ddsd,
-					(DDLOCK_NOSYSLOCK|DDLOCK_WAIT), NULL);
-	if ( result == DDERR_SURFACELOST ) {
-		result = IDirectDrawSurface3_Restore(
-						surface->hwdata->dd_surface);
-		result = IDirectDrawSurface3_Lock(dd_surface, NULL, &ddsd, 
-					(DDLOCK_NOSYSLOCK|DDLOCK_WAIT), NULL);
-	}
-	if ( result != DD_OK ) {
-		SetDDerror("DirectDrawSurface3::Lock", result);
-		return(-1);
-	}
-	/* Pitch might have changed -- recalculate pitch and offset */
+    /* Lock and load! */
+    dd_surface = surface->hwdata->dd_writebuf;
+    SDL_memset(&ddsd, 0, sizeof(ddsd));
+    ddsd.dwSize = sizeof(ddsd);
+    result = IDirectDrawSurface3_Lock(dd_surface, NULL, &ddsd,
+                                      (DDLOCK_NOSYSLOCK | DDLOCK_WAIT), NULL);
+    if (result == DDERR_SURFACELOST) {
+        result = IDirectDrawSurface3_Restore(surface->hwdata->dd_surface);
+        result = IDirectDrawSurface3_Lock(dd_surface, NULL, &ddsd,
+                                          (DDLOCK_NOSYSLOCK | DDLOCK_WAIT),
+                                          NULL);
+    }
+    if (result != DD_OK) {
+        SetDDerror("DirectDrawSurface3::Lock", result);
+        return (-1);
+    }
+    /* Pitch might have changed -- recalculate pitch and offset */
 #if defined(NONAMELESSUNION)
-	if ( surface->pitch != ddsd.u1.lPitch ) {
-		surface->pitch = ddsd.u1.lPitch;
+    if (surface->pitch != ddsd.u1.lPitch) {
+        surface->pitch = ddsd.u1.lPitch;
 #else
-	if ( surface->pitch != ddsd.lPitch ) {
-		surface->pitch = (Uint16)ddsd.lPitch;
+    if (surface->pitch != ddsd.lPitch) {
+        surface->pitch = (Uint16) ddsd.lPitch;
 #endif
-		surface->offset =
-			((ddsd.dwHeight-surface->h)/2)*surface->pitch +
-			((ddsd.dwWidth-surface->w)/2)*
-					surface->format->BytesPerPixel;
-	}
-	surface->pixels = ddsd.lpSurface;
-	return(0);
+        surface->offset =
+            ((ddsd.dwHeight - surface->h) / 2) * surface->pitch +
+            ((ddsd.dwWidth - surface->w) / 2) *
+            surface->format->BytesPerPixel;
+    }
+    surface->pixels = ddsd.lpSurface;
+    return (0);
 }
 
-static void DX5_UnlockHWSurface(_THIS, SDL_Surface *surface)
+static void
+DX5_UnlockHWSurface(_THIS, SDL_Surface * surface)
 {
-	IDirectDrawSurface3_Unlock(surface->hwdata->dd_writebuf, NULL);
-	surface->pixels = NULL;
+    IDirectDrawSurface3_Unlock(surface->hwdata->dd_writebuf, NULL);
+    surface->pixels = NULL;
 }
 
-static int DX5_FlipHWSurface(_THIS, SDL_Surface *surface)
+static int
+DX5_FlipHWSurface(_THIS, SDL_Surface * surface)
 {
-	HRESULT result;
-	LPDIRECTDRAWSURFACE3 dd_surface;
+    HRESULT result;
+    LPDIRECTDRAWSURFACE3 dd_surface;
 
-	dd_surface = surface->hwdata->dd_surface;
+    dd_surface = surface->hwdata->dd_surface;
 
-	/* to prevent big slowdown on fast computers, wait here instead of driver ring 0 code */
-	/* Dmitry Yakimov (ftech@tula.net) */
-	while(IDirectDrawSurface3_GetFlipStatus(dd_surface, DDGBS_ISBLTDONE) == DDERR_WASSTILLDRAWING);
+    /* to prevent big slowdown on fast computers, wait here instead of driver ring 0 code */
+    /* Dmitry Yakimov (ftech@tula.net) */
+    while (IDirectDrawSurface3_GetFlipStatus(dd_surface, DDGBS_ISBLTDONE) ==
+           DDERR_WASSTILLDRAWING);
 
-	result = IDirectDrawSurface3_Flip(dd_surface, NULL, DDFLIP_WAIT);
-	if ( result == DDERR_SURFACELOST ) {
-		result = IDirectDrawSurface3_Restore(
-						surface->hwdata->dd_surface);
-		while(IDirectDrawSurface3_GetFlipStatus(dd_surface, DDGBS_ISBLTDONE) == DDERR_WASSTILLDRAWING);
-		result = IDirectDrawSurface3_Flip(dd_surface, NULL, DDFLIP_WAIT);
-	}
-	if ( result != DD_OK ) {
-		SetDDerror("DirectDrawSurface3::Flip", result);
-		return(-1);
-	}
-	return(0);
+    result = IDirectDrawSurface3_Flip(dd_surface, NULL, DDFLIP_WAIT);
+    if (result == DDERR_SURFACELOST) {
+        result = IDirectDrawSurface3_Restore(surface->hwdata->dd_surface);
+        while (IDirectDrawSurface3_GetFlipStatus
+               (dd_surface, DDGBS_ISBLTDONE) == DDERR_WASSTILLDRAWING);
+        result = IDirectDrawSurface3_Flip(dd_surface, NULL, DDFLIP_WAIT);
+    }
+    if (result != DD_OK) {
+        SetDDerror("DirectDrawSurface3::Flip", result);
+        return (-1);
+    }
+    return (0);
 }
 
-static void DX5_FreeHWSurface(_THIS, SDL_Surface *surface)
+static void
+DX5_FreeHWSurface(_THIS, SDL_Surface * surface)
 {
-	if ( surface->hwdata ) {
-		if ( surface->hwdata->dd_surface != SDL_primary ) {
-			IDirectDrawSurface3_Release(surface->hwdata->dd_surface);
-		}
-		SDL_free(surface->hwdata);
-		surface->hwdata = NULL;
-	}
+    if (surface->hwdata) {
+        if (surface->hwdata->dd_surface != SDL_primary) {
+            IDirectDrawSurface3_Release(surface->hwdata->dd_surface);
+        }
+        SDL_free(surface->hwdata);
+        surface->hwdata = NULL;
+    }
 }
 
-void DX5_WindowUpdate(_THIS, int numrects, SDL_Rect *rects)
+void
+DX5_WindowUpdate(_THIS, int numrects, SDL_Rect * rects)
 {
-	HRESULT result;
-	int i;
-	RECT src, dst;
+    HRESULT result;
+    int i;
+    RECT src, dst;
 
-	for ( i=0; i<numrects; ++i ) {
-		src.top    = (LONG)rects[i].y;
-		src.bottom = (LONG)rects[i].y+rects[i].h;
-		src.left   = (LONG)rects[i].x;
-		src.right  = (LONG)rects[i].x+rects[i].w;
-		dst.top    = SDL_bounds.top+src.top;
-		dst.left   = SDL_bounds.left+src.left;
-		dst.bottom = SDL_bounds.top+src.bottom;
-		dst.right  = SDL_bounds.left+src.right;
-		result = IDirectDrawSurface3_Blt(SDL_primary, &dst, 
-					this->screen->hwdata->dd_surface, &src,
-							DDBLT_WAIT, NULL);
-		/* Doh!  Check for lost surface and restore it */
-		if ( result == DDERR_SURFACELOST ) {
-			IDirectDrawSurface3_Restore(SDL_primary);
-			IDirectDrawSurface3_Blt(SDL_primary, &dst, 
-					this->screen->hwdata->dd_surface, &src,
-							DDBLT_WAIT, NULL);
-		}
-	}
+    for (i = 0; i < numrects; ++i) {
+        src.top = (LONG) rects[i].y;
+        src.bottom = (LONG) rects[i].y + rects[i].h;
+        src.left = (LONG) rects[i].x;
+        src.right = (LONG) rects[i].x + rects[i].w;
+        dst.top = SDL_bounds.top + src.top;
+        dst.left = SDL_bounds.left + src.left;
+        dst.bottom = SDL_bounds.top + src.bottom;
+        dst.right = SDL_bounds.left + src.right;
+        result = IDirectDrawSurface3_Blt(SDL_primary, &dst,
+                                         this->screen->hwdata->dd_surface,
+                                         &src, DDBLT_WAIT, NULL);
+        /* Doh!  Check for lost surface and restore it */
+        if (result == DDERR_SURFACELOST) {
+            IDirectDrawSurface3_Restore(SDL_primary);
+            IDirectDrawSurface3_Blt(SDL_primary, &dst,
+                                    this->screen->hwdata->dd_surface,
+                                    &src, DDBLT_WAIT, NULL);
+        }
+    }
 }
 
-void DX5_DirectUpdate(_THIS, int numrects, SDL_Rect *rects)
+void
+DX5_DirectUpdate(_THIS, int numrects, SDL_Rect * rects)
 {
 }
 
@@ -2164,345 +2225,355 @@
 	int b = (A.b - B.b);						\
 	(r*r + g*g + b*b);						\
 })
-static void DX5_CompressPalette(_THIS, SDL_Color *colors, int ncolors, int maxcolors)
+static void
+DX5_CompressPalette(_THIS, SDL_Color * colors, int ncolors, int maxcolors)
 {
 #ifdef SIMPLE_COMPRESSION
-	int i, j;
+    int i, j;
 #else
-	static SDL_Color zero = { 0, 0, 0, 0 };
-	int i, j;
-	int max, dist;
-	int prev, next;
-	int *pool;
-	int *seen, *order;
+    static SDL_Color zero = { 0, 0, 0, 0 };
+    int i, j;
+    int max, dist;
+    int prev, next;
+    int *pool;
+    int *seen, *order;
 #endif
 
-	/* Does this happen? */
-	if ( maxcolors > ncolors ) {
-		maxcolors = ncolors;
-	}
-
+    /* Does this happen? */
+    if (maxcolors > ncolors) {
+        maxcolors = ncolors;
+    }
 #ifdef SIMPLE_COMPRESSION
-	/* Just copy the first "maxcolors" colors */
-	for ( j=10, i=0; i<maxcolors; ++i, ++j ) {
-		SDL_colors[j].peRed = colors[i].r;
-		SDL_colors[j].peGreen = colors[i].g;
-		SDL_colors[j].peBlue = colors[i].b;
-	}
+    /* Just copy the first "maxcolors" colors */
+    for (j = 10, i = 0; i < maxcolors; ++i, ++j) {
+        SDL_colors[j].peRed = colors[i].r;
+        SDL_colors[j].peGreen = colors[i].g;
+        SDL_colors[j].peBlue = colors[i].b;
+    }
 #else
-	/* Allocate memory for the arrays we use */
-	pool = SDL_stack_alloc(int, 2*ncolors);
-	if ( pool == NULL ) {
-		/* No worries, just return */;
-		return;
-	}
-	seen = pool;
-	SDL_memset(seen, 0, ncolors*sizeof(int));
-	order = pool+ncolors;
+    /* Allocate memory for the arrays we use */
+    pool = SDL_stack_alloc(int, 2 * ncolors);
+    if (pool == NULL) {
+        /* No worries, just return */ ;
+        return;
+    }
+    seen = pool;
+    SDL_memset(seen, 0, ncolors * sizeof(int));
+    order = pool + ncolors;
 
-	/* Start with the brightest color */
-	max = 0;
-	for ( i=0; i<ncolors; ++i ) {
-		dist = CS_CS_DIST(zero, colors[i]);
-		if ( dist >= max ) {
-			max = dist;
-			next = i;
-		}
-	}
-	j = 0;
-	order[j++] = next;
-	seen[next] = 1;
-	prev = next;
+    /* Start with the brightest color */
+    max = 0;
+    for (i = 0; i < ncolors; ++i) {
+        dist = CS_CS_DIST(zero, colors[i]);
+        if (dist >= max) {
+            max = dist;
+            next = i;
+        }
+    }
+    j = 0;
+    order[j++] = next;
+    seen[next] = 1;
+    prev = next;
 
-	/* Keep going through all the colors */
-	while ( j < maxcolors ) {
-		max = 0;
-		for ( i=0; i<ncolors; ++i ) {
-			if ( seen[i] ) {
-				continue;
-			}
-			dist = CS_CS_DIST(colors[i], colors[prev]);
-			if ( dist >= max ) {
-				max = dist;
-				next = i;
-			}
-		}
-		order[j++] = next;
-		seen[next] = 1;
-		prev = next;
-	}
+    /* Keep going through all the colors */
+    while (j < maxcolors) {
+        max = 0;
+        for (i = 0; i < ncolors; ++i) {
+            if (seen[i]) {
+                continue;
+            }
+            dist = CS_CS_DIST(colors[i], colors[prev]);
+            if (dist >= max) {
+                max = dist;
+                next = i;
+            }
+        }
+        order[j++] = next;
+        seen[next] = 1;
+        prev = next;
+    }
 
-	/* Compress the colors to the palette */
-	for ( j=10, i=0; i<maxcolors; ++i, ++j ) {
-		SDL_colors[j].peRed = colors[order[i]].r;
-		SDL_colors[j].peGreen = colors[order[i]].g;
-		SDL_colors[j].peBlue = colors[order[i]].b;
-	}
-	SDL_stack_free(pool);
+    /* Compress the colors to the palette */
+    for (j = 10, i = 0; i < maxcolors; ++i, ++j) {
+        SDL_colors[j].peRed = colors[order[i]].r;
+        SDL_colors[j].peGreen = colors[order[i]].g;
+        SDL_colors[j].peBlue = colors[order[i]].b;
+    }
+    SDL_stack_free(pool);
 #endif /* SIMPLE_COMPRESSION */
 }
 
 /* Set the system colormap in both fullscreen and windowed modes */
-int DX5_SetColors(_THIS, int firstcolor, int ncolors, SDL_Color *colors)
+int
+DX5_SetColors(_THIS, int firstcolor, int ncolors, SDL_Color * colors)
 {
-	int i;
-	int alloct_all;
+    int i;
+    int alloct_all;
 
-	/* Copy palette colors into display palette */
-	alloct_all = 0;
-	if ( SDL_palette != NULL ) {
-		if ( (this->screen->flags&SDL_FULLSCREEN) == SDL_FULLSCREEN ) {
-			/* We can set all entries explicitly */
-			for ( i=0; i< ncolors; ++i ) {
-			        int j = firstcolor + i;
-				SDL_colors[j].peRed = colors[i].r;
-				SDL_colors[j].peGreen = colors[i].g;
-				SDL_colors[j].peBlue = colors[i].b;
-			}
-			IDirectDrawPalette_SetEntries(SDL_palette, 0,
-				firstcolor, ncolors, &SDL_colors[firstcolor]);
-			alloct_all = 1;
-		} else {
-			/* Grab the 236 most diverse colors in the palette */
-			DX5_CompressPalette(this, colors, ncolors, 236);
-			/* This sends an WM_PALETTECHANGED message to us */
-			colorchange_expected = 1;
-			IDirectDrawPalette_SetEntries(SDL_palette, 0,
-							0, 256, SDL_colors);
-		}
-	}
-	return(alloct_all);
+    /* Copy palette colors into display palette */
+    alloct_all = 0;
+    if (SDL_palette != NULL) {
+        if ((this->screen->flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) {
+            /* We can set all entries explicitly */
+            for (i = 0; i < ncolors; ++i) {
+                int j = firstcolor + i;
+                SDL_colors[j].peRed = colors[i].r;
+                SDL_colors[j].peGreen = colors[i].g;
+                SDL_colors[j].peBlue = colors[i].b;
+            }
+            IDirectDrawPalette_SetEntries(SDL_palette, 0,
+                                          firstcolor, ncolors,
+                                          &SDL_colors[firstcolor]);
+            alloct_all = 1;
+        } else {
+            /* Grab the 236 most diverse colors in the palette */
+            DX5_CompressPalette(this, colors, ncolors, 236);
+            /* This sends an WM_PALETTECHANGED message to us */
+            colorchange_expected = 1;
+            IDirectDrawPalette_SetEntries(SDL_palette, 0, 0, 256, SDL_colors);
+        }
+    }
+    return (alloct_all);
 }
 
 /* Gamma code is only available on DirectX 7 and newer */
-static int DX5_SetGammaRamp(_THIS, Uint16 *ramp)
+static int
+DX5_SetGammaRamp(_THIS, Uint16 * ramp)
 {
 #ifdef IDirectDrawGammaControl_SetGammaRamp
-	LPDIRECTDRAWGAMMACONTROL gamma;
-	DDGAMMARAMP gamma_ramp;
-	HRESULT result;
+    LPDIRECTDRAWGAMMACONTROL gamma;
+    DDGAMMARAMP gamma_ramp;
+    HRESULT result;
 #endif
 
-	/* In windowed or OpenGL mode, use windib gamma code */
-	if ( ! DDRAW_FULLSCREEN() ) {
-		return DIB_SetGammaRamp(this, ramp);
-	}
-
+    /* In windowed or OpenGL mode, use windib gamma code */
+    if (!DDRAW_FULLSCREEN()) {
+        return DIB_SetGammaRamp(this, ramp);
+    }
 #ifndef IDirectDrawGammaControl_SetGammaRamp
-	SDL_SetError("SDL compiled without DirectX gamma ramp support");
-	return -1;
+    SDL_SetError("SDL compiled without DirectX gamma ramp support");
+    return -1;
 #else
-	/* Check for a video mode! */
-	if ( ! SDL_primary ) {
-		SDL_SetError("A video mode must be set for gamma correction");
-		return(-1);
-	}
+    /* Check for a video mode! */
+    if (!SDL_primary) {
+        SDL_SetError("A video mode must be set for gamma correction");
+        return (-1);
+    }
 
-	/* Get the gamma control object */
-	result = IDirectDrawSurface3_QueryInterface(SDL_primary,
-			&IID_IDirectDrawGammaControl, (LPVOID *)&gamma);
-	if ( result != DD_OK ) {
-		SetDDerror("DirectDrawSurface3::QueryInterface(GAMMA)", result);
-		return(-1);
-	}
+    /* Get the gamma control object */
+    result = IDirectDrawSurface3_QueryInterface(SDL_primary,
+                                                &IID_IDirectDrawGammaControl,
+                                                (LPVOID *) & gamma);
+    if (result != DD_OK) {
+        SetDDerror("DirectDrawSurface3::QueryInterface(GAMMA)", result);
+        return (-1);
+    }
 
-	/* Set up the gamma ramp */
-	SDL_memcpy(gamma_ramp.red, &ramp[0*256], 256*sizeof(*ramp));
-	SDL_memcpy(gamma_ramp.green, &ramp[1*256], 256*sizeof(*ramp));
-	SDL_memcpy(gamma_ramp.blue, &ramp[2*256], 256*sizeof(*ramp));
-	result = IDirectDrawGammaControl_SetGammaRamp(gamma, 0, &gamma_ramp);
-	if ( result != DD_OK ) {
-		SetDDerror("DirectDrawGammaControl::SetGammaRamp()", result);
-	}
+    /* Set up the gamma ramp */
+    SDL_memcpy(gamma_ramp.red, &ramp[0 * 256], 256 * sizeof(*ramp));
+    SDL_memcpy(gamma_ramp.green, &ramp[1 * 256], 256 * sizeof(*ramp));
+    SDL_memcpy(gamma_ramp.blue, &ramp[2 * 256], 256 * sizeof(*ramp));
+    result = IDirectDrawGammaControl_SetGammaRamp(gamma, 0, &gamma_ramp);
+    if (result != DD_OK) {
+        SetDDerror("DirectDrawGammaControl::SetGammaRamp()", result);
+    }
 
-	/* Release the interface and return */
-	IDirectDrawGammaControl_Release(gamma);
-	return (result == DD_OK) ? 0 : -1;
+    /* Release the interface and return */
+    IDirectDrawGammaControl_Release(gamma);
+    return (result == DD_OK) ? 0 : -1;
 #endif /* !IDirectDrawGammaControl_SetGammaRamp */
 }
 
-static int DX5_GetGammaRamp(_THIS, Uint16 *ramp)
+static int
+DX5_GetGammaRamp(_THIS, Uint16 * ramp)
 {
 #ifdef IDirectDrawGammaControl_SetGammaRamp
-	LPDIRECTDRAWGAMMACONTROL gamma;
-	DDGAMMARAMP gamma_ramp;
-	HRESULT result;
+    LPDIRECTDRAWGAMMACONTROL gamma;
+    DDGAMMARAMP gamma_ramp;
+    HRESULT result;
 #endif
 
-	/* In windowed or OpenGL mode, use windib gamma code */
-	if ( ! DDRAW_FULLSCREEN() ) {
-		return DIB_GetGammaRamp(this, ramp);
-	}
-
+    /* In windowed or OpenGL mode, use windib gamma code */
+    if (!DDRAW_FULLSCREEN()) {
+        return DIB_GetGammaRamp(this, ramp);
+    }
 #ifndef IDirectDrawGammaControl_SetGammaRamp
-	SDL_SetError("SDL compiled without DirectX gamma ramp support");
-	return -1;
+    SDL_SetError("SDL compiled without DirectX gamma ramp support");
+    return -1;
 #else
-	/* Check for a video mode! */
-	if ( ! SDL_primary ) {
-		SDL_SetError("A video mode must be set for gamma correction");
-		return(-1);
-	}
+    /* Check for a video mode! */
+    if (!SDL_primary) {
+        SDL_SetError("A video mode must be set for gamma correction");
+        return (-1);
+    }
 
-	/* Get the gamma control object */
-	result = IDirectDrawSurface3_QueryInterface(SDL_primary,
-			&IID_IDirectDrawGammaControl, (LPVOID *)&gamma);
-	if ( result != DD_OK ) {
-		SetDDerror("DirectDrawSurface3::QueryInterface(GAMMA)", result);
-		return(-1);
-	}
+    /* Get the gamma control object */
+    result = IDirectDrawSurface3_QueryInterface(SDL_primary,
+                                                &IID_IDirectDrawGammaControl,
+                                                (LPVOID *) & gamma);
+    if (result != DD_OK) {
+        SetDDerror("DirectDrawSurface3::QueryInterface(GAMMA)", result);
+        return (-1);
+    }
 
-	/* Set up the gamma ramp */
-	result = IDirectDrawGammaControl_GetGammaRamp(gamma, 0, &gamma_ramp);
-	if ( result == DD_OK ) {
-		SDL_memcpy(&ramp[0*256], gamma_ramp.red, 256*sizeof(*ramp));
-		SDL_memcpy(&ramp[1*256], gamma_ramp.green, 256*sizeof(*ramp));
-		SDL_memcpy(&ramp[2*256], gamma_ramp.blue, 256*sizeof(*ramp));
-	} else {
-		SetDDerror("DirectDrawGammaControl::GetGammaRamp()", result);
-	}
+    /* Set up the gamma ramp */
+    result = IDirectDrawGammaControl_GetGammaRamp(gamma, 0, &gamma_ramp);
+    if (result == DD_OK) {
+        SDL_memcpy(&ramp[0 * 256], gamma_ramp.red, 256 * sizeof(*ramp));
+        SDL_memcpy(&ramp[1 * 256], gamma_ramp.green, 256 * sizeof(*ramp));
+        SDL_memcpy(&ramp[2 * 256], gamma_ramp.blue, 256 * sizeof(*ramp));
+    } else {
+        SetDDerror("DirectDrawGammaControl::GetGammaRamp()", result);
+    }
 
-	/* Release the interface and return */
-	IDirectDrawGammaControl_Release(gamma);
-	return (result == DD_OK) ? 0 : -1;
+    /* Release the interface and return */
+    IDirectDrawGammaControl_Release(gamma);
+    return (result == DD_OK) ? 0 : -1;
 #endif /* !IDirectDrawGammaControl_SetGammaRamp */
 }
 
-void DX5_VideoQuit(_THIS)
+void
+DX5_VideoQuit(_THIS)
 {
-	int i, j;
+    int i, j;
 
-	/* If we're fullscreen GL, we need to reset the display */
-	if ( this->screen != NULL ) {
+    /* If we're fullscreen GL, we need to reset the display */
+    if (this->screen != NULL) {
 #ifndef NO_CHANGEDISPLAYSETTINGS
-		if ( (this->screen->flags & (SDL_OPENGL|SDL_FULLSCREEN)) ==
-		                            (SDL_OPENGL|SDL_FULLSCREEN) ) {
-			ChangeDisplaySettings(NULL, 0);
-			ShowWindow(SDL_Window, SW_HIDE);
-		}
+        if ((this->screen->flags & (SDL_INTERNALOPENGL | SDL_FULLSCREEN)) ==
+            (SDL_INTERNALOPENGL | SDL_FULLSCREEN)) {
+            ChangeDisplaySettings(NULL, 0);
+            ShowWindow(SDL_Window, SW_HIDE);
+        }
 #endif
-		if ( this->screen->flags & SDL_OPENGL ) {
-			WIN_GL_ShutDown(this);
-		}
-	}
+        if (this->screen->flags & SDL_INTERNALOPENGL) {
+            WIN_GL_ShutDown(this);
+        }
+    }
 
-	/* Free any palettes we used */
-	if ( SDL_palette != NULL ) {
-		IDirectDrawPalette_Release(SDL_palette);
-		SDL_palette = NULL;
-	}
+    /* Free any palettes we used */
+    if (SDL_palette != NULL) {
+        IDirectDrawPalette_Release(SDL_palette);
+        SDL_palette = NULL;
+    }
 
-	/* Allow the primary surface to be freed */
-	if ( SDL_primary != NULL ) {
-		SDL_primary = NULL;
-	}
+    /* Allow the primary surface to be freed */
+    if (SDL_primary != NULL) {
+        SDL_primary = NULL;
+    }
 
-	/* Free video mode lists */
-	for ( i=0; i<NUM_MODELISTS; ++i ) {
-		if ( SDL_modelist[i] != NULL ) {
-			for ( j=0; SDL_modelist[i][j]; ++j )
-				SDL_free(SDL_modelist[i][j]);
-			SDL_free(SDL_modelist[i]);
-			SDL_modelist[i] = NULL;
-		}
-	}
+    /* Free video mode lists */
+    for (i = 0; i < NUM_MODELISTS; ++i) {
+        if (SDL_modelist[i] != NULL) {
+            for (j = 0; SDL_modelist[i][j]; ++j)
+                SDL_free(SDL_modelist[i][j]);
+            SDL_free(SDL_modelist[i]);
+            SDL_modelist[i] = NULL;
+        }
+    }
 
-	/* Free the window */
-	DIB_QuitGamma(this);
-	if ( SDL_Window ) {
-		DX5_DestroyWindow(this);
-	}
+    /* Free the window */
+    DIB_QuitGamma(this);
+    if (SDL_Window) {
+        DX5_DestroyWindow(this);
+    }
 
-	/* Free our window icon */
-	if ( screen_icn ) {
-		DestroyIcon(screen_icn);
-		screen_icn = NULL;
-	}
+    /* Free our window icon */
+    if (screen_icn) {
+        DestroyIcon(screen_icn);
+        screen_icn = NULL;
+    }
 }
 
 /* Exported for the windows message loop only */
-void DX5_RealizePalette(_THIS)
+void
+DX5_RealizePalette(_THIS)
 {
-	if ( SDL_palette ) {
-		IDirectDrawSurface3_SetPalette(SDL_primary, SDL_palette);
-	}
+    if (SDL_palette) {
+        IDirectDrawSurface3_SetPalette(SDL_primary, SDL_palette);
+    }
 }
-static void DX5_Recolor8Bit(_THIS, SDL_Surface *surface, Uint8 *mapping)
+static void
+DX5_Recolor8Bit(_THIS, SDL_Surface * surface, Uint8 * mapping)
 {
-	int row, col;
-	Uint8 *pixels;
+    int row, col;
+    Uint8 *pixels;
 
-	if ( surface->w && surface->h ) {
-		if ( (surface->flags & SDL_HWSURFACE) == SDL_HWSURFACE ) {
-			if ( this->LockHWSurface(this, surface) < 0 ) {
-				return;
-			}
-		}
-		for ( row=0; row<surface->h; ++row ) {
-			pixels = (Uint8 *)surface->pixels+row*surface->pitch;
-			for ( col=0; col<surface->w; ++col, ++pixels ) {
-				*pixels = mapping[*pixels];
-			}
-		}
-		if ( (surface->flags & SDL_HWSURFACE) == SDL_HWSURFACE ) {
-			this->UnlockHWSurface(this, surface);
-		}
-		SDL_UpdateRect(surface, 0, 0, 0, 0);
-	}
+    if (surface->w && surface->h) {
+        if ((surface->flags & SDL_HWSURFACE) == SDL_HWSURFACE) {
+            if (this->LockHWSurface(this, surface) < 0) {
+                return;
+            }
+        }
+        for (row = 0; row < surface->h; ++row) {
+            pixels = (Uint8 *) surface->pixels + row * surface->pitch;
+            for (col = 0; col < surface->w; ++col, ++pixels) {
+                *pixels = mapping[*pixels];
+            }
+        }
+        if ((surface->flags & SDL_HWSURFACE) == SDL_HWSURFACE) {
+            this->UnlockHWSurface(this, surface);
+        }
+        SDL_UpdateRect(surface, 0, 0, 0, 0);
+    }
 }
-void DX5_PaletteChanged(_THIS, HWND window)
+void
+DX5_PaletteChanged(_THIS, HWND window)
 {
-	SDL_Palette *palette;
-	SDL_Color *saved = NULL;
-	HDC hdc;
-	int i;
-	PALETTEENTRY *entries;
+    SDL_Palette *palette;
+    SDL_Color *saved = NULL;
+    HDC hdc;
+    int i;
+    PALETTEENTRY *entries;
 
-	/* This is true when the window is closing */
-	if ( (SDL_primary == NULL) || (SDL_VideoSurface == NULL) )
-		return;
+    /* This is true when the window is closing */
+    if ((SDL_primary == NULL) || (SDL_VideoSurface == NULL))
+        return;
 
-	/* We need to get the colors as they were set */
-	palette = this->physpal;
-	if(!palette)
-	        palette = SDL_VideoSurface->format->palette;
-	if ( palette == NULL ) { /* Sometimes we don't have a palette */
-		return;
-	}
-	entries = SDL_stack_alloc(PALETTEENTRY, palette->ncolors);
-	hdc = GetDC(window);
-	GetSystemPaletteEntries(hdc, 0, palette->ncolors, entries);
-	ReleaseDC(window, hdc);
-	if ( ! colorchange_expected ) {
-		saved = SDL_stack_alloc(SDL_Color, palette->ncolors);
-		SDL_memcpy(saved, palette->colors, 
-					palette->ncolors*sizeof(SDL_Color));
-	}
-	for ( i=0; i<palette->ncolors; ++i ) {
-		palette->colors[i].r = entries[i].peRed;
-		palette->colors[i].g = entries[i].peGreen;
-		palette->colors[i].b = entries[i].peBlue;
-	}
-	SDL_stack_free(entries);
-	if ( ! colorchange_expected ) {
-		Uint8 mapping[256];
+    /* We need to get the colors as they were set */
+    palette = this->physpal;
+    if (!palette)
+        palette = SDL_VideoSurface->format->palette;
+    if (palette == NULL) {      /* Sometimes we don't have a palette */
+        return;
+    }
+    entries = SDL_stack_alloc(PALETTEENTRY, palette->ncolors);
+    hdc = GetDC(window);
+    GetSystemPaletteEntries(hdc, 0, palette->ncolors, entries);
+    ReleaseDC(window, hdc);
+    if (!colorchange_expected) {
+        saved = SDL_stack_alloc(SDL_Color, palette->ncolors);
+        SDL_memcpy(saved, palette->colors,
+                   palette->ncolors * sizeof(SDL_Color));
+    }
+    for (i = 0; i < palette->ncolors; ++i) {
+        palette->colors[i].r = entries[i].peRed;
+        palette->colors[i].g = entries[i].peGreen;
+        palette->colors[i].b = entries[i].peBlue;
+    }
+    SDL_stack_free(entries);
+    if (!colorchange_expected) {
+        Uint8 mapping[256];
 
-		SDL_memset(mapping, 0, sizeof(mapping));
-		for ( i=0; i<palette->ncolors; ++i ) {
-			mapping[i] = SDL_FindColor(palette,
-					saved[i].r, saved[i].g, saved[i].b);
-		}
-		DX5_Recolor8Bit(this, SDL_VideoSurface, mapping);
-		SDL_stack_free(saved);
-	}
-	colorchange_expected = 0;
+        SDL_memset(mapping, 0, sizeof(mapping));
+        for (i = 0; i < palette->ncolors; ++i) {
+            mapping[i] = SDL_FindColor(palette,
+                                       saved[i].r, saved[i].g, saved[i].b);
+        }
+        DX5_Recolor8Bit(this, SDL_VideoSurface, mapping);
+        SDL_stack_free(saved);
+    }
+    colorchange_expected = 0;
 
-	/* Notify all mapped surfaces of the change */
-	SDL_FormatChanged(SDL_VideoSurface);
+    /* Notify all mapped surfaces of the change */
+    SDL_FormatChanged(SDL_VideoSurface);
 }
 
 /* Exported for the windows message loop only */
-void DX5_WinPAINT(_THIS, HDC hdc)
+void
+DX5_WinPAINT(_THIS, HDC hdc)
 {
-	SDL_UpdateRect(SDL_PublicSurface, 0, 0, 0, 0);
+    SDL_UpdateRect(SDL_PublicSurface, 0, 0, 0, 0);
 }
+
+/* vi: set ts=4 sw=4 expandtab: */