1
0
mirror of https://github.com/XProger/OpenLara.git synced 2025-04-20 19:11:50 +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;
bool fullscreen;
bool l_alt, k_enter; // Is left ALT pressed? (For fullscreen toggle purposes)
vec2 joyL, joyR;
@ -103,7 +102,17 @@ void osJoyVibrate(int index, float L, float R) {
// TODO
}
bool isKeyPressed (SDL_Scancode scancode) {
const Uint8 *state = SDL_GetKeyboardState(NULL);
if (state[scancode]) {
return true;
}
return false;
}
#ifndef _GAPI_GLES
void toggleFullscreen () {
Uint32 flags = 0;
fullscreen = !fullscreen;
@ -116,6 +125,7 @@ void toggleFullscreen () {
Core::width = fullscreen ? sdl_displaymode.w : WIN_W;
Core::height = fullscreen ? sdl_displaymode.h : WIN_H;
}
#endif
InputKey codeToInputKey(int code) {
switch (code) {
@ -126,21 +136,13 @@ InputKey codeToInputKey(int code) {
case SDL_SCANCODE_DOWN : return ikDown;
case SDL_SCANCODE_SPACE : return ikSpace;
case SDL_SCANCODE_TAB : return ikTab;
case SDL_SCANCODE_RETURN : {
k_enter = !k_enter;
if (l_alt && k_enter) {
toggleFullscreen();
}
else return ikEnter;
}
case SDL_SCANCODE_RETURN : return ikEnter;
case SDL_SCANCODE_ESCAPE : return ikEscape;
case SDL_SCANCODE_LSHIFT :
case SDL_SCANCODE_RSHIFT : return ikShift;
case SDL_SCANCODE_LCTRL :
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_0 : return ik0;
case SDL_SCANCODE_1 : return ik1;
@ -286,8 +288,6 @@ bool inputInit() {
joyL = joyR = vec2(0);
sdl_numjoysticks = SDL_NumJoysticks();
sdl_numjoysticks = (sdl_numjoysticks < MAX_JOYS )? sdl_numjoysticks : MAX_JOYS;
l_alt = false;
k_enter = false;
for (index = 0; index < MAX_JOYS; index++)
sdl_joysticks[index] = NULL;
@ -337,6 +337,15 @@ void inputUpdate() {
if (key != ikNone) {
Input::setDown(key, 1);
}
#ifndef _GAPI_GLES
if (scancode == SDL_SCANCODE_RETURN) {
if (isKeyPressed(SDL_SCANCODE_LALT) && isKeyPressed(SDL_SCANCODE_RETURN)) {
toggleFullscreen();
}
}
#endif
break;
}
case SDL_KEYUP: {