1
0
mirror of https://github.com/XProger/OpenLara.git synced 2025-08-03 11:47:48 +02:00

SDL: Changed fullscreen toggle code for better code. (#175)

This commit is contained in:
vanfanel2
2019-02-27 19:41:36 +01:00
committed by Timur Gagiev
parent 38239b72c9
commit e4df7fed73

View File

@@ -91,7 +91,6 @@ SDL_Renderer *sdl_renderer;
SDL_DisplayMode sdl_displaymode; SDL_DisplayMode sdl_displaymode;
bool fullscreen; bool fullscreen;
bool l_alt, k_enter; // Is left ALT pressed? (For fullscreen toggle purposes)
vec2 joyL, joyR; vec2 joyL, joyR;
@@ -103,7 +102,17 @@ void osJoyVibrate(int index, float L, float R) {
// TODO // TODO
} }
bool isKeyPressed (SDL_Scancode scancode) {
const Uint8 *state = SDL_GetKeyboardState(NULL);
if (state[scancode]) {
return true;
}
return false;
}
#ifndef _GAPI_GLES
void toggleFullscreen () { void toggleFullscreen () {
Uint32 flags = 0; Uint32 flags = 0;
fullscreen = !fullscreen; fullscreen = !fullscreen;
@@ -116,6 +125,7 @@ void toggleFullscreen () {
Core::width = fullscreen ? sdl_displaymode.w : WIN_W; Core::width = fullscreen ? sdl_displaymode.w : WIN_W;
Core::height = fullscreen ? sdl_displaymode.h : WIN_H; Core::height = fullscreen ? sdl_displaymode.h : WIN_H;
} }
#endif
InputKey codeToInputKey(int code) { InputKey codeToInputKey(int code) {
switch (code) { switch (code) {
@@ -126,21 +136,13 @@ InputKey codeToInputKey(int code) {
case SDL_SCANCODE_DOWN : return ikDown; case SDL_SCANCODE_DOWN : return ikDown;
case SDL_SCANCODE_SPACE : return ikSpace; case SDL_SCANCODE_SPACE : return ikSpace;
case SDL_SCANCODE_TAB : return ikTab; case SDL_SCANCODE_TAB : return ikTab;
case SDL_SCANCODE_RETURN : return ikEnter;
case SDL_SCANCODE_RETURN : {
k_enter = !k_enter;
if (l_alt && k_enter) {
toggleFullscreen();
}
else return ikEnter;
}
case SDL_SCANCODE_ESCAPE : return ikEscape; case SDL_SCANCODE_ESCAPE : return ikEscape;
case SDL_SCANCODE_LSHIFT : case SDL_SCANCODE_LSHIFT :
case SDL_SCANCODE_RSHIFT : return ikShift; case SDL_SCANCODE_RSHIFT : return ikShift;
case SDL_SCANCODE_LCTRL : case SDL_SCANCODE_LCTRL :
case SDL_SCANCODE_RCTRL : return ikCtrl; case SDL_SCANCODE_RCTRL : return ikCtrl;
case SDL_SCANCODE_LALT : { l_alt = !l_alt; } // We toggle l_alt being pushed. case SDL_SCANCODE_LALT :
case SDL_SCANCODE_RALT : return ikAlt; case SDL_SCANCODE_RALT : return ikAlt;
case SDL_SCANCODE_0 : return ik0; case SDL_SCANCODE_0 : return ik0;
case SDL_SCANCODE_1 : return ik1; case SDL_SCANCODE_1 : return ik1;
@@ -286,8 +288,6 @@ bool inputInit() {
joyL = joyR = vec2(0); joyL = joyR = vec2(0);
sdl_numjoysticks = SDL_NumJoysticks(); sdl_numjoysticks = SDL_NumJoysticks();
sdl_numjoysticks = (sdl_numjoysticks < MAX_JOYS )? sdl_numjoysticks : MAX_JOYS; sdl_numjoysticks = (sdl_numjoysticks < MAX_JOYS )? sdl_numjoysticks : MAX_JOYS;
l_alt = false;
k_enter = false;
for (index = 0; index < MAX_JOYS; index++) for (index = 0; index < MAX_JOYS; index++)
sdl_joysticks[index] = NULL; sdl_joysticks[index] = NULL;
@@ -337,6 +337,15 @@ void inputUpdate() {
if (key != ikNone) { if (key != ikNone) {
Input::setDown(key, 1); Input::setDown(key, 1);
} }
#ifndef _GAPI_GLES
if (scancode == SDL_SCANCODE_RETURN) {
if (isKeyPressed(SDL_SCANCODE_LALT) && isKeyPressed(SDL_SCANCODE_RETURN)) {
toggleFullscreen();
}
}
#endif
break; break;
} }
case SDL_KEYUP: { case SDL_KEYUP: {