mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-27 22:52:41 +00:00
sdl2: support windowed fullscreen as default
This commit is contained in:
parent
715a12ff08
commit
3b137d094a
1 changed files with 35 additions and 15 deletions
|
@ -176,8 +176,9 @@ static INT32 windowedModes[MAXWINMODES][2] =
|
||||||
|
|
||||||
static void Impl_VideoSetupSDLBuffer(void);
|
static void Impl_VideoSetupSDLBuffer(void);
|
||||||
static void Impl_VideoSetupBuffer(void);
|
static void Impl_VideoSetupBuffer(void);
|
||||||
|
static SDL_bool Impl_CreateWindow(SDL_bool fullscreen);
|
||||||
|
|
||||||
static void SDLSetMode(INT32 width, INT32 height, INT32 bpp, Uint32 flags)
|
static void SDLSetMode(INT32 width, INT32 height, SDL_bool fullscreen)
|
||||||
{
|
{
|
||||||
#if 0
|
#if 0
|
||||||
const char *SDLVD = I_GetEnv("SDL_VIDEODRIVER");
|
const char *SDLVD = I_GetEnv("SDL_VIDEODRIVER");
|
||||||
|
@ -199,6 +200,20 @@ static void SDLSetMode(INT32 width, INT32 height, INT32 bpp, Uint32 flags)
|
||||||
int bmask;
|
int bmask;
|
||||||
int amask;
|
int amask;
|
||||||
|
|
||||||
|
if (fullscreen)
|
||||||
|
{
|
||||||
|
SDL_DestroyRenderer(renderer);
|
||||||
|
renderer = NULL;
|
||||||
|
SDL_DestroyWindow(window);
|
||||||
|
window = NULL;
|
||||||
|
Impl_CreateWindow(fullscreen);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SDL_SetWindowSize(window, width, height);
|
||||||
|
SDL_SetWindowPosition(window, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED);
|
||||||
|
}
|
||||||
|
|
||||||
// Set up Texture
|
// Set up Texture
|
||||||
realwidth = width;
|
realwidth = width;
|
||||||
realheight = height;
|
realheight = height;
|
||||||
|
@ -225,9 +240,6 @@ static void SDLSetMode(INT32 width, INT32 height, INT32 bpp, Uint32 flags)
|
||||||
rmask = 0x000000FF;
|
rmask = 0x000000FF;
|
||||||
#endif
|
#endif
|
||||||
vidSurface = SDL_CreateRGBSurface(0, width, height, 32, rmask, gmask, bmask, amask);
|
vidSurface = SDL_CreateRGBSurface(0, width, height, 32, rmask, gmask, bmask, amask);
|
||||||
|
|
||||||
SDL_SetWindowSize(window, width, height);
|
|
||||||
SDL_SetWindowPosition(window, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -1099,6 +1111,7 @@ void I_UpdateNoBlit(void)
|
||||||
return;
|
return;
|
||||||
if (exposevideo)
|
if (exposevideo)
|
||||||
{
|
{
|
||||||
|
SDL_RenderClear(renderer);
|
||||||
SDL_RenderCopy(renderer, texture, NULL, NULL);
|
SDL_RenderCopy(renderer, texture, NULL, NULL);
|
||||||
SDL_RenderPresent(renderer);
|
SDL_RenderPresent(renderer);
|
||||||
}
|
}
|
||||||
|
@ -1466,6 +1479,7 @@ INT32 VID_GetModeForSize(INT32 w, INT32 h)
|
||||||
void VID_PrepareModeList(void)
|
void VID_PrepareModeList(void)
|
||||||
{
|
{
|
||||||
// Under SDL2, we just use the windowed modes list, and scale in windowed fullscreen.
|
// Under SDL2, we just use the windowed modes list, and scale in windowed fullscreen.
|
||||||
|
allow_fullscreen = true;
|
||||||
#if 0
|
#if 0
|
||||||
INT32 i;
|
INT32 i;
|
||||||
|
|
||||||
|
@ -1533,7 +1547,7 @@ INT32 VID_SetMode(INT32 modeNum)
|
||||||
|
|
||||||
vid.modenum = modeNum; //VID_GetModeForSize(vidSurface->w,vidSurface->h);
|
vid.modenum = modeNum; //VID_GetModeForSize(vidSurface->w,vidSurface->h);
|
||||||
|
|
||||||
SDLSetMode(windowedModes[modeNum][0], windowedModes[modeNum][1], 16, 0);
|
SDLSetMode(windowedModes[modeNum][0], windowedModes[modeNum][1], USE_FULLSCREEN);
|
||||||
|
|
||||||
if (render_soft == rendermode)
|
if (render_soft == rendermode)
|
||||||
{
|
{
|
||||||
|
@ -1655,14 +1669,23 @@ INT32 VID_SetMode(INT32 modeNum)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Impl_CreateWindow(void)
|
static SDL_bool Impl_CreateWindow(SDL_bool fullscreen)
|
||||||
{
|
{
|
||||||
|
int flags = 0;
|
||||||
if (window != NULL)
|
if (window != NULL)
|
||||||
{
|
{
|
||||||
return;
|
return SDL_FALSE;
|
||||||
}
|
}
|
||||||
window = SDL_CreateWindow("SRB2", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, BASEVIDWIDTH, BASEVIDHEIGHT, 0);
|
|
||||||
|
if (fullscreen)
|
||||||
|
{
|
||||||
|
flags = SDL_WINDOW_FULLSCREEN_DESKTOP;
|
||||||
|
}
|
||||||
|
|
||||||
|
window = SDL_CreateWindow("SRB2", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
|
||||||
|
BASEVIDWIDTH, BASEVIDHEIGHT, flags);
|
||||||
renderer = SDL_CreateRenderer(window, -1, 0);
|
renderer = SDL_CreateRenderer(window, -1, 0);
|
||||||
|
return SDL_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Impl_SetWindowName(const char *title)
|
static void Impl_SetWindowName(const char *title)
|
||||||
|
@ -1791,7 +1814,8 @@ void I_StartupGraphics(void)
|
||||||
VID_Command_ModeList_f();
|
VID_Command_ModeList_f();
|
||||||
|
|
||||||
// Create window
|
// Create window
|
||||||
Impl_CreateWindow();
|
Impl_CreateWindow(USE_FULLSCREEN);
|
||||||
|
Impl_SetWindowName("SRB2");
|
||||||
|
|
||||||
vid.buffer = NULL; // For software mode
|
vid.buffer = NULL; // For software mode
|
||||||
vid.width = BASEVIDWIDTH; // Default size for startup
|
vid.width = BASEVIDWIDTH; // Default size for startup
|
||||||
|
@ -1804,13 +1828,9 @@ void I_StartupGraphics(void)
|
||||||
#ifdef HAVE_TTF
|
#ifdef HAVE_TTF
|
||||||
I_ShutdownTTF();
|
I_ShutdownTTF();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Window title
|
|
||||||
Impl_SetWindowName("SRB2: Starting up");
|
|
||||||
|
|
||||||
// Window icon
|
// Window icon
|
||||||
#ifdef HAVE_IMAGE
|
#ifdef HAVE_IMAGE
|
||||||
//icoSurface = IMG_ReadXPMFromArray(SDL_icon_xpm);
|
icoSurface = IMG_ReadXPMFromArray(SDL_icon_xpm);
|
||||||
#endif
|
#endif
|
||||||
Impl_SetWindowIcon();
|
Impl_SetWindowIcon();
|
||||||
|
|
||||||
|
@ -1874,7 +1894,7 @@ void I_StartupGraphics(void)
|
||||||
#if 0
|
#if 0
|
||||||
vid.width = BASEVIDWIDTH;
|
vid.width = BASEVIDWIDTH;
|
||||||
vid.height = BASEVIDHEIGHT;
|
vid.height = BASEVIDHEIGHT;
|
||||||
SDLSetMode(vid.width, vid.height, BitsPerPixel, surfaceFlagsW);
|
SDLSetMode(vid.width, vid.height, USE_FULLSCREEN);
|
||||||
if (!vidSurface)
|
if (!vidSurface)
|
||||||
{
|
{
|
||||||
CONS_Printf(M_GetText("Could not set vidmode: %s\n") ,SDL_GetError());
|
CONS_Printf(M_GetText("Could not set vidmode: %s\n") ,SDL_GetError());
|
||||||
|
|
Loading…
Reference in a new issue