DXGL r790 - Code Review

Jump to navigation Jump to search
Repository:DXGL
Revision:r789‎ | r790 | r791 >
Date:01:54, 10 March 2018
Author:admin
Status:new
Tags:
Comment:
Track maximized state for resizable window mode.
Fix resizable window mode when not resizing and when centered.
Fill in cfgmgr readme file for new options.
Modified paths:
  • /cfgmgr/ReadMe.txt (modified) (history)
  • /cfgmgr/cfgmgr.c (modified) (history)
  • /cfgmgr/cfgmgr.h (modified) (history)
  • /ddraw/glRenderer.cpp (modified) (history)
  • /dxgl-example.ini (modified) (history)
  • /dxglcfg/dxglcfg.cpp (modified) (history)
  • /dxglcfg/dxglcfg.rc (modified) (history)
  • /dxglcfg/resource.h (modified) (history)

Diff [purge]

Index: cfgmgr/ReadMe.txt
@@ -12,6 +12,25 @@
1313 Does not have a registry value.
1414 If nonzero, ignores registry settings from Global section of registry.
1515
 16+member NoOverwrite
 17+INI Entry NoOverwrite
 18+INI Group system
 19+Does not have a registry value.
 20+If true, prevents DXGL Config from overwriting an existing ddraw.dll
 21+
 22+member BundledDDrawSHA256
 23+INI Entry BundledDDrawSHA256
 24+INI Group system
 25+Does not have a registry value.
 26+If set, specifies the original copy of ddraw.dll in the game folder for
 27+backup purposes.
 28+
 29+member NoUninstall
 30+INI Entry NoUninstall
 31+INI Group system
 32+Does not have a registry value.
 33+If true, prevents DXGL Config from deleting ddraw.dll from the game folder.
 34+
1635 Member scaler
1736 INI Entry ScalingMode
1837 INI Group display
@@ -53,7 +72,8 @@
5473 INI Entry AllColorDepths
5574 INI Group display
5675 REG_DWORD HKCU\DXGL\Profiles\<app>\AllColorDepths
57 -[DEPRECATED FOR DXGLCFG2]Enable all color depths, even if unsupported by the system
 76+[DEPRECATED]Enable all color depths, even if unsupported by the system.
 77+Overridden by AddColorDepths
5878 Valid settings:
5979 0 - Off
6080 1 - On
@@ -76,7 +96,8 @@
7797 INI Entry ExtraModes
7898 INI Group display
7999 REG_DWORD HKCU\DXGL\Profiles\<app>\ExtraModes
80 -[DEPRECATED FOR DXGLCFG2]Enable extra video modes, even if unsupported by the system
 100+[DEPRECATED]Enable extra video modes, even if unsupported by the system
 101+Overridden by AddModes
81102 Valid settings:
82103 0 - Off
83104 1 - On
@@ -185,7 +206,6 @@
186207 7 - Use exact 4x scale.
187208 8 - Use custom scale.
188209
189 -(future)
190210 Member primaryscalex
191211 INI Entry PrimaryScaleX
192212 INI Group scaling
@@ -194,12 +214,11 @@
195215 Stored as a 32-bit float encoded as a DWORD.
196216 If zero, negative, or an invalid value, set to 1.
197217
198 -(future)
199218 Member primaryscaley
200219 INI Entry PrimaryScaleY
201220 INI Group scaling
202221 REG_DWORD HKCU\DXGL\Profiles\<app>\PrimaryScaleY
203 -Custom X scale for primary scaling.
 222+Custom Y scale for primary scaling.
204223 Stored as a 32-bit float encoded as a DWORD.
205224 If zero, negative, or an invalid value, set to 1.
206225
@@ -221,8 +240,10 @@
222241 disabled.
223242 Valid settings:
224243 0 - Disabled
225 -1 - Enabled
226 -2 - Use Windows AppCompat
 244+1 - Per-monitor on Windows 8.1 and up, system on Windows Vista through 8.0
 245+2 - Override with Windows AppCompat
 246+3 - System DPI
 247+4 - Per-monitor V2 on Windows 10 v1703 and up
227248
228249 Member postfilter
229250 INI Entry PostprocessFilter
@@ -365,6 +386,63 @@
366387 REG_DWORD HKCU\DXGL\Profiles\<app>\SingleBufferDevice
367388 If true, do not use double buffering in OpenGL.
368389
 390+Member WindowPosition
 391+INI Entry WindowPosition
 392+INI Group advanced
 393+REG_DWORD HKCU\DXGL\Profiles\<app>\WindowPosition
 394+Selects the position to place the window in forced-window mode
 395+Valid settings:
 396+0 - Center
 397+1 - Remembered position
 398+
 399+Member RememberWindowSize
 400+INI Entry RememberWindowSize
 401+INI Group advanced
 402+REG_DWORD HKCU\DXGL\Profiles\<app>\RememberWindowSize
 403+If true, remembers the size of the window in forced-window mode.
 404+
 405+Member RememberWindowPosition
 406+INI Entry RememberWindowPosition
 407+INI Group advanced
 408+REG_DWORD HKCU\DXGL\Profiles\<app>\RememberWindowPosition
 409+If true, remembers the position of the window in forced-window mode.
 410+
 411+Member NoResizeWindow
 412+INI Entry NoResizeWindow
 413+INI Group advanced
 414+REG_DWORD HKCU\DXGL\Profiles\<app>\NoResizeWindow
 415+If true, prevents the window from resizing in resizable window mode.
 416+
 417+Member WindowX
 418+INI Entry WindowX
 419+INI Group advanced
 420+REG_DWORD HKCU\DXGL\Profiles\<app>\WindowX
 421+Remembered X position of window in forced-window mode.
 422+
 423+Member WindowY
 424+INI Entry WindowY
 425+INI Group advanced
 426+REG_DWORD HKCU\DXGL\Profiles\<app>\WindowY
 427+Remembered Y position of window in forced-window mode.
 428+
 429+Member WindowWidth
 430+INI Entry WindowWidth
 431+INI Group advanced
 432+REG_DWORD HKCU\DXGL\Profiles\<app>\WindowWidth
 433+Remembered width of window in forced-window mode.
 434+
 435+Member WindowHeight
 436+INI Entry WindowHeight
 437+INI Group advanced
 438+REG_DWORD HKCU\DXGL\Profiles\<app>\WindowHeight
 439+Remembered height of window in forced-window mode.
 440+
 441+Member WindowMaximized
 442+INI Entry WindowMaximized
 443+INI Group advanced
 444+REG_DWORD HKCU\DXGL\Profiles\<app>\WindowMaximized
 445+If true, resizable window mode starts maximized.
 446+
369447 Default for all Debug variables is 0 or FALSE.
370448
371449 Member DebugNoExtFramebuffer
Index: cfgmgr/cfgmgr.c
@@ -645,6 +645,7 @@
646646 cfg->NoResizeWindow = ReadBool(hKey, cfg->NoResizeWindow, &cfgmask->NoResizeWindow, _T("NoResizeWindow"));
647647 cfg->WindowWidth = ReadDWORD(hKey, cfg->WindowWidth, &cfgmask->WindowWidth, _T("WindowWidth"));
648648 cfg->WindowHeight = ReadDWORD(hKey, cfg->WindowHeight, &cfgmask->WindowHeight, _T("WindowHeight"));
 649+ cfg->WindowMaximized = ReadDWORD(hKey, cfg->WindowMaximized, &cfgmask->WindowMaximized, _T("WindowMaximized"));
649650 ReadWindowPos(hKey, cfg, cfgmask);
650651 cfg->Windows8Detected = ReadBool(hKey,cfg->Windows8Detected,&cfgmask->Windows8Detected,_T("Windows8Detected"));
651652 cfg->DPIScale = ReadDWORD(hKey,cfg->DPIScale,&cfgmask->DPIScale,_T("DPIScale"));
@@ -793,6 +794,7 @@
794795 WriteDWORD(hKey, cfg->WindowY, cfgmask->WindowY, _T("WindowY"));
795796 WriteDWORD(hKey, cfg->WindowWidth, cfgmask->WindowWidth, _T("WindowWidth"));
796797 WriteDWORD(hKey, cfg->WindowHeight, cfgmask->WindowHeight, _T("WindowHeight"));
 798+ WriteDWORD(hKey, cfg->WindowMaximized, cfgmask->WindowMaximized, _T("WindowMaximized"));
797799 WriteBool(hKey,cfg->Windows8Detected,cfgmask->Windows8Detected,_T("Windows8Detected"));
798800 WriteDWORD(hKey,cfg->DPIScale,cfgmask->DPIScale,_T("DPIScale"));
799801 WriteFloat(hKey, cfg->aspect, cfgmask->aspect, _T("ScreenAspect"));
@@ -1058,6 +1060,7 @@
10591061 if (!stricmp(name, "WindowY")) cfg->WindowY = INIIntValue(value);
10601062 if (!stricmp(name, "WindowWidth")) cfg->WindowWidth = INIIntValue(value);
10611063 if (!stricmp(name, "WindowHeight")) cfg->WindowHeight = INIIntValue(value);
 1064+ if (!stricmp(name, "WindowMaximized")) cfg->WindowMaximized = INIIntValue(value);
10621065 }
10631066 if (!stricmp(section, "debug"))
10641067 {
@@ -1347,6 +1350,7 @@
13481351 {
13491352 WriteDWORD(hKey, cfg->WindowWidth, 1, _T("WindowWidth"));
13501353 WriteDWORD(hKey, cfg->WindowHeight, 1, _T("WindowHeight"));
 1354+ WriteDWORD(hKey, cfg->WindowMaximized, 1, _T("WindowMaximized"));
13511355 }
13521356 RegCloseKey(hKey);
13531357 }
Index: cfgmgr/cfgmgr.h
@@ -75,6 +75,7 @@
7676 DWORD WindowY;
7777 DWORD WindowWidth;
7878 DWORD WindowHeight;
 79+ BOOL WindowMaximized;
7980 // [debug]
8081 BOOL DebugNoExtFramebuffer;
8182 BOOL DebugNoArbFramebuffer;
Index: ddraw/glRenderer.cpp
@@ -1668,6 +1668,7 @@
16691669 void glRenderer_Init(glRenderer *This, int width, int height, int bpp, BOOL fullscreen, unsigned int frequency, HWND hwnd, glDirectDraw7 *glDD7, BOOL devwnd)
16701670 {
16711671 RECT wndrect;
 1672+ WINDOWPLACEMENT wndplace;
16721673 int screenx, screeny;
16731674 LONG_PTR winstyle, winstyleex;
16741675 This->oldswap = 0;
@@ -1755,8 +1756,13 @@
17561757 wndrect.top = (screeny / 2) - (dxglcfg.WindowHeight / 2);
17571758 }
17581759 AdjustWindowRectEx(&wndrect, winstyle | WS_OVERLAPPEDWINDOW, FALSE, (winstyleex | WS_EX_APPWINDOW));
1759 - SetWindowPos(This->hWnd, 0, wndrect.left, wndrect.top, wndrect.right - wndrect.left,
1760 - wndrect.bottom - wndrect.top, SWP_ASYNCWINDOWPOS | SWP_NOACTIVATE | SWP_NOOWNERZORDER);
 1760+ wndplace.length = sizeof(WINDOWPLACEMENT);
 1761+ GetWindowPlacement(This->hWnd, &wndplace);
 1762+ wndplace.flags = WPF_ASYNCWINDOWPLACEMENT;
 1763+ if (dxglcfg.WindowMaximized == 1) wndplace.showCmd = SW_SHOWMAXIMIZED;
 1764+ else wndplace.showCmd = SW_SHOWNORMAL;
 1765+ wndplace.rcNormalPosition = wndrect;
 1766+ SetWindowPlacement(This->hWnd, &wndplace);
17611767 break;
17621768 case 4: // Windowed borderless
17631769 winstyle = GetWindowLongPtrA(This->hWnd, GWL_STYLE);
@@ -1830,12 +1836,15 @@
18311837 BOOL hasmenu;
18321838 RECT wndrect;
18331839 LONG_PTR winstyle, winstyleex;
 1840+ WINDOWPLACEMENT wndplace;
18341841 switch (dxglcfg.fullmode)
18351842 {
18361843 case 2:
18371844 case 3:
18381845 case 4:
1839 - GetWindowRect(This->hWnd, &wndrect);
 1846+ wndplace.length = sizeof(WINDOWPLACEMENT);
 1847+ GetWindowPlacement(This->hWnd, &wndplace);
 1848+ wndrect = wndplace.rcNormalPosition;
18401849 if (dxglcfg.fullmode != 4)
18411850 {
18421851 winstyle = GetWindowLongPtrA(This->hWnd, GWL_STYLE);
@@ -1848,6 +1857,11 @@
18491858 dxglcfg.WindowY = wndrect.top;
18501859 dxglcfg.WindowWidth = wndrect.right - wndrect.left;
18511860 dxglcfg.WindowHeight = wndrect.bottom - wndrect.top;
 1861+ if (dxglcfg.fullmode == 3)
 1862+ {
 1863+ if (wndplace.showCmd == SW_MAXIMIZE) dxglcfg.WindowMaximized = TRUE;
 1864+ else dxglcfg.WindowMaximized = FALSE;
 1865+ }
18521866 SaveWindowSettings(&dxglcfg);
18531867 break;
18541868 default:
@@ -2142,7 +2156,8 @@
21432157 */
21442158 void glRenderer_SetWnd(glRenderer *This, int width, int height, int bpp, int fullscreen, unsigned int frequency, HWND newwnd, BOOL devwnd)
21452159 {
2146 - RECT wndrect;
 2160+ RECT wndrect, wndrect2;
 2161+ WINDOWPLACEMENT wndplace;
21472162 BOOL hasmenu;
21482163 int screenx, screeny;
21492164 LONG_PTR winstyle, winstyleex;
@@ -2210,18 +2225,34 @@
22112226 winstyleex = GetWindowLongPtrA(newwnd, GWL_EXSTYLE);
22122227 SetWindowLongPtrA(newwnd, GWL_EXSTYLE, winstyleex | WS_EX_APPWINDOW);
22132228 SetWindowLongPtrA(newwnd, GWL_STYLE, (winstyle | WS_OVERLAPPEDWINDOW) & ~WS_POPUP);
2214 - ShowWindow(newwnd, SW_NORMAL);
 2229+ wndplace.length = sizeof(WINDOWPLACEMENT);
 2230+ GetWindowPlacement(newwnd, &wndplace);
 2231+ if(wndplace.showCmd == SW_SHOWMAXIMIZED) ShowWindow(newwnd, SW_SHOWMAXIMIZED);
 2232+ else ShowWindow(newwnd, SW_NORMAL);
22152233 if (dxglcfg.WindowPosition == 1)
22162234 {
2217 - GetWindowRect(newwnd, &wndrect);
 2235+ wndrect = wndplace.rcNormalPosition;
 2236+ GetWindowRect(newwnd, &wndrect2);
22182237 if (GetMenu(newwnd)) hasmenu = TRUE;
22192238 else hasmenu = FALSE;
22202239 UnadjustWindowRectEx(&wndrect, (winstyle | WS_OVERLAPPEDWINDOW) & ~WS_POPUP,
22212240 hasmenu, (winstyleex | WS_EX_APPWINDOW));
 2241+ UnadjustWindowRectEx(&wndrect2, (winstyle | WS_OVERLAPPEDWINDOW) & ~WS_POPUP,
 2242+ hasmenu, (winstyleex | WS_EX_APPWINDOW));
22222243 }
22232244 else
22242245 {
2225 - if (dxglcfg.NoResizeWindow) break;
 2246+ if (dxglcfg.NoResizeWindow)
 2247+ {
 2248+ GetWindowRect(newwnd, &wndrect2);
 2249+ if (GetMenu(newwnd)) hasmenu = TRUE;
 2250+ else hasmenu = FALSE;
 2251+ UnadjustWindowRectEx(&wndrect2, (winstyle | WS_OVERLAPPEDWINDOW) & ~WS_POPUP,
 2252+ hasmenu, (winstyleex | WS_EX_APPWINDOW));
 2253+ glDirectDraw7_SetWindowSize(This->ddInterface,
 2254+ wndrect2.right - wndrect2.left, wndrect2.bottom - wndrect2.top);
 2255+ break;
 2256+ }
22262257 screenx = GetSystemMetrics(SM_CXSCREEN);
22272258 screeny = GetSystemMetrics(SM_CYSCREEN);
22282259 wndrect.left = (screenx / 2) - (width / 2);
@@ -2232,15 +2263,17 @@
22332264 wndrect.right = wndrect.left + width;
22342265 wndrect.bottom = wndrect.top + height;
22352266 }
2236 - else glDirectDraw7_SetWindowSize(This->ddInterface, wndrect.right - wndrect.left,
2237 - wndrect.bottom - wndrect.top);
22382267 dxglcfg.WindowX = wndrect.left;
22392268 dxglcfg.WindowY = wndrect.top;
22402269 dxglcfg.WindowWidth = wndrect.right - wndrect.left;
22412270 dxglcfg.WindowHeight = wndrect.bottom - wndrect.top;
22422271 AdjustWindowRectEx(&wndrect, winstyle | WS_OVERLAPPEDWINDOW, FALSE, (winstyleex | WS_EX_APPWINDOW));
2243 - SetWindowPos(newwnd, 0, wndrect.left, wndrect.top, wndrect.right - wndrect.left,
2244 - wndrect.bottom - wndrect.top, SWP_ASYNCWINDOWPOS | SWP_NOACTIVATE | SWP_NOOWNERZORDER);
 2272+ wndplace.flags = WPF_ASYNCWINDOWPLACEMENT;
 2273+ if (!dxglcfg.NoResizeWindow) wndplace.showCmd = SW_SHOWNORMAL;
 2274+ wndplace.rcNormalPosition = wndrect;
 2275+ SetWindowPlacement(newwnd, &wndplace);
 2276+ if(dxglcfg.NoResizeWindow) glDirectDraw7_SetWindowSize(This->ddInterface,
 2277+ wndrect2.right - wndrect2.left, wndrect2.bottom - wndrect2.top);
22452278 SaveWindowSettings(&dxglcfg);
22462279 break;
22472280 case 4: // Windowed borderless
Index: dxgl-example.ini
@@ -96,8 +96,8 @@
9797 ; AllColorDepths - Boolean
9898 ; Adds 8, 16, 24, and 32-bit color modes if they are not already
9999 ; added to the list of display modes passed to the program.
100 -; (future)Equivalent to setting AddColorDepths to 21.
101 -; (future)Overridden by AddColorDepths.
 100+; Equivalent to setting AddColorDepths to 21.
 101+; Overridden by AddColorDepths.
102102 ; Default is true if Windows 8 or higher is detected, false otherwise.
103103 AllColorDepths = true
104104
@@ -122,11 +122,11 @@
123123 ; is set to automatic, it will add several low resolution pixel doubled
124124 ; video modes.
125125 ; Default is true.
126 -; (future)Equivalent to setting AddModes to 7. Overridden by AddModes.
 126+; Equivalent to setting AddModes to 7. Overridden by AddModes.
127127 ExtraModes = true
128128
129129 ; AddModes - Integer
130 -; (future) Adds additional video modes to the list of resolutions.
 130+; Adds additional video modes to the list of resolutions.
131131 ; This is a bitmapped variable, add up the desired mode lists from
132132 ; the list of values below:
133133 ; 0 - None
@@ -473,6 +473,11 @@
474474 ; Default is 480
475475 WindowHeight = 480
476476
 477+; WindowMaximized - Boolean
 478+; Remembered maximized state of the window when using resized window mode.
 479+; Default is false
 480+WindowMaximized = false
 481+
477482 [debug]
478483 ; DebugNoExtFramebuffer - Boolean
479484 ; Disables use of the EXT_framebuffer_object OpenGL extension.
Index: dxglcfg/dxglcfg.cpp
@@ -2036,6 +2036,11 @@
20372037 SetInteger(hWnd, IDC_WINDOWHEIGHT, cfg->WindowHeight, cfgmask->WindowHeight);
20382038 }
20392039 break;
 2040+ case IDC_WINDOWMAXIMIZED:
 2041+ cfg->WindowMaximized = GetCheck(hWnd, IDC_WINDOWMAXIMIZED, &cfgmask->WindowMaximized);
 2042+ EnableWindow(GetDlgItem(hDialog, IDC_APPLY), TRUE);
 2043+ *dirty = TRUE;
 2044+ break;
20402045 case IDC_NOAUTOSIZE:
20412046 cfg->NoResizeWindow = GetCheck(hWnd, IDC_NOAUTOSIZE, &cfgmask->NoResizeWindow);
20422047 EnableWindow(GetDlgItem(hDialog, IDC_APPLY), TRUE);
@@ -2988,6 +2993,9 @@
29892994 // Remembered window size
29902995 SetInteger(hTabs[3], IDC_WINDOWWIDTH, cfg->WindowWidth, cfgmask->WindowWidth);
29912996 SetInteger(hTabs[3], IDC_WINDOWHEIGHT, cfg->WindowHeight, cfgmask->WindowHeight);
 2997+ // Remembered maximize state
 2998+ if (cfg->WindowMaximized) SendDlgItemMessage(hTabs[3], IDC_WINDOWMAXIMIZED, BM_SETCHECK, BST_CHECKED, 0);
 2999+ else SendDlgItemMessage(hTabs[3], IDC_WINDOWMAXIMIZED, BM_SETCHECK, BST_UNCHECKED, 0);
29923000 // No autosize
29933001 if (cfg->NoResizeWindow) SendDlgItemMessage(hTabs[3], IDC_NOAUTOSIZE, BM_SETCHECK, BST_CHECKED, 0);
29943002 else SendDlgItemMessage(hTabs[3], IDC_NOAUTOSIZE, BM_SETCHECK, BST_UNCHECKED, 0);
@@ -3388,6 +3396,7 @@
33893397 SendDlgItemMessage(hTabs[3], IDC_WINDOWPOS, CB_ADDSTRING, 0, (LPARAM)strdefault);
33903398 SendDlgItemMessage(hTabs[3], IDC_REMEMBERWINDOWPOS, BM_SETSTYLE, BS_AUTO3STATE, TRUE);
33913399 SendDlgItemMessage(hTabs[3], IDC_REMEMBERWINDOWSIZE, BM_SETSTYLE, BS_AUTO3STATE, TRUE);
 3400+ SendDlgItemMessage(hTabs[3], IDC_WINDOWMAXIMIZED, BM_SETSTYLE, BS_AUTO3STATE, TRUE);
33923401 SendDlgItemMessage(hTabs[3], IDC_NOAUTOSIZE, BM_SETSTYLE, BS_AUTO3STATE, TRUE);
33933402 // Debug tab
33943403 SendDlgItemMessage(hTabs[4], IDC_GLVERSION, CB_ADDSTRING, 0, (LPARAM)strdefault);
@@ -3447,6 +3456,7 @@
34483457 SendDlgItemMessage(hTabs[3], IDC_WINDOWPOS, CB_FINDSTRING, -1, (LPARAM)strdefault), 0);
34493458 SendDlgItemMessage(hTabs[3], IDC_REMEMBERWINDOWPOS, BM_SETSTYLE, BS_AUTOCHECKBOX, TRUE);
34503459 SendDlgItemMessage(hTabs[3], IDC_REMEMBERWINDOWSIZE, BM_SETSTYLE, BS_AUTOCHECKBOX, TRUE);
 3460+ SendDlgItemMessage(hTabs[3], IDC_WINDOWMAXIMIZED, BM_SETSTYLE, BS_AUTOCHECKBOX, TRUE);
34513461 SendDlgItemMessage(hTabs[3], IDC_NOAUTOSIZE, BM_SETSTYLE, BS_AUTOCHECKBOX, TRUE);
34523462 // Debug tab
34533463 SendDlgItemMessage(hTabs[3], IDC_GLVERSION, CB_DELETESTRING,
@@ -3544,6 +3554,7 @@
35453555 SetInteger(hTabs[3], IDC_WINDOWY, cfg->WindowY, cfgmask->WindowY);
35463556 SetInteger(hTabs[3], IDC_WINDOWWIDTH, cfg->WindowWidth, cfgmask->WindowWidth);
35473557 SetInteger(hTabs[3], IDC_WINDOWHEIGHT, cfg->WindowHeight, cfgmask->WindowHeight);
 3558+ SetCheck(hTabs[3], IDC_WINDOWMAXIMIZED, cfg->WindowMaximized, cfgmask->WindowMaximized, tristate);
35483559 SetCheck(hTabs[3], IDC_NOAUTOSIZE, cfg->NoResizeWindow, cfgmask->NoResizeWindow, tristate);
35493560 // Debug tab
35503561 RedrawWindow(GetDlgItem(hTabs[4], IDC_DEBUGLIST), NULL, NULL, RDW_INVALIDATE);
Index: dxglcfg/dxglcfg.rc
@@ -128,7 +128,8 @@
129129 EDITTEXT IDC_WINDOWWIDTH, 122, 69, 40, 14, ES_AUTOHSCROLL, WS_EX_LEFT
130130 LTEXT "H", IDC_STATIC, 164, 72, 6, 9, SS_LEFT, WS_EX_LEFT
131131 EDITTEXT IDC_WINDOWHEIGHT, 172, 69, 40, 14, ES_AUTOHSCROLL, WS_EX_LEFT
132 - AUTOCHECKBOX "Don't auto-size window in resizable window mode", IDC_NOAUTOSIZE, 7, 88, 171, 8, 0, WS_EX_LEFT
 132+ AUTOCHECKBOX "Start resizable window maximized", IDC_WINDOWMAXIMIZED, 7, 88, 120, 8, 0, WS_EX_LEFT
 133+ AUTOCHECKBOX "Don't auto-size window in resizable window mode", IDC_NOAUTOSIZE, 7, 101, 171, 8, 0, WS_EX_LEFT
133134 LTEXT "Installation path", IDC_PATHLABEL, 7, 124, 51, 9, SS_LEFT, WS_EX_LEFT
134135 EDITTEXT IDC_PROFILEPATH, 7, 135, 331, 14, NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL | ES_READONLY, WS_EX_LEFT
135136 PUSHBUTTON "Write INI file...", IDC_WRITEINI, 262, 150, 73, 14, 0, WS_EX_LEFT
Index: dxglcfg/resource.h
@@ -112,10 +112,11 @@
113113 #define IDC_WINDOWY 2309
114114 #define IDC_WINDOWWIDTH 2310
115115 #define IDC_WINDOWHEIGHT 2311
116 -#define IDC_NOAUTOSIZE 2312
117 -#define IDC_PATHLABEL 2313
118 -#define IDC_PROFILEPATH 2314
119 -#define IDC_WRITEINI 2315
 116+#define IDC_WINDOWMAXIMIZED 2312
 117+#define IDC_NOAUTOSIZE 2313
 118+#define IDC_PATHLABEL 2314
 119+#define IDC_PROFILEPATH 2315
 120+#define IDC_WRITEINI 2316
120121
121122 // Controls - Debug Tab
122123 #define IDC_DEBUGLIST 2401