Page Menu
Home
Search
Configure Global Search
Log In
Files
F20052
SDL2-fullscreen_1.patch
Public
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Authored By
Wander Lairson Costa (walac)
Nov 13 2013, 4:22 PM
Size
2 KB
Subscribers
None
SDL2-fullscreen_1.patch
View Options
Index: intern/ghost/intern/GHOST_DisplayManagerSDL.h
===================================================================
--- intern/ghost/intern/GHOST_DisplayManagerSDL.h (revisão 45074)
+++ intern/ghost/intern/GHOST_DisplayManagerSDL.h (cópia de trabalho)
@@ -62,11 +62,15 @@
GHOST_DisplaySetting& setting) const;
GHOST_TSuccess
+ getCurrentDisplayModeSDL(SDL_DisplayMode &mode) const;
+
+ GHOST_TSuccess
setCurrentDisplaySetting(GHOST_TUns8 display,
const GHOST_DisplaySetting& setting);
private :
GHOST_SystemSDL * m_system;
+ SDL_DisplayMode m_mode;
};
#endif /* __GHOST_DISPLAYMANAGERSDL_H__ */
Index: intern/ghost/intern/GHOST_SystemSDL.cpp
===================================================================
--- intern/ghost/intern/GHOST_SystemSDL.cpp (revisão 45074)
+++ intern/ghost/intern/GHOST_SystemSDL.cpp (cópia de trabalho)
@@ -76,6 +76,17 @@
window= new GHOST_WindowSDL (this, title, left, top, width, height, state, parentWindow, type, stereoVisual, 1);
if (window) {
+ if (GHOST_kWindowStateFullScreen == state) {
+ SDL_Window *sdl_win = window->getSDLWindow();
+ SDL_DisplayMode mode;
+
+ static_cast<GHOST_DisplayManagerSDL *> (m_displayManager)->getCurrentDisplayModeSDL(mode);
+
+ SDL_SetWindowDisplayMode(sdl_win, &mode);
+ SDL_ShowWindow(sdl_win);
+ SDL_SetWindowFullscreen(sdl_win, SDL_TRUE);
+ }
+
if (window->getValid()) {
m_windowManager->addWindow(window);
pushEvent(new GHOST_Event(getMilliSeconds(), GHOST_kEventWindowSize, window));
Index: intern/ghost/intern/GHOST_DisplayManagerSDL.cpp
===================================================================
--- intern/ghost/intern/GHOST_DisplayManagerSDL.cpp (revisão 45074)
+++ intern/ghost/intern/GHOST_DisplayManagerSDL.cpp (cópia de trabalho)
@@ -39,7 +39,7 @@
GHOST_DisplayManager(),
m_system(system)
{
- /* do nothing */
+ memset(&m_mode, 0, sizeof m_mode);
}
GHOST_TSuccess
@@ -105,6 +105,13 @@
}
GHOST_TSuccess
+GHOST_DisplayManagerSDL::getCurrentDisplayModeSDL(SDL_DisplayMode &mode) const
+{
+ mode = m_mode;
+ return GHOST_kSuccess;
+}
+
+GHOST_TSuccess
GHOST_DisplayManagerSDL:: setCurrentDisplaySetting(GHOST_TUns8 display,
const GHOST_DisplaySetting& setting)
{
@@ -151,6 +158,8 @@
SDL_GetDisplayMode(display, best_fit, &mode);
}
+ m_mode = mode;
+
/* evil, SDL2 needs a window to adjust display modes */
GHOST_WindowSDL *win = (GHOST_WindowSDL *)m_system->getWindowManager()->getActiveWindow();
@@ -168,6 +177,8 @@
/* this is a problem for the BGE player :S, perhaps SDL2 will resolve at some point.
* we really need SDL_SetDisplayModeForDisplay() to become an API func! - campbell */
printf("no windows available, cant fullscreen");
- return GHOST_kFailure;
+
+ /* do not fail, we will try again later when the window is created - wander */
+ return GHOST_kSuccess;
}
}
File Metadata
Details
Mime Type
text/x-diff
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
b7/72/9ed8192115c919e53683635aafcc
Event Timeline
Log In to Comment