Browse Source

engine: platform: sdl: merge required SDL2 platform changes for new Android port from @Velaron's tree

pull/2/head
Alibek Omarov 2 years ago
parent
commit
1fdf6180e6
  1. 15
      engine/platform/sdl/events.c
  2. 2
      engine/platform/sdl/sys_sdl.c
  3. 7
      engine/platform/sdl/vid_sdl.c

15
engine/platform/sdl/events.c

@ -150,6 +150,13 @@ static void SDLash_KeyEvent( SDL_KeyboardEvent key )
#endif #endif
qboolean numLock = SDL_GetModState() & KMOD_NUM; qboolean numLock = SDL_GetModState() & KMOD_NUM;
#if XASH_ANDROID
if( keynum == SDL_SCANCODE_VOLUMEUP || keynum == SDL_SCANCODE_VOLUMEDOWN )
{
host.force_draw_version_time = host.realtime + FORCE_DRAW_VERSION_TIME;
}
#endif
if( SDL_IsTextInputActive() && down && cls.key_dest != key_game ) if( SDL_IsTextInputActive() && down && cls.key_dest != key_game )
{ {
if( SDL_GetModState() & KMOD_CTRL ) if( SDL_GetModState() & KMOD_CTRL )
@ -202,6 +209,7 @@ static void SDLash_KeyEvent( SDL_KeyboardEvent key )
case SDL_SCANCODE_MINUS: keynum = '-'; break; case SDL_SCANCODE_MINUS: keynum = '-'; break;
case SDL_SCANCODE_TAB: keynum = K_TAB; break; case SDL_SCANCODE_TAB: keynum = K_TAB; break;
case SDL_SCANCODE_RETURN: keynum = K_ENTER; break; case SDL_SCANCODE_RETURN: keynum = K_ENTER; break;
case SDL_SCANCODE_AC_BACK:
case SDL_SCANCODE_ESCAPE: keynum = K_ESCAPE; break; case SDL_SCANCODE_ESCAPE: keynum = K_ESCAPE; break;
case SDL_SCANCODE_SPACE: keynum = K_SPACE; break; case SDL_SCANCODE_SPACE: keynum = K_SPACE; break;
case SDL_SCANCODE_BACKSPACE: keynum = K_BACKSPACE; break; case SDL_SCANCODE_BACKSPACE: keynum = K_BACKSPACE; break;
@ -261,6 +269,7 @@ static void SDLash_KeyEvent( SDL_KeyboardEvent key )
case SDL_SCANCODE_VOLUMEDOWN: case SDL_SCANCODE_VOLUMEDOWN:
case SDL_SCANCODE_BRIGHTNESSDOWN: case SDL_SCANCODE_BRIGHTNESSDOWN:
case SDL_SCANCODE_BRIGHTNESSUP: case SDL_SCANCODE_BRIGHTNESSUP:
case SDL_SCANCODE_SELECT:
return; return;
#endif // SDL_VERSION_ATLEAST( 2, 0, 0 ) #endif // SDL_VERSION_ATLEAST( 2, 0, 0 )
case SDL_SCANCODE_UNKNOWN: case SDL_SCANCODE_UNKNOWN:
@ -682,7 +691,11 @@ void Platform_RunEvents( void )
void* Platform_GetNativeObject( const char *name ) void* Platform_GetNativeObject( const char *name )
{ {
return NULL; // SDL don't have it #if XASH_ANDROID
return Android_GetNativeObject( name );
#else
return NULL;
#endif
} }
/* /*

2
engine/platform/sdl/sys_sdl.c

@ -71,6 +71,8 @@ void Platform_Init( void )
PSVita_Init(); PSVita_Init();
#elif XASH_NSWITCH #elif XASH_NSWITCH
NSwitch_Init(); NSwitch_Init();
#elif XASH_ANDROID
Android_Init();
#endif #endif
#endif // XASH_POSIX #endif // XASH_POSIX

7
engine/platform/sdl/vid_sdl.c

@ -628,6 +628,7 @@ qboolean VID_CreateWindow( int width, int height, qboolean fullscreen )
if( glw_state.software ) if( glw_state.software )
wndFlags &= ~SDL_WINDOW_OPENGL; wndFlags &= ~SDL_WINDOW_OPENGL;
#if !XASH_MOBILE_PLATFORM
if ( !fullscreen ) if ( !fullscreen )
{ {
SDL_Rect r; SDL_Rect r;
@ -663,6 +664,10 @@ qboolean VID_CreateWindow( int width, int height, qboolean fullscreen )
wndFlags |= SDL_WINDOW_FULLSCREEN | SDL_WINDOW_BORDERLESS | SDL_WINDOW_INPUT_GRABBED; wndFlags |= SDL_WINDOW_FULLSCREEN | SDL_WINDOW_BORDERLESS | SDL_WINDOW_INPUT_GRABBED;
xpos = ypos = 0; xpos = ypos = 0;
} }
#else
wndFlags |= SDL_WINDOW_FULLSCREEN | SDL_WINDOW_FULLSCREEN_DESKTOP | SDL_WINDOW_INPUT_GRABBED;
xpos = ypos = SDL_WINDOWPOS_UNDEFINED;
#endif
while( glw_state.safe >= SAFE_NO && glw_state.safe < SAFE_LAST ) while( glw_state.safe >= SAFE_NO && glw_state.safe < SAFE_LAST )
{ {
@ -690,6 +695,7 @@ qboolean VID_CreateWindow( int width, int height, qboolean fullscreen )
return false; return false;
} }
#if !XASH_MOBILE_PLATFORM
if( fullscreen ) if( fullscreen )
{ {
if( !VID_SetScreenResolution( width, height ) ) if( !VID_SetScreenResolution( width, height ) )
@ -701,6 +707,7 @@ qboolean VID_CreateWindow( int width, int height, qboolean fullscreen )
{ {
VID_RestoreScreenResolution(); VID_RestoreScreenResolution();
} }
#endif
#if XASH_WIN32 // ICO support only for Win32 #if XASH_WIN32 // ICO support only for Win32
if(( localIcoPath = FS_GetDiskPath( GI->iconpath, true ))) if(( localIcoPath = FS_GetDiskPath( GI->iconpath, true )))

Loading…
Cancel
Save