@@ -1099,6 +1099,9 @@ Error OS_Windows::initialize(const VideoMode &p_desired, int p_video_driver, int
10991099 video_mode = p_desired;
11001100 // printf("**************** desired %s, mode %s\n", p_desired.fullscreen?"true":"false", video_mode.fullscreen?"true":"false");
11011101 RECT WindowRect;
1102+ int screen_id = _get_initial_screen_id ();
1103+ Point2 screen_pos = get_screen_position (screen_id);
1104+ Size2 screen_size = get_screen_size (screen_id);
11021105
11031106 WindowRect.left = 0 ;
11041107 WindowRect.right = video_mode.width ;
@@ -1141,35 +1144,9 @@ Error OS_Windows::initialize(const VideoMode &p_desired, int p_video_driver, int
11411144 pre_fs_valid = true ;
11421145 if (video_mode.fullscreen ) {
11431146
1144- /* this returns DPI unaware size, commenting
1145- DEVMODE current;
1146- memset(¤t, 0, sizeof(current));
1147- EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, ¤t);
1147+ WindowRect.right = screen_size.x ;
1148+ WindowRect.bottom = screen_size.y ;
11481149
1149- WindowRect.right = current.dmPelsWidth;
1150- WindowRect.bottom = current.dmPelsHeight;
1151-
1152- */
1153-
1154- EnumSizeData data = { 0 , 0 , Size2 () };
1155- EnumDisplayMonitors (NULL , NULL , _MonitorEnumProcSize, (LPARAM )&data);
1156-
1157- WindowRect.right = data.size .width ;
1158- WindowRect.bottom = data.size .height ;
1159-
1160- /* DEVMODE dmScreenSettings;
1161- memset(&dmScreenSettings,0,sizeof(dmScreenSettings));
1162- dmScreenSettings.dmSize=sizeof(dmScreenSettings);
1163- dmScreenSettings.dmPelsWidth = video_mode.width;
1164- dmScreenSettings.dmPelsHeight = video_mode.height;
1165- dmScreenSettings.dmBitsPerPel = current.dmBitsPerPel;
1166- dmScreenSettings.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;
1167-
1168- LONG err = ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN);
1169- if (err!=DISP_CHANGE_SUCCESSFUL) {
1170-
1171- video_mode.fullscreen=false;
1172- }*/
11731150 pre_fs_valid = false ;
11741151 }
11751152
@@ -1233,8 +1210,8 @@ Error OS_Windows::initialize(const VideoMode &p_desired, int p_video_driver, int
12331210 dwExStyle,
12341211 L" Engine" , L" " ,
12351212 dwStyle | WS_CLIPSIBLINGS | WS_CLIPCHILDREN ,
1236- ( GetSystemMetrics ( SM_CXSCREEN ) - WindowRect.right ) / 2 ,
1237- ( GetSystemMetrics ( SM_CYSCREEN ) - WindowRect.bottom ) / 2 ,
1213+ screen_pos. x + (screen_size. x - WindowRect.right ) / 2 ,
1214+ screen_pos. y + (screen_size. y - WindowRect.bottom ) / 2 ,
12381215 WindowRect.right - WindowRect.left ,
12391216 WindowRect.bottom - WindowRect.top ,
12401217 NULL , NULL , hInstance, NULL );
0 commit comments