mirror of https://github.com/FWGS/xash3d-fwgs
Merge c2c76ea468
into c2da125358
This commit is contained in:
commit
2dcbafa31c
|
@ -32,10 +32,9 @@ jobs:
|
||||||
# targetos: android
|
# targetos: android
|
||||||
# targetarch: 64
|
# targetarch: 64
|
||||||
|
|
||||||
# - os: ubuntu-20.04
|
- os: ubuntu-20.04
|
||||||
# targetos: motomagx
|
targetos: motomagx
|
||||||
# targetarch: armv6
|
targetarch: armv6
|
||||||
|
|
||||||
- os: ubuntu-latest
|
- os: ubuntu-latest
|
||||||
targetos: nswitch
|
targetos: nswitch
|
||||||
targetarch: arm64
|
targetarch: arm64
|
||||||
|
|
|
@ -1160,7 +1160,7 @@ void Touch_Init( void )
|
||||||
#if SDL_VERSION_ATLEAST( 2, 0, 10 )
|
#if SDL_VERSION_ATLEAST( 2, 0, 10 )
|
||||||
SDL_SetHint( SDL_HINT_MOUSE_TOUCH_EVENTS, "0" );
|
SDL_SetHint( SDL_HINT_MOUSE_TOUCH_EVENTS, "0" );
|
||||||
SDL_SetHint( SDL_HINT_TOUCH_MOUSE_EVENTS, "0" );
|
SDL_SetHint( SDL_HINT_TOUCH_MOUSE_EVENTS, "0" );
|
||||||
#elif defined(SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH)
|
#elif defined( SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH )
|
||||||
SDL_SetHint( SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH, "1" );
|
SDL_SetHint( SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH, "1" );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -9,13 +9,13 @@ typedef struct vidmode_s
|
||||||
int height;
|
int height;
|
||||||
} vidmode_t;
|
} vidmode_t;
|
||||||
|
|
||||||
typedef enum window_mode_e
|
enum window_mode_e
|
||||||
{
|
{
|
||||||
WINDOW_MODE_WINDOWED = 0,
|
WINDOW_MODE_WINDOWED = 0,
|
||||||
WINDOW_MODE_FULLSCREEN,
|
WINDOW_MODE_FULLSCREEN,
|
||||||
WINDOW_MODE_BORDERLESS,
|
WINDOW_MODE_BORDERLESS,
|
||||||
WINDOW_MODE_COUNT,
|
WINDOW_MODE_COUNT,
|
||||||
} window_mode_t;
|
};
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
|
|
@ -21,9 +21,9 @@ GNU General Public License for more details.
|
||||||
#include "protocol.h" // MAX_CLIENTS
|
#include "protocol.h" // MAX_CLIENTS
|
||||||
#include "sound.h"
|
#include "sound.h"
|
||||||
|
|
||||||
typedef struct OpusCustomEncoder OpusCustomEncoder;
|
struct OpusCustomEncoder;
|
||||||
typedef struct OpusCustomDecoder OpusCustomDecoder;
|
struct OpusCustomDecoder;
|
||||||
typedef struct OpusCustomMode OpusCustomMode;
|
struct OpusCustomMode;
|
||||||
|
|
||||||
#define VOICE_LOOPBACK_INDEX (-2)
|
#define VOICE_LOOPBACK_INDEX (-2)
|
||||||
#define VOICE_LOCALCLIENT_INDEX (-1)
|
#define VOICE_LOCALCLIENT_INDEX (-1)
|
||||||
|
@ -60,9 +60,9 @@ typedef struct voice_state_s
|
||||||
voice_status_t players_status[MAX_CLIENTS];
|
voice_status_t players_status[MAX_CLIENTS];
|
||||||
|
|
||||||
// opus stuff
|
// opus stuff
|
||||||
OpusCustomMode *custom_mode;
|
struct OpusCustomMode *custom_mode;
|
||||||
OpusCustomEncoder *encoder;
|
struct OpusCustomEncoder *encoder;
|
||||||
OpusCustomDecoder *decoder;
|
struct OpusCustomDecoder *decoder;
|
||||||
|
|
||||||
// audio info
|
// audio info
|
||||||
uint width;
|
uint width;
|
||||||
|
|
|
@ -406,7 +406,7 @@ static void Sys_Crash( int signal, siginfo_t *si, void *context)
|
||||||
pc = (void*)ucontext->uc_mcontext.pc;
|
pc = (void*)ucontext->uc_mcontext.pc;
|
||||||
bp = (void*)ucontext->uc_mcontext.regs[29];
|
bp = (void*)ucontext->uc_mcontext.regs[29];
|
||||||
sp = (void*)ucontext->uc_mcontext.sp;
|
sp = (void*)ucontext->uc_mcontext.sp;
|
||||||
#elif XASH_ARM
|
#elif XASH_ARM && !XASH_MAGX
|
||||||
pc = (void*)ucontext->uc_mcontext.arm_pc;
|
pc = (void*)ucontext->uc_mcontext.arm_pc;
|
||||||
bp = (void*)ucontext->uc_mcontext.arm_fp;
|
bp = (void*)ucontext->uc_mcontext.arm_fp;
|
||||||
sp = (void*)ucontext->uc_mcontext.arm_sp;
|
sp = (void*)ucontext->uc_mcontext.arm_sp;
|
||||||
|
|
|
@ -209,7 +209,9 @@ 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;
|
||||||
|
#if SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
case SDL_SCANCODE_AC_BACK:
|
case SDL_SCANCODE_AC_BACK:
|
||||||
|
#endif
|
||||||
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;
|
||||||
|
@ -259,9 +261,9 @@ static void SDLash_KeyEvent( SDL_KeyboardEvent key )
|
||||||
host.force_draw_version_time = host.realtime + FORCE_DRAW_VERSION_TIME;
|
host.force_draw_version_time = host.realtime + FORCE_DRAW_VERSION_TIME;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#if SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
case SDL_SCANCODE_PAUSE: keynum = K_PAUSE; break;
|
case SDL_SCANCODE_PAUSE: keynum = K_PAUSE; break;
|
||||||
case SDL_SCANCODE_SCROLLLOCK: keynum = K_SCROLLOCK; break;
|
case SDL_SCANCODE_SCROLLLOCK: keynum = K_SCROLLOCK; break;
|
||||||
#if SDL_VERSION_ATLEAST( 2, 0, 0 )
|
|
||||||
case SDL_SCANCODE_APPLICATION: keynum = K_WIN; break; // (compose key) ???
|
case SDL_SCANCODE_APPLICATION: keynum = K_WIN; break; // (compose key) ???
|
||||||
// don't console spam on known functional buttons, not used in engine
|
// don't console spam on known functional buttons, not used in engine
|
||||||
case SDL_SCANCODE_MUTE:
|
case SDL_SCANCODE_MUTE:
|
||||||
|
@ -305,8 +307,10 @@ static void SDLash_MouseEvent( SDL_MouseButtonEvent button )
|
||||||
|
|
||||||
if( button.state == SDL_RELEASED )
|
if( button.state == SDL_RELEASED )
|
||||||
down = 0;
|
down = 0;
|
||||||
|
#if SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
else if( button.clicks >= 2 )
|
else if( button.clicks >= 2 )
|
||||||
down = 2; // special state for double-click in UI
|
down = 2; // special state for double-click in UI
|
||||||
|
#endif
|
||||||
else
|
else
|
||||||
down = 1;
|
down = 1;
|
||||||
|
|
||||||
|
@ -669,7 +673,7 @@ static void SDLash_EventFilter( SDL_Event *event )
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
case SDL_VIDEORESIZE:
|
case SDL_VIDEORESIZE:
|
||||||
VID_SaveWindowSize( event->resize.w, event->resize.h );
|
VID_SaveWindowSize( event->resize.w, event->resize.h, false );
|
||||||
break;
|
break;
|
||||||
case SDL_ACTIVEEVENT:
|
case SDL_ACTIVEEVENT:
|
||||||
SDLash_ActiveEvent( event->active.gain );
|
SDLash_ActiveEvent( event->active.gain );
|
||||||
|
|
|
@ -45,8 +45,9 @@ so it can unlock and free the data block after it has been played.
|
||||||
=======================================================================
|
=======================================================================
|
||||||
*/
|
*/
|
||||||
static int sdl_dev;
|
static int sdl_dev;
|
||||||
|
#if SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
static SDL_AudioDeviceID in_dev = 0;
|
static SDL_AudioDeviceID in_dev = 0;
|
||||||
static SDL_AudioFormat sdl_format;
|
#endif
|
||||||
static char sdl_backend_name[32];
|
static char sdl_backend_name[32];
|
||||||
|
|
||||||
static void SDL_SoundCallback( void *userdata, Uint8 *stream, int len )
|
static void SDL_SoundCallback( void *userdata, Uint8 *stream, int len )
|
||||||
|
@ -100,10 +101,12 @@ qboolean SNDDMA_Init( void )
|
||||||
SDL_AudioSpec desired, obtained;
|
SDL_AudioSpec desired, obtained;
|
||||||
int samplecount;
|
int samplecount;
|
||||||
|
|
||||||
|
#if SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
// even if we don't have PA
|
// even if we don't have PA
|
||||||
// we still can safely set env variables
|
// we still can safely set env variables
|
||||||
SDL_setenv( "PULSE_PROP_application.name", GI->title, 1 );
|
SDL_setenv( "PULSE_PROP_application.name", GI->title, 1 );
|
||||||
SDL_setenv( "PULSE_PROP_media.role", "game", 1 );
|
SDL_setenv( "PULSE_PROP_media.role", "game", 1 );
|
||||||
|
#endif
|
||||||
|
|
||||||
if( SDL_Init( SDL_INIT_AUDIO ))
|
if( SDL_Init( SDL_INIT_AUDIO ))
|
||||||
{
|
{
|
||||||
|
@ -148,8 +151,6 @@ qboolean SNDDMA_Init( void )
|
||||||
dma.buffer = Z_Calloc( dma.samples * 2 );
|
dma.buffer = Z_Calloc( dma.samples * 2 );
|
||||||
dma.samplepos = 0;
|
dma.samplepos = 0;
|
||||||
|
|
||||||
sdl_format = obtained.format;
|
|
||||||
|
|
||||||
Con_Printf( "Using SDL audio driver: %s @ %d Hz\n", SDL_GetCurrentAudioDriver( ), obtained.freq );
|
Con_Printf( "Using SDL audio driver: %s @ %d Hz\n", SDL_GetCurrentAudioDriver( ), obtained.freq );
|
||||||
Q_snprintf( sdl_backend_name, sizeof( sdl_backend_name ), "SDL (%s)", SDL_GetCurrentAudioDriver( ));
|
Q_snprintf( sdl_backend_name, sizeof( sdl_backend_name ), "SDL (%s)", SDL_GetCurrentAudioDriver( ));
|
||||||
dma.initialized = true;
|
dma.initialized = true;
|
||||||
|
@ -263,6 +264,7 @@ VoiceCapture_Init
|
||||||
*/
|
*/
|
||||||
qboolean VoiceCapture_Init( void )
|
qboolean VoiceCapture_Init( void )
|
||||||
{
|
{
|
||||||
|
#if SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
SDL_AudioSpec wanted, spec;
|
SDL_AudioSpec wanted, spec;
|
||||||
|
|
||||||
if( !SDLash_IsAudioError( in_dev ))
|
if( !SDLash_IsAudioError( in_dev ))
|
||||||
|
@ -270,7 +272,7 @@ qboolean VoiceCapture_Init( void )
|
||||||
VoiceCapture_Shutdown();
|
VoiceCapture_Shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_zero( wanted );
|
memset( &wanted, 0, sizeof( wanted ));
|
||||||
wanted.freq = voice.samplerate;
|
wanted.freq = voice.samplerate;
|
||||||
wanted.format = AUDIO_S16LSB;
|
wanted.format = AUDIO_S16LSB;
|
||||||
wanted.channels = VOICE_PCM_CHANNELS;
|
wanted.channels = VOICE_PCM_CHANNELS;
|
||||||
|
@ -287,6 +289,9 @@ qboolean VoiceCapture_Init( void )
|
||||||
|
|
||||||
Con_Printf( S_NOTE "VoiceCapture_Init: capture device creation success (%i: %s)\n", in_dev, SDL_GetAudioDeviceName( in_dev, SDL_TRUE ) );
|
Con_Printf( S_NOTE "VoiceCapture_Init: capture device creation success (%i: %s)\n", in_dev, SDL_GetAudioDeviceName( in_dev, SDL_TRUE ) );
|
||||||
return true;
|
return true;
|
||||||
|
#else // SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
|
return false;
|
||||||
|
#endif // SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -296,11 +301,15 @@ VoiceCapture_Activate
|
||||||
*/
|
*/
|
||||||
qboolean VoiceCapture_Activate( qboolean activate )
|
qboolean VoiceCapture_Activate( qboolean activate )
|
||||||
{
|
{
|
||||||
|
#if SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
if( SDLash_IsAudioError( in_dev ))
|
if( SDLash_IsAudioError( in_dev ))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
SDL_PauseAudioDevice( in_dev, activate ? SDL_FALSE : SDL_TRUE );
|
SDL_PauseAudioDevice( in_dev, activate ? SDL_FALSE : SDL_TRUE );
|
||||||
return true;
|
return true;
|
||||||
|
#else // SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
|
return false;
|
||||||
|
#endif // SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -310,6 +319,7 @@ VoiceCapture_Lock
|
||||||
*/
|
*/
|
||||||
qboolean VoiceCapture_Lock( qboolean lock )
|
qboolean VoiceCapture_Lock( qboolean lock )
|
||||||
{
|
{
|
||||||
|
#if SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
if( SDLash_IsAudioError( in_dev ))
|
if( SDLash_IsAudioError( in_dev ))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -317,6 +327,9 @@ qboolean VoiceCapture_Lock( qboolean lock )
|
||||||
else SDL_UnlockAudioDevice( in_dev );
|
else SDL_UnlockAudioDevice( in_dev );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
#else // SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
|
return false;
|
||||||
|
#endif // SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -326,10 +339,14 @@ VoiceCapture_Shutdown
|
||||||
*/
|
*/
|
||||||
void VoiceCapture_Shutdown( void )
|
void VoiceCapture_Shutdown( void )
|
||||||
{
|
{
|
||||||
|
#if SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
if( SDLash_IsAudioError( in_dev ))
|
if( SDLash_IsAudioError( in_dev ))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
SDL_CloseAudioDevice( in_dev );
|
SDL_CloseAudioDevice( in_dev );
|
||||||
|
#else // SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
|
return false;
|
||||||
|
#endif // SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // XASH_SOUND == SOUND_SDL
|
#endif // XASH_SOUND == SOUND_SDL
|
||||||
|
|
|
@ -699,7 +699,7 @@ static qboolean VID_CreateWindowWithSafeGL( const char *wndname, int xpos, int y
|
||||||
#if SDL_VERSION_ATLEAST( 2, 0, 0 )
|
#if SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
host.hWnd = SDL_CreateWindow( wndname, xpos, ypos, w, h, flags );
|
host.hWnd = SDL_CreateWindow( wndname, xpos, ypos, w, h, flags );
|
||||||
#else
|
#else
|
||||||
host.hWnd = sw.surf = SDL_SetVideoMode( width, height, 16, flags );
|
host.hWnd = sw.surf = SDL_SetVideoMode( w, h, 16, flags );
|
||||||
#endif
|
#endif
|
||||||
// we have window, exit loop
|
// we have window, exit loop
|
||||||
if( host.hWnd )
|
if( host.hWnd )
|
||||||
|
@ -732,13 +732,16 @@ VID_CreateWindow
|
||||||
qboolean VID_CreateWindow( int width, int height, window_mode_t window_mode )
|
qboolean VID_CreateWindow( int width, int height, window_mode_t window_mode )
|
||||||
{
|
{
|
||||||
string wndname;
|
string wndname;
|
||||||
#if SDL_VERSION_ATLEAST( 2, 0, 0 )
|
|
||||||
qboolean maximized = vid_maximized.value != 0.0f;
|
|
||||||
Uint32 wndFlags = SDL_WINDOW_SHOWN | SDL_WINDOW_MOUSE_FOCUS;
|
|
||||||
int xpos, ypos;
|
int xpos, ypos;
|
||||||
|
Uint32 wndFlags;
|
||||||
|
qboolean maximized;
|
||||||
|
|
||||||
Q_strncpy( wndname, GI->title, sizeof( wndname ));
|
Q_strncpy( wndname, GI->title, sizeof( wndname ));
|
||||||
|
|
||||||
|
#if SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
|
maximized = vid_maximized.value != 0.0f;
|
||||||
|
SetBits( wndFlags, SDL_WINDOW_SHOWN | SDL_WINDOW_MOUSE_FOCUS );
|
||||||
|
|
||||||
if( vid_highdpi.value )
|
if( vid_highdpi.value )
|
||||||
SetBits( wndFlags, SDL_WINDOW_ALLOW_HIGHDPI );
|
SetBits( wndFlags, SDL_WINDOW_ALLOW_HIGHDPI );
|
||||||
if( !glw_state.software )
|
if( !glw_state.software )
|
||||||
|
@ -850,13 +853,14 @@ qboolean VID_CreateWindow( int width, int height, window_mode_t window_mode )
|
||||||
}
|
}
|
||||||
|
|
||||||
#else // SDL_VERSION_ATLEAST( 2, 0, 0 )
|
#else // SDL_VERSION_ATLEAST( 2, 0, 0 )
|
||||||
Uint32 flags = 0;
|
xpos = window_xpos.value;
|
||||||
|
ypos = window_ypos.value;
|
||||||
|
|
||||||
if( window_mode != WINDOW_MODE_WINDOWED )
|
if( window_mode != WINDOW_MODE_WINDOWED )
|
||||||
SetBits( flags, SDL_FULLSCREEN|SDL_HWSURFACE );
|
SetBits( wndFlags, SDL_FULLSCREEN|SDL_HWSURFACE );
|
||||||
|
|
||||||
if( !glw_state.software )
|
if( !glw_state.software )
|
||||||
SetBits( flags, SDL_OPENGL );
|
SetBits( wndFlags, SDL_OPENGL );
|
||||||
|
|
||||||
if( !VID_CreateWindowWithSafeGL( wndname, xpos, ypos, width, height, wndFlags ))
|
if( !VID_CreateWindowWithSafeGL( wndname, xpos, ypos, width, height, wndFlags ))
|
||||||
return false;
|
return false;
|
||||||
|
@ -940,7 +944,7 @@ int GL_SetAttribute( int attr, int val )
|
||||||
#ifdef SDL_HINT_OPENGL_ES_DRIVER
|
#ifdef SDL_HINT_OPENGL_ES_DRIVER
|
||||||
if( val == REF_GL_CONTEXT_PROFILE_ES )
|
if( val == REF_GL_CONTEXT_PROFILE_ES )
|
||||||
{
|
{
|
||||||
SDL_SetHint(SDL_HINT_OPENGL_ES_DRIVER, "1");
|
SDL_SetHint( SDL_HINT_OPENGL_ES_DRIVER, "1" );
|
||||||
SDL_SetHint( "SDL_VIDEO_X11_FORCE_EGL", "1" );
|
SDL_SetHint( "SDL_VIDEO_X11_FORCE_EGL", "1" );
|
||||||
}
|
}
|
||||||
#endif // SDL_HINT_OPENGL_ES_DRIVER
|
#endif // SDL_HINT_OPENGL_ES_DRIVER
|
||||||
|
@ -1013,9 +1017,6 @@ qboolean R_Init_Video( const int type )
|
||||||
SDL_DisplayMode displayMode;
|
SDL_DisplayMode displayMode;
|
||||||
SDL_GetCurrentDisplayMode(0, &displayMode);
|
SDL_GetCurrentDisplayMode(0, &displayMode);
|
||||||
refState.desktopBitsPixel = SDL_BITSPERPIXEL( displayMode.format );
|
refState.desktopBitsPixel = SDL_BITSPERPIXEL( displayMode.format );
|
||||||
#else
|
|
||||||
refState.desktopBitsPixel = 16;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef SDL_HINT_QTWAYLAND_WINDOW_FLAGS
|
#ifdef SDL_HINT_QTWAYLAND_WINDOW_FLAGS
|
||||||
SDL_SetHint( SDL_HINT_QTWAYLAND_WINDOW_FLAGS, "OverridesSystemGestures" );
|
SDL_SetHint( SDL_HINT_QTWAYLAND_WINDOW_FLAGS, "OverridesSystemGestures" );
|
||||||
|
@ -1024,11 +1025,12 @@ qboolean R_Init_Video( const int type )
|
||||||
SDL_SetHint( SDL_HINT_QTWAYLAND_CONTENT_ORIENTATION, "landscape" );
|
SDL_SetHint( SDL_HINT_QTWAYLAND_CONTENT_ORIENTATION, "landscape" );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if SDL_VERSION_ATLEAST( 2, 0, 0 ) && !XASH_WIN32
|
|
||||||
SDL_SetHint( "SDL_VIDEO_X11_XRANDR", "1" );
|
SDL_SetHint( "SDL_VIDEO_X11_XRANDR", "1" );
|
||||||
SDL_SetHint( "SDL_VIDEO_X11_XVIDMODE", "1" );
|
SDL_SetHint( "SDL_VIDEO_X11_XVIDMODE", "1" );
|
||||||
if( Sys_CheckParm( "-egl" ) )
|
if( Sys_CheckParm( "-egl" ) )
|
||||||
SDL_SetHint( "SDL_VIDEO_X11_FORCE_EGL", "1" );
|
SDL_SetHint( "SDL_VIDEO_X11_FORCE_EGL", "1" );
|
||||||
|
#else
|
||||||
|
refState.desktopBitsPixel = 16;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// must be initialized before creating window
|
// must be initialized before creating window
|
||||||
|
|
|
@ -261,7 +261,7 @@ typedef struct remap_info_s
|
||||||
model_t *model; // for catch model changes
|
model_t *model; // for catch model changes
|
||||||
} remap_info_t;
|
} remap_info_t;
|
||||||
|
|
||||||
typedef struct convar_s convar_t;
|
struct convar_s;
|
||||||
struct con_nprint_s;
|
struct con_nprint_s;
|
||||||
struct engine_studio_api_s;
|
struct engine_studio_api_s;
|
||||||
struct r_studio_interface_s;
|
struct r_studio_interface_s;
|
||||||
|
@ -302,7 +302,7 @@ typedef struct ref_api_s
|
||||||
const char *(*pfnGetCvarString)( const char *szName );
|
const char *(*pfnGetCvarString)( const char *szName );
|
||||||
void (*Cvar_SetValue)( const char *name, float value );
|
void (*Cvar_SetValue)( const char *name, float value );
|
||||||
void (*Cvar_Set)( const char *name, const char *value );
|
void (*Cvar_Set)( const char *name, const char *value );
|
||||||
void (*Cvar_RegisterVariable)( convar_t *var );
|
void (*Cvar_RegisterVariable)( struct convar_s *var );
|
||||||
void (*Cvar_FullSet)( const char *var_name, const char *value, int flags );
|
void (*Cvar_FullSet)( const char *var_name, const char *value, int flags );
|
||||||
|
|
||||||
// command handlers
|
// command handlers
|
||||||
|
|
|
@ -46,12 +46,12 @@ enum
|
||||||
DIRENTRY_CASEINSENSITIVE = -2, // directory is already caseinsensitive, just copy whatever is left
|
DIRENTRY_CASEINSENSITIVE = -2, // directory is already caseinsensitive, just copy whatever is left
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct dir_s
|
struct dir_s
|
||||||
{
|
{
|
||||||
string name;
|
string name;
|
||||||
int numentries;
|
int numentries;
|
||||||
struct dir_s *entries; // sorted
|
struct dir_s *entries; // sorted
|
||||||
} dir_t;
|
};
|
||||||
|
|
||||||
static qboolean Platform_GetDirectoryCaseSensitivity( const char *dir )
|
static qboolean Platform_GetDirectoryCaseSensitivity( const char *dir )
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,15 +5,14 @@
|
||||||
|
|
||||||
cd $GITHUB_WORKSPACE || die
|
cd $GITHUB_WORKSPACE || die
|
||||||
|
|
||||||
mkdir -p Xash/valve/cl_dlls
|
./waf configure -T fast --enable-magx build -v install --destdir=Xash/ --strip || die
|
||||||
mkdir -p Xash/valve/dlls
|
|
||||||
|
|
||||||
pushd hlsdk || die
|
pushd hlsdk || die
|
||||||
./waf configure -T fast --enable-magx --enable-simple-mod-hacks build install --destdir=../Xash || die
|
./waf configure -T fast --enable-magx build -v install --destdir=../Xash --strip || die
|
||||||
|
git checkout opfor
|
||||||
|
./waf configure -T fast --enable-magx build -v install --destdir=../Xash --strip || die
|
||||||
popd
|
popd
|
||||||
|
|
||||||
./waf configure -T fast --enable-magx build install --destdir=Xash/ || die
|
|
||||||
|
|
||||||
cat > Xash/run.sh << 'EOF'
|
cat > Xash/run.sh << 'EOF'
|
||||||
mypath=${0%/*}
|
mypath=${0%/*}
|
||||||
LIBDIR1=/ezxlocal/download/mystuff/games/lib
|
LIBDIR1=/ezxlocal/download/mystuff/games/lib
|
||||||
|
|
4
wscript
4
wscript
|
@ -209,6 +209,7 @@ def configure(conf):
|
||||||
conf.options.LOW_MEMORY = 1
|
conf.options.LOW_MEMORY = 1
|
||||||
conf.options.NO_ASYNC_RESOLVE = True
|
conf.options.NO_ASYNC_RESOLVE = True
|
||||||
conf.define('XASH_SDLMAIN', 1)
|
conf.define('XASH_SDLMAIN', 1)
|
||||||
|
conf.define('XASH_MAGX', 1)
|
||||||
enforce_pic = False
|
enforce_pic = False
|
||||||
elif conf.env.DEST_OS == 'nswitch':
|
elif conf.env.DEST_OS == 'nswitch':
|
||||||
conf.options.NO_VGUI = True
|
conf.options.NO_VGUI = True
|
||||||
|
@ -271,6 +272,9 @@ def configure(conf):
|
||||||
# Do not warn us about bug in SDL_Audio headers
|
# Do not warn us about bug in SDL_Audio headers
|
||||||
conf.env.append_unique('CFLAGS', ['-Wno-attributes'])
|
conf.env.append_unique('CFLAGS', ['-Wno-attributes'])
|
||||||
conf.env.append_unique('CXXFLAGS', ['-Wno-attributes'])
|
conf.env.append_unique('CXXFLAGS', ['-Wno-attributes'])
|
||||||
|
elif conf.env.MAGX:
|
||||||
|
conf.env.append_unique('CFLAGS', ['-std=gnu99'])
|
||||||
|
conf.env.append_unique('CXXFLAGS', ['-std=gnu++98'])
|
||||||
|
|
||||||
conf.check_cc(cflags=cflags, linkflags=linkflags, msg='Checking for required C flags')
|
conf.check_cc(cflags=cflags, linkflags=linkflags, msg='Checking for required C flags')
|
||||||
conf.check_cxx(cxxflags=cxxflags, linkflags=linkflags, msg='Checking for required C++ flags')
|
conf.check_cxx(cxxflags=cxxflags, linkflags=linkflags, msg='Checking for required C++ flags')
|
||||||
|
|
Loading…
Reference in New Issue