*** empty log message ***
--HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%40305
This commit is contained in:
parent
1e744f8805
commit
94746b8b48
4 changed files with 37 additions and 3 deletions
|
@ -35,6 +35,12 @@ static char rcsid =
|
||||||
/* Hidden "this" pointer for the video functions */
|
/* Hidden "this" pointer for the video functions */
|
||||||
#define _THIS SDL_VideoDevice *this
|
#define _THIS SDL_VideoDevice *this
|
||||||
|
|
||||||
|
#define WINDIB_FULLSCREEN() \
|
||||||
|
( \
|
||||||
|
((SDL_VideoSurface->flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) && \
|
||||||
|
(((SDL_VideoSurface->flags & SDL_OPENGL ) == SDL_OPENGL ) || \
|
||||||
|
(strcmp(this->name, "windib") == 0)) \
|
||||||
|
)
|
||||||
#define DDRAW_FULLSCREEN() \
|
#define DDRAW_FULLSCREEN() \
|
||||||
( \
|
( \
|
||||||
((SDL_VideoSurface->flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) && \
|
((SDL_VideoSurface->flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) && \
|
||||||
|
@ -84,6 +90,11 @@ extern int SDL_resizing;
|
||||||
/* Flag -- the mouse is in relative motion mode */
|
/* Flag -- the mouse is in relative motion mode */
|
||||||
extern int mouse_relative;
|
extern int mouse_relative;
|
||||||
|
|
||||||
|
/* The GDI fullscreen mode currently active */
|
||||||
|
#ifndef NO_CHANGEDISPLAYSETTINGS
|
||||||
|
extern DEVMODE SDL_fullscreen_mode;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* This is really from SDL_dx5audio.c */
|
/* This is really from SDL_dx5audio.c */
|
||||||
extern void DX5_SoundFocus(HWND window);
|
extern void DX5_SoundFocus(HWND window);
|
||||||
|
|
||||||
|
|
|
@ -57,6 +57,9 @@ RECT SDL_bounds = {0, 0, 0, 0};
|
||||||
int SDL_resizing = 0;
|
int SDL_resizing = 0;
|
||||||
int mouse_relative = 0;
|
int mouse_relative = 0;
|
||||||
int posted = 0;
|
int posted = 0;
|
||||||
|
#ifndef NO_CHANGEDISPLAYSETTINGS
|
||||||
|
DEVMODE SDL_fullscreen_mode;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Functions called by the message processing function */
|
/* Functions called by the message processing function */
|
||||||
|
@ -67,6 +70,21 @@ void (*WIN_PaletteChanged)(_THIS, HWND window);
|
||||||
void (*WIN_SwapGamma)(_THIS);
|
void (*WIN_SwapGamma)(_THIS);
|
||||||
void (*WIN_WinPAINT)(_THIS, HDC hdc);
|
void (*WIN_WinPAINT)(_THIS, HDC hdc);
|
||||||
|
|
||||||
|
static void SDL_RestoreGameMode(void)
|
||||||
|
{
|
||||||
|
#ifndef NO_CHANGEDISPLAYSETTINGS
|
||||||
|
ShowWindow(SDL_Window, SW_RESTORE);
|
||||||
|
ChangeDisplaySettings(&SDL_fullscreen_mode, CDS_FULLSCREEN);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
static void SDL_RestoreDesktopMode(void)
|
||||||
|
{
|
||||||
|
#ifndef NO_CHANGEDISPLAYSETTINGS
|
||||||
|
ShowWindow(SDL_Window, SW_MINIMIZE);
|
||||||
|
ChangeDisplaySettings(NULL, 0);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef WM_MOUSELEAVE
|
#ifdef WM_MOUSELEAVE
|
||||||
/*
|
/*
|
||||||
Special code to handle mouse leave events - this sucks...
|
Special code to handle mouse leave events - this sucks...
|
||||||
|
@ -178,6 +196,9 @@ LONG CALLBACK WinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
}
|
}
|
||||||
if ( !(SDL_GetAppState()&SDL_APPINPUTFOCUS) ) {
|
if ( !(SDL_GetAppState()&SDL_APPINPUTFOCUS) ) {
|
||||||
WIN_SwapGamma(this);
|
WIN_SwapGamma(this);
|
||||||
|
if ( WINDIB_FULLSCREEN() ) {
|
||||||
|
SDL_RestoreGameMode();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
posted = SDL_PrivateAppActive(1, appstate);
|
posted = SDL_PrivateAppActive(1, appstate);
|
||||||
WIN_GetKeyboardState();
|
WIN_GetKeyboardState();
|
||||||
|
@ -192,6 +213,9 @@ LONG CALLBACK WinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
}
|
}
|
||||||
if ( SDL_GetAppState() & SDL_APPINPUTFOCUS ) {
|
if ( SDL_GetAppState() & SDL_APPINPUTFOCUS ) {
|
||||||
WIN_SwapGamma(this);
|
WIN_SwapGamma(this);
|
||||||
|
if ( WINDIB_FULLSCREEN() ) {
|
||||||
|
SDL_RestoreDesktopMode();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
posted = SDL_PrivateAppActive(0, appstate);
|
posted = SDL_PrivateAppActive(0, appstate);
|
||||||
}
|
}
|
||||||
|
|
|
@ -527,6 +527,7 @@ SDL_Surface *DIB_SetVideoMode(_THIS, SDL_Surface *current,
|
||||||
settings.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL;
|
settings.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL;
|
||||||
if ( ChangeDisplaySettings(&settings, CDS_FULLSCREEN) == DISP_CHANGE_SUCCESSFUL ) {
|
if ( ChangeDisplaySettings(&settings, CDS_FULLSCREEN) == DISP_CHANGE_SUCCESSFUL ) {
|
||||||
video->flags |= SDL_FULLSCREEN;
|
video->flags |= SDL_FULLSCREEN;
|
||||||
|
SDL_fullscreen_mode = settings;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* !NO_CHANGEDISPLAYSETTINGS */
|
#endif /* !NO_CHANGEDISPLAYSETTINGS */
|
||||||
|
|
|
@ -51,9 +51,6 @@ static char rcsid =
|
||||||
#include "SDL_dx5yuv_c.h"
|
#include "SDL_dx5yuv_c.h"
|
||||||
#include "SDL_wingl_c.h"
|
#include "SDL_wingl_c.h"
|
||||||
|
|
||||||
/* Function called to create a GL video mode - use the GDI driver, not DirectX */
|
|
||||||
extern SDL_Surface *DIB_SetVideoMode(_THIS, SDL_Surface *current,
|
|
||||||
int width, int height, int bpp, Uint32 flags);
|
|
||||||
|
|
||||||
/* DirectX function pointers for video and events */
|
/* DirectX function pointers for video and events */
|
||||||
HRESULT (WINAPI *DDrawCreate)( GUID FAR *lpGUID, LPDIRECTDRAW FAR *lplpDD, IUnknown FAR *pUnkOuter );
|
HRESULT (WINAPI *DDrawCreate)( GUID FAR *lpGUID, LPDIRECTDRAW FAR *lplpDD, IUnknown FAR *pUnkOuter );
|
||||||
|
@ -1078,6 +1075,7 @@ SDL_Surface *DX5_SetVideoMode(_THIS, SDL_Surface *current,
|
||||||
settings.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL;
|
settings.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL;
|
||||||
if ( ChangeDisplaySettings(&settings, CDS_FULLSCREEN) == DISP_CHANGE_SUCCESSFUL ) {
|
if ( ChangeDisplaySettings(&settings, CDS_FULLSCREEN) == DISP_CHANGE_SUCCESSFUL ) {
|
||||||
video->flags |= SDL_FULLSCREEN;
|
video->flags |= SDL_FULLSCREEN;
|
||||||
|
SDL_fullscreen_mode = settings;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue