equal
deleted
inserted
replaced
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 } |
|