OpenGl Fullscreen?
-
Wie bekomme ich meine OpenGl-Anwendung im Vollbildmodus zu sehen?
-
OpenGL hat mal gar nichts damit zu tun. Das musst du mit deinem OS absprechen...
-
Wie mach ich das denn?
-
FS schrieb:
Wie mach ich das denn?
Unter welchem OS?
-
Windows
-
if ( m_settings.fullscreen ) { DEVMODE dmVideoMode; memset(&dmVideoMode,0,sizeof(dmVideoMode)); dmVideoMode.dmSize = sizeof(dmVideoMode); dmVideoMode.dmPelsWidth = static_cast<DWORD>(m_settings.width); dmVideoMode.dmPelsHeight = static_cast<DWORD>(m_settings.height); dmVideoMode.dmFields = DM_PELSWIDTH|DM_PELSHEIGHT; int code = ::ChangeDisplaySettings(&dmVideoMode, CDS_FULLSCREEN); if ( code != DISP_CHANGE_SUCCESSFUL ) { std::basic_string<wchar_t> err = L"ChangeDisplaySettings() failed: "; switch(code) { case DISP_CHANGE_BADDUALVIEW: { err += L"DISP_CHANGE_BADDUALVIEW"; break; } case DISP_CHANGE_BADFLAGS: { err += L"DISP_CHANGE_BADFLAGS"; break; } case DISP_CHANGE_BADMODE: { err += L"DISP_CHANGE_BADMODE"; break; } case DISP_CHANGE_BADPARAM: { err += L"DISP_CHANGE_BADPARAM"; break; } case DISP_CHANGE_FAILED: { err += L"DISP_CHANGE_FAILED"; break; } case DISP_CHANGE_RESTART: { err += L"DISP_CHANGE_RESTART"; break; } } ::MessageBox(HWND_DESKTOP, err.c_str(), L"NightLight2D", MB_ICONERROR|MB_OK); ::UnregisterClass(getWindowClassName(), m_hInstance); ::DestroyWindow((HWND)m_window_handle); m_quitEvent(); return false; } }
Gehört aber eher ins WinAPI Forum^^.
OpenGL selber kennt weder Fenster noch Vollbild,nur seinen Context.
http://code.google.com/p/nightlight2d/source/browse/NightLightDLL/NLWindowWin32.cpp#136
Und nicht vergessen den Style vorher auf WS_POPUP zu setzen am besten.
-
Ich habe jetzt glaube ich eine andere Lösung gefunden:
hWnd = CreateWindowA("Test", "Test", WS_OVERLAPPEDWINDOW, 0, 0, 1920, 1080, NULL, NULL, hInstance, NULL); ShowWindow(hWnd, nCmdShow); LONG_PTR style = GetWindowLongPtr(hWnd, GWL_STYLE); tempStyle &= ~WS_OVERLAPPEDWINDOW; SetWindowLongPtr(hWnd, GWL_STYLE, style); ShowWindow(hWindow, SW_MAXIMIZE);
Kann man das so machen?
-
PS: Zeile 16 müsste natürlich so lauten:
style &= ~WS_OVERLAPPEDWINDOW;