src/video/win32_v.cpp
changeset 8667 c916a5375166
parent 8627 448ebf3a8291
child 8773 d47f11d6e738
equal deleted inserted replaced
8666:ce3e587535c3 8667:c916a5375166
   208 		KillTimer(hwnd, event);
   208 		KillTimer(hwnd, event);
   209 		PostMessage(hwnd, WM_MOUSELEAVE, 0, 0L);
   209 		PostMessage(hwnd, WM_MOUSELEAVE, 0, 0L);
   210 	}
   210 	}
   211 }
   211 }
   212 
   212 
   213 static void MakeWindow(bool full_screen)
   213 static bool MakeWindow(bool full_screen)
   214 {
   214 {
   215 	_fullscreen = full_screen;
   215 	_fullscreen = full_screen;
   216 
   216 
   217 	// recreate window?
   217 	// recreate window?
   218 	if ((full_screen || _wnd.fullscreen) && _wnd.main_wnd) {
   218 	if ((full_screen || _wnd.fullscreen) && _wnd.main_wnd) {
   240 		settings.dmPelsWidth  = _wnd.width_org;
   240 		settings.dmPelsWidth  = _wnd.width_org;
   241 		settings.dmPelsHeight = _wnd.height_org;
   241 		settings.dmPelsHeight = _wnd.height_org;
   242 		settings.dmDisplayFrequency = _display_hz;
   242 		settings.dmDisplayFrequency = _display_hz;
   243 
   243 
   244 		if (ChangeDisplaySettings(&settings, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL) {
   244 		if (ChangeDisplaySettings(&settings, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL) {
   245 			MakeWindow(false);
   245 			MakeWindow(false);  // don't care about the result
   246 			return;
   246 			return false;  // the request failed
   247 		}
   247 		}
   248 	} else if (_wnd.fullscreen) {
   248 	} else if (_wnd.fullscreen) {
   249 		// restore display?
   249 		// restore display?
   250 		ChangeDisplaySettings(NULL, 0);
   250 		ChangeDisplaySettings(NULL, 0);
   251 	}
   251 	}
   289 			if (_wnd.main_wnd == NULL) error("CreateWindow failed");
   289 			if (_wnd.main_wnd == NULL) error("CreateWindow failed");
   290 			ShowWindow(_wnd.main_wnd, showstyle);
   290 			ShowWindow(_wnd.main_wnd, showstyle);
   291 		}
   291 		}
   292 	}
   292 	}
   293 	GameSizeChanged(); // invalidate all windows, force redraw
   293 	GameSizeChanged(); // invalidate all windows, force redraw
       
   294 	return true; // the request succedded
   294 }
   295 }
   295 
   296 
   296 static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
   297 static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
   297 {
   298 {
   298 	static uint32 keycode = 0;
   299 	static uint32 keycode = 0;
   893 bool VideoDriver_Win32::ChangeResolution(int w, int h)
   894 bool VideoDriver_Win32::ChangeResolution(int w, int h)
   894 {
   895 {
   895 	_wnd.width = _wnd.width_org = w;
   896 	_wnd.width = _wnd.width_org = w;
   896 	_wnd.height = _wnd.height_org = h;
   897 	_wnd.height = _wnd.height_org = h;
   897 
   898 
   898 	MakeWindow(_fullscreen); // _wnd.fullscreen screws up ingame resolution switching
   899 	return MakeWindow(_fullscreen); // _wnd.fullscreen screws up ingame resolution switching
   899 
   900 }
   900 	return true;
   901 
   901 }
   902 bool VideoDriver_Win32::ToggleFullscreen(bool full_screen)
   902 
   903 {
   903 void VideoDriver_Win32::ToggleFullscreen(bool full_screen)
   904 	return MakeWindow(full_screen);
   904 {
   905 }
   905 	MakeWindow(full_screen);
       
   906 }