mirror of
https://github.com/ioquake/jedi-academy.git
synced 2024-11-25 21:51:04 +00:00
Merge pull request #6 from jonathangray/sdl
add SDL glimp/input from ioquake3
This commit is contained in:
commit
908d2f0880
28 changed files with 5520 additions and 39 deletions
|
@ -25,8 +25,6 @@ copy *.so to your base directory
|
||||||
|
|
||||||
Known issues:
|
Known issues:
|
||||||
|
|
||||||
When running windowed the mouse does not work in the menus.
|
|
||||||
|
|
||||||
Save games do not yet work on amd64.
|
Save games do not yet work on amd64.
|
||||||
|
|
||||||
The demo has various issues and does not work properly.
|
The demo has various issues and does not work properly.
|
||||||
|
|
|
@ -33,12 +33,14 @@ add_definitions( -D_IMMERSION_DISABLE )
|
||||||
add_definitions( -DNDEBUG )
|
add_definitions( -DNDEBUG )
|
||||||
add_definitions( -DFINAL_BUILD )
|
add_definitions( -DFINAL_BUILD )
|
||||||
|
|
||||||
include_directories(/usr/X11R6/include/)
|
find_package (SDL REQUIRED)
|
||||||
link_directories(/usr/X11R6/lib)
|
include_directories(${SDL_INCLUDE_DIR})
|
||||||
|
|
||||||
include_directories(/usr/local/include/)
|
find_package(OpenGL REQUIRED)
|
||||||
link_directories(/usr/local/lib)
|
include_directories(${OPENGL_INCLUDE_DIR})
|
||||||
|
|
||||||
|
find_package(OpenAL REQUIRED)
|
||||||
|
include_directories(${OPENAL_INCLUDE_DIR})
|
||||||
|
|
||||||
set(src_main_rmg
|
set(src_main_rmg
|
||||||
RMG/RM_Area.cpp
|
RMG/RM_Area.cpp
|
||||||
|
@ -272,11 +274,16 @@ set(src_main_zlib
|
||||||
set(src_main_unix
|
set(src_main_unix
|
||||||
unix/unix_main.cpp
|
unix/unix_main.cpp
|
||||||
unix/unix_shared.cpp
|
unix/unix_shared.cpp
|
||||||
unix/linux_glimp.cpp
|
unix/unix_glimp_common.cpp
|
||||||
unix/linux_qgl.cpp
|
|
||||||
null/null_snddma.cpp
|
null/null_snddma.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set(src_sdl
|
||||||
|
sdl/sdl_gamma.cpp
|
||||||
|
sdl/sdl_glimp.cpp
|
||||||
|
sdl/sdl_input.cpp
|
||||||
|
)
|
||||||
|
|
||||||
set(src_starwars
|
set(src_starwars
|
||||||
${src_main_rmg}
|
${src_main_rmg}
|
||||||
${src_main_client}
|
${src_main_client}
|
||||||
|
@ -292,6 +299,7 @@ set(src_starwars
|
||||||
${src_main_ui}
|
${src_main_ui}
|
||||||
${src_main_zlib}
|
${src_main_zlib}
|
||||||
${src_main_unix}
|
${src_main_unix}
|
||||||
|
${src_sdl}
|
||||||
)
|
)
|
||||||
|
|
||||||
add_executable(jasp
|
add_executable(jasp
|
||||||
|
@ -302,8 +310,9 @@ set_target_properties(jasp PROPERTIES COMPILE_DEFINITIONS "_JK2EXE;_FF_DISABLE")
|
||||||
|
|
||||||
target_link_libraries(jasp
|
target_link_libraries(jasp
|
||||||
m pthread
|
m pthread
|
||||||
X11 Xxf86vm Xxf86dga
|
${SDL_LIBRARY}
|
||||||
openal
|
${OPENGL_gl_LIBRARY}
|
||||||
|
${OPENAL_LIBRARY}
|
||||||
)
|
)
|
||||||
|
|
||||||
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
|
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||||
|
|
|
@ -79,6 +79,8 @@ cvar_t *cl_ingameVideo;
|
||||||
|
|
||||||
cvar_t *cl_thumbStickMode;
|
cvar_t *cl_thumbStickMode;
|
||||||
|
|
||||||
|
cvar_t *cl_consoleKeys;
|
||||||
|
|
||||||
clientActive_t cl;
|
clientActive_t cl;
|
||||||
clientConnection_t clc;
|
clientConnection_t clc;
|
||||||
clientStatic_t cls;
|
clientStatic_t cls;
|
||||||
|
@ -1265,6 +1267,9 @@ void CL_Init( void ) {
|
||||||
|
|
||||||
cl_updateInfoString = Cvar_Get( "cl_updateInfoString", "", CVAR_ROM );
|
cl_updateInfoString = Cvar_Get( "cl_updateInfoString", "", CVAR_ROM );
|
||||||
|
|
||||||
|
// ~ and `, as keys and characters
|
||||||
|
cl_consoleKeys = Cvar_Get( "cl_consoleKeys", "~ ` 0x7e 0x60", CVAR_ARCHIVE);
|
||||||
|
|
||||||
// userinfo
|
// userinfo
|
||||||
Cvar_Get ("name", "Jaden", CVAR_USERINFO | CVAR_ARCHIVE );
|
Cvar_Get ("name", "Jaden", CVAR_USERINFO | CVAR_ARCHIVE );
|
||||||
Cvar_Get ("snaps", "20", CVAR_USERINFO | CVAR_ARCHIVE );
|
Cvar_Get ("snaps", "20", CVAR_USERINFO | CVAR_ARCHIVE );
|
||||||
|
|
|
@ -305,6 +305,8 @@ extern cvar_t *cl_activeAction;
|
||||||
|
|
||||||
extern cvar_t *cl_thumbStickMode;
|
extern cvar_t *cl_thumbStickMode;
|
||||||
|
|
||||||
|
extern cvar_t *cl_consoleKeys;
|
||||||
|
|
||||||
//=================================================
|
//=================================================
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -352,6 +354,7 @@ void CL_WritePacket( void );
|
||||||
void IN_CenterView (void);
|
void IN_CenterView (void);
|
||||||
|
|
||||||
float CL_KeyState (kbutton_t *key);
|
float CL_KeyState (kbutton_t *key);
|
||||||
|
int Key_StringToKeynum( char *str );
|
||||||
const char *Key_KeynumToString( int keynum/*, qboolean bTranslate*/ ); //note: translate is only called for menu display not configs
|
const char *Key_KeynumToString( int keynum/*, qboolean bTranslate*/ ); //note: translate is only called for menu display not configs
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -458,6 +461,7 @@ void CL_FirstSnapshot( void );
|
||||||
//
|
//
|
||||||
void CL_InitUI( void );
|
void CL_InitUI( void );
|
||||||
void CL_ShutdownUI( void );
|
void CL_ShutdownUI( void );
|
||||||
|
int Key_GetCatcher( void );
|
||||||
void CL_GenericMenu_f(void);
|
void CL_GenericMenu_f(void);
|
||||||
void CL_DataPad_f(void);
|
void CL_DataPad_f(void);
|
||||||
void CL_EndScreenDissolve_f(void);
|
void CL_EndScreenDissolve_f(void);
|
||||||
|
|
|
@ -585,6 +585,44 @@ void Parse3DMatrix ( const char **buf_p, int z, int y, int x, float *m) {
|
||||||
COM_MatchToken( buf_p, ")" );
|
COM_MatchToken( buf_p, ")" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
===================
|
||||||
|
Com_HexStrToInt
|
||||||
|
===================
|
||||||
|
*/
|
||||||
|
int Com_HexStrToInt( const char *str )
|
||||||
|
{
|
||||||
|
if ( !str || !str[ 0 ] )
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
// check for hex code
|
||||||
|
if( str[ 0 ] == '0' && str[ 1 ] == 'x' )
|
||||||
|
{
|
||||||
|
int i, n = 0;
|
||||||
|
|
||||||
|
for( i = 2; i < strlen( str ); i++ )
|
||||||
|
{
|
||||||
|
char digit;
|
||||||
|
|
||||||
|
n *= 16;
|
||||||
|
|
||||||
|
digit = tolower( str[ i ] );
|
||||||
|
|
||||||
|
if( digit >= '0' && digit <= '9' )
|
||||||
|
digit -= '0';
|
||||||
|
else if( digit >= 'a' && digit <= 'f' )
|
||||||
|
digit = digit - 'a' + 10;
|
||||||
|
else
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
n += digit;
|
||||||
|
}
|
||||||
|
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
============================================================================
|
============================================================================
|
||||||
|
|
|
@ -226,6 +226,8 @@ typedef int clipHandle_t;
|
||||||
#define MAX_QINT 0x7fffffff
|
#define MAX_QINT 0x7fffffff
|
||||||
#define MIN_QINT (-MAX_QINT-1)
|
#define MIN_QINT (-MAX_QINT-1)
|
||||||
|
|
||||||
|
#define ARRAY_LEN(x) (sizeof(x) / sizeof(*(x)))
|
||||||
|
#define STRARRAY_LEN(x) (ARRAY_LEN(x) - 1)
|
||||||
|
|
||||||
// angle indexes
|
// angle indexes
|
||||||
#define PITCH 0 // up / down
|
#define PITCH 0 // up / down
|
||||||
|
@ -1207,6 +1209,7 @@ void SkipRestOfLine ( const char **data );
|
||||||
void Parse1DMatrix (const char **buf_p, int x, float *m);
|
void Parse1DMatrix (const char **buf_p, int x, float *m);
|
||||||
void Parse2DMatrix (const char **buf_p, int y, int x, float *m);
|
void Parse2DMatrix (const char **buf_p, int y, int x, float *m);
|
||||||
void Parse3DMatrix (const char **buf_p, int z, int y, int x, float *m);
|
void Parse3DMatrix (const char **buf_p, int z, int y, int x, float *m);
|
||||||
|
int Com_HexStrToInt( const char *str );
|
||||||
|
|
||||||
void QDECL Com_sprintf (char *dest, int size, const char *fmt, ...);
|
void QDECL Com_sprintf (char *dest, int size, const char *fmt, ...);
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,17 @@
|
||||||
#ifndef __QGL_H__
|
#ifndef __QGL_H__
|
||||||
#define __QGL_H__
|
#define __QGL_H__
|
||||||
|
|
||||||
#if defined( __LINT__ )
|
#ifndef DYNAMIC_LINK_GL
|
||||||
|
|
||||||
|
#ifdef USE_LOCAL_HEADERS
|
||||||
|
# include "SDL_opengl.h"
|
||||||
|
#else
|
||||||
|
# include <SDL_opengl.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "qgl_linked.h"
|
||||||
|
|
||||||
|
#elif defined( __LINT__ )
|
||||||
|
|
||||||
#include <GL/gl.h>
|
#include <GL/gl.h>
|
||||||
|
|
||||||
|
@ -29,7 +39,7 @@
|
||||||
#include <GL/gl.h>
|
#include <GL/gl.h>
|
||||||
#include <GL/glx.h>
|
#include <GL/glx.h>
|
||||||
|
|
||||||
#endif
|
#endif // !DYNAMIC_LINK_GL
|
||||||
|
|
||||||
#ifndef APIENTRY
|
#ifndef APIENTRY
|
||||||
#define APIENTRY
|
#define APIENTRY
|
||||||
|
@ -328,6 +338,8 @@ extern void ( APIENTRY * qglPointParameterfvEXT)( GLenum, GLfloat *);
|
||||||
extern void ( APIENTRY * qglPointParameteriNV)( GLenum, GLint);
|
extern void ( APIENTRY * qglPointParameteriNV)( GLenum, GLint);
|
||||||
extern void ( APIENTRY * qglPointParameterivNV)( GLenum, const GLint *);
|
extern void ( APIENTRY * qglPointParameterivNV)( GLenum, const GLint *);
|
||||||
|
|
||||||
|
#ifdef DYNAMIC_LINK_GL
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// windows systems use a function pointer for each call so we can load minidrivers
|
// windows systems use a function pointer for each call so we can load minidrivers
|
||||||
|
@ -708,4 +720,5 @@ extern void (*qglXSwapBuffers)( Display *dpy, GLXDrawable drawable );
|
||||||
|
|
||||||
#endif // _WIN32
|
#endif // _WIN32
|
||||||
|
|
||||||
#endif
|
#endif // DYNAMIC_LINK_GL
|
||||||
|
#endif // __QGL_H__
|
||||||
|
|
|
@ -1144,11 +1144,7 @@ void R_Register( void )
|
||||||
r_texturebitslm = Cvar_Get( "r_texturebitslm", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
r_texturebitslm = Cvar_Get( "r_texturebitslm", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
||||||
r_colorbits = Cvar_Get( "r_colorbits", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
r_colorbits = Cvar_Get( "r_colorbits", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
||||||
r_stereo = Cvar_Get( "r_stereo", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
r_stereo = Cvar_Get( "r_stereo", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
||||||
#ifdef __linux__
|
|
||||||
r_stencilbits = Cvar_Get( "r_stencilbits", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
|
||||||
#else
|
|
||||||
r_stencilbits = Cvar_Get( "r_stencilbits", "8", CVAR_ARCHIVE | CVAR_LATCH );
|
r_stencilbits = Cvar_Get( "r_stencilbits", "8", CVAR_ARCHIVE | CVAR_LATCH );
|
||||||
#endif
|
|
||||||
r_depthbits = Cvar_Get( "r_depthbits", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
r_depthbits = Cvar_Get( "r_depthbits", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
||||||
r_overBrightBits = Cvar_Get ("r_overBrightBits", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
r_overBrightBits = Cvar_Get ("r_overBrightBits", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
||||||
r_ignorehwgamma = Cvar_Get( "r_ignorehwgamma", "0", CVAR_ARCHIVE | CVAR_LATCH);
|
r_ignorehwgamma = Cvar_Get( "r_ignorehwgamma", "0", CVAR_ARCHIVE | CVAR_LATCH);
|
||||||
|
|
92
code/sdl/sdl_gamma.cpp
Normal file
92
code/sdl/sdl_gamma.cpp
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
/*
|
||||||
|
===========================================================================
|
||||||
|
Copyright (C) 1999-2005 Id Software, Inc.
|
||||||
|
|
||||||
|
This file is part of Quake III Arena source code.
|
||||||
|
|
||||||
|
Quake III Arena source code is free software; you can redistribute it
|
||||||
|
and/or modify it under the terms of the GNU General Public License as
|
||||||
|
published by the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
Quake III Arena source code is distributed in the hope that it will be
|
||||||
|
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with Quake III Arena source code; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
===========================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef USE_LOCAL_HEADERS
|
||||||
|
# include "SDL.h"
|
||||||
|
#else
|
||||||
|
# include <SDL.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "../game/q_shared.h"
|
||||||
|
#include "../renderer/tr_local.h"
|
||||||
|
#include "../qcommon/qcommon.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
=================
|
||||||
|
GLimp_SetGamma
|
||||||
|
=================
|
||||||
|
*/
|
||||||
|
void GLimp_SetGamma( unsigned char red[256], unsigned char green[256], unsigned char blue[256] )
|
||||||
|
{
|
||||||
|
Uint16 table[3][256];
|
||||||
|
int i, j;
|
||||||
|
|
||||||
|
if( !glConfig.deviceSupportsGamma || r_ignorehwgamma->integer > 0 )
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (i = 0; i < 256; i++)
|
||||||
|
{
|
||||||
|
table[0][i] = ( ( ( Uint16 ) red[i] ) << 8 ) | red[i];
|
||||||
|
table[1][i] = ( ( ( Uint16 ) green[i] ) << 8 ) | green[i];
|
||||||
|
table[2][i] = ( ( ( Uint16 ) blue[i] ) << 8 ) | blue[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
|
// Win2K and newer put this odd restriction on gamma ramps...
|
||||||
|
{
|
||||||
|
OSVERSIONINFO vinfo;
|
||||||
|
|
||||||
|
vinfo.dwOSVersionInfoSize = sizeof( vinfo );
|
||||||
|
GetVersionEx( &vinfo );
|
||||||
|
if( vinfo.dwMajorVersion >= 5 && vinfo.dwPlatformId == VER_PLATFORM_WIN32_NT )
|
||||||
|
{
|
||||||
|
ri.Printf( PRINT_DEVELOPER, "performing gamma clamp.\n" );
|
||||||
|
for( j = 0 ; j < 3 ; j++ )
|
||||||
|
{
|
||||||
|
for( i = 0 ; i < 128 ; i++ )
|
||||||
|
{
|
||||||
|
if( table[ j ] [ i] > ( ( 128 + i ) << 8 ) )
|
||||||
|
table[ j ][ i ] = ( 128 + i ) << 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( table[ j ] [127 ] > 254 << 8 )
|
||||||
|
table[ j ][ 127 ] = 254 << 8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// enforce constantly increasing
|
||||||
|
for (j = 0; j < 3; j++)
|
||||||
|
{
|
||||||
|
for (i = 1; i < 256; i++)
|
||||||
|
{
|
||||||
|
if (table[j][i] < table[j][i-1])
|
||||||
|
table[j][i] = table[j][i-1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SDL_SetGammaRamp(table[0], table[1], table[2]);
|
||||||
|
}
|
||||||
|
|
1225
code/sdl/sdl_glimp.cpp
Normal file
1225
code/sdl/sdl_glimp.cpp
Normal file
File diff suppressed because it is too large
Load diff
1107
code/sdl/sdl_input.cpp
Normal file
1107
code/sdl/sdl_input.cpp
Normal file
File diff suppressed because it is too large
Load diff
11
code/sdl/sdl_local.h
Normal file
11
code/sdl/sdl_local.h
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#include "../game/q_shared.h"
|
||||||
|
#include "../qcommon/qcommon.h"
|
||||||
|
#include "../client/client.h"
|
||||||
|
|
||||||
|
void IN_Init( void );
|
||||||
|
void IN_Shutdown( void );
|
||||||
|
void IN_Restart( void );
|
||||||
|
|
||||||
|
void Sys_GLimpSafeInit( void );
|
||||||
|
void Sys_GLimpInit( void );
|
||||||
|
void Sys_QueEvent( int time, sysEventType_t type, int value, int value2, int ptrLength, void *ptr );
|
82
code/unix/unix_glimp_common.cpp
Normal file
82
code/unix/unix_glimp_common.cpp
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
#include <pthread.h>
|
||||||
|
#include <semaphore.h>
|
||||||
|
#include "../game/q_shared.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
===========================================================
|
||||||
|
|
||||||
|
SMP acceleration
|
||||||
|
|
||||||
|
===========================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
sem_t renderCommandsEvent;
|
||||||
|
sem_t renderCompletedEvent;
|
||||||
|
sem_t renderActiveEvent;
|
||||||
|
|
||||||
|
void (*glimpRenderThread)( void );
|
||||||
|
|
||||||
|
void *GLimp_RenderThreadWrapper( void *stub ) {
|
||||||
|
glimpRenderThread();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
=======================
|
||||||
|
GLimp_SpawnRenderThread
|
||||||
|
=======================
|
||||||
|
*/
|
||||||
|
pthread_t renderThreadHandle;
|
||||||
|
qboolean GLimp_SpawnRenderThread( void (*function)( void ) ) {
|
||||||
|
|
||||||
|
sem_init( &renderCommandsEvent, 0, 0 );
|
||||||
|
sem_init( &renderCompletedEvent, 0, 0 );
|
||||||
|
sem_init( &renderActiveEvent, 0, 0 );
|
||||||
|
|
||||||
|
glimpRenderThread = function;
|
||||||
|
|
||||||
|
if (pthread_create( &renderThreadHandle, NULL,
|
||||||
|
GLimp_RenderThreadWrapper, NULL)) {
|
||||||
|
return qfalse;
|
||||||
|
}
|
||||||
|
|
||||||
|
return qtrue;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *smpData;
|
||||||
|
|
||||||
|
void *GLimp_RendererSleep( void ) {
|
||||||
|
void *data;
|
||||||
|
|
||||||
|
// after this, the front end can exit GLimp_FrontEndSleep
|
||||||
|
sem_post ( &renderCompletedEvent );
|
||||||
|
|
||||||
|
sem_wait ( &renderCommandsEvent );
|
||||||
|
|
||||||
|
data = smpData;
|
||||||
|
|
||||||
|
// after this, the main thread can exit GLimp_WakeRenderer
|
||||||
|
sem_post ( &renderActiveEvent );
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GLimp_FrontEndSleep( void ) {
|
||||||
|
sem_wait ( &renderCompletedEvent );
|
||||||
|
}
|
||||||
|
|
||||||
|
void GLimp_WakeRenderer( void *data ) {
|
||||||
|
smpData = data;
|
||||||
|
|
||||||
|
// after this, the renderer can continue through GLimp_RendererSleep
|
||||||
|
sem_post( &renderCommandsEvent );
|
||||||
|
|
||||||
|
sem_wait( &renderActiveEvent );
|
||||||
|
}
|
||||||
|
|
||||||
|
void Sys_GLimpInit( void )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void Sys_GLimpSafeInit( void )
|
||||||
|
{
|
||||||
|
}
|
|
@ -144,7 +144,7 @@ void Sys_Init(void)
|
||||||
Cvar_Set( "arch", "unknown" );
|
Cvar_Set( "arch", "unknown" );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
IN_Init();
|
// IN_Init();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -47,11 +47,14 @@ add_definitions( -DFINAL_BUILD )
|
||||||
add_definitions( -D_JK2 )
|
add_definitions( -D_JK2 )
|
||||||
add_definitions( -D_JK2MP )
|
add_definitions( -D_JK2MP )
|
||||||
|
|
||||||
include_directories(/usr/X11R6/include/)
|
find_package (SDL REQUIRED)
|
||||||
link_directories(/usr/X11R6/lib)
|
include_directories(${SDL_INCLUDE_DIR})
|
||||||
|
|
||||||
include_directories(/usr/local/include/)
|
find_package(OpenGL REQUIRED)
|
||||||
link_directories(/usr/local/lib)
|
include_directories(${OPENGL_INCLUDE_DIR})
|
||||||
|
|
||||||
|
find_package(OpenAL REQUIRED)
|
||||||
|
include_directories(${OPENAL_INCLUDE_DIR})
|
||||||
|
|
||||||
set(src_main_rmg
|
set(src_main_rmg
|
||||||
RMG/RM_Area.cpp
|
RMG/RM_Area.cpp
|
||||||
|
@ -304,11 +307,16 @@ set(src_unix_common
|
||||||
|
|
||||||
set(src_main_unix
|
set(src_main_unix
|
||||||
${src_unix_common}
|
${src_unix_common}
|
||||||
unix/linux_glimp.cpp
|
unix/unix_glimp_common.cpp
|
||||||
unix/linux_qgl.cpp
|
|
||||||
null/null_snddma.cpp
|
null/null_snddma.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set(src_sdl
|
||||||
|
sdl/sdl_gamma.cpp
|
||||||
|
sdl/sdl_glimp.cpp
|
||||||
|
sdl/sdl_input.cpp
|
||||||
|
)
|
||||||
|
|
||||||
set(src_botlib
|
set(src_botlib
|
||||||
botlib/be_aas_bspq3.cpp
|
botlib/be_aas_bspq3.cpp
|
||||||
botlib/be_aas_cluster.cpp
|
botlib/be_aas_cluster.cpp
|
||||||
|
@ -354,6 +362,7 @@ set(src_jk2mp
|
||||||
${src_main_zlib}
|
${src_main_zlib}
|
||||||
${src_botlib}
|
${src_botlib}
|
||||||
${src_main_unix}
|
${src_main_unix}
|
||||||
|
${src_sdl}
|
||||||
)
|
)
|
||||||
|
|
||||||
add_executable(jamp
|
add_executable(jamp
|
||||||
|
@ -364,8 +373,9 @@ set_target_properties(jamp PROPERTIES COMPILE_DEFINITIONS "_JK2EXE;_FF_DISABLE;B
|
||||||
|
|
||||||
target_link_libraries(jamp
|
target_link_libraries(jamp
|
||||||
m pthread
|
m pthread
|
||||||
X11 Xxf86vm Xxf86dga
|
${SDL_LIBRARY}
|
||||||
openal
|
${OPENGL_gl_LIBRARY}
|
||||||
|
${OPENAL_LIBRARY}
|
||||||
)
|
)
|
||||||
|
|
||||||
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
|
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||||
|
|
|
@ -102,6 +102,8 @@ char cl_cdkey[34] = " ";
|
||||||
#endif // USE_CD_KEY
|
#endif // USE_CD_KEY
|
||||||
|
|
||||||
|
|
||||||
|
cvar_t *cl_consoleKeys;
|
||||||
|
|
||||||
clientActive_t cl;
|
clientActive_t cl;
|
||||||
clientConnection_t clc;
|
clientConnection_t clc;
|
||||||
clientStatic_t cls;
|
clientStatic_t cls;
|
||||||
|
@ -2631,6 +2633,9 @@ void CL_Init( void ) {
|
||||||
Cvar_Get( "cl_maxPing", "800", CVAR_ARCHIVE );
|
Cvar_Get( "cl_maxPing", "800", CVAR_ARCHIVE );
|
||||||
|
|
||||||
|
|
||||||
|
// ~ and `, as keys and characters
|
||||||
|
cl_consoleKeys = Cvar_Get( "cl_consoleKeys", "~ ` 0x7e 0x60", CVAR_ARCHIVE);
|
||||||
|
|
||||||
// userinfo
|
// userinfo
|
||||||
Cvar_Get ("name", "Padawan", CVAR_USERINFO | CVAR_ARCHIVE );
|
Cvar_Get ("name", "Padawan", CVAR_USERINFO | CVAR_ARCHIVE );
|
||||||
Cvar_Get ("rate", "4000", CVAR_USERINFO | CVAR_ARCHIVE );
|
Cvar_Get ("rate", "4000", CVAR_USERINFO | CVAR_ARCHIVE );
|
||||||
|
|
|
@ -432,6 +432,8 @@ extern cvar_t *cl_allowAltEnter;
|
||||||
extern cvar_t *cl_conXOffset;
|
extern cvar_t *cl_conXOffset;
|
||||||
extern cvar_t *cl_inGameVideo;
|
extern cvar_t *cl_inGameVideo;
|
||||||
|
|
||||||
|
extern cvar_t *cl_consoleKeys;
|
||||||
|
|
||||||
//=================================================
|
//=================================================
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -499,6 +501,7 @@ void IN_CenterView (void);
|
||||||
void CL_VerifyCode( void );
|
void CL_VerifyCode( void );
|
||||||
|
|
||||||
float CL_KeyState (kbutton_t *key);
|
float CL_KeyState (kbutton_t *key);
|
||||||
|
int Key_StringToKeynum( char *str );
|
||||||
const char *Key_KeynumToString( int keynum/*, qboolean bTranslate */ ); //note: translate is only called for menu display not configs
|
const char *Key_KeynumToString( int keynum/*, qboolean bTranslate */ ); //note: translate is only called for menu display not configs
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -759,6 +759,44 @@ void Parse3DMatrix (const char **buf_p, int z, int y, int x, float *m) {
|
||||||
COM_MatchToken( buf_p, ")" );
|
COM_MatchToken( buf_p, ")" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
===================
|
||||||
|
Com_HexStrToInt
|
||||||
|
===================
|
||||||
|
*/
|
||||||
|
int Com_HexStrToInt( const char *str )
|
||||||
|
{
|
||||||
|
if ( !str || !str[ 0 ] )
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
// check for hex code
|
||||||
|
if( str[ 0 ] == '0' && str[ 1 ] == 'x' )
|
||||||
|
{
|
||||||
|
int i, n = 0;
|
||||||
|
|
||||||
|
for( i = 2; i < strlen( str ); i++ )
|
||||||
|
{
|
||||||
|
char digit;
|
||||||
|
|
||||||
|
n *= 16;
|
||||||
|
|
||||||
|
digit = tolower( str[ i ] );
|
||||||
|
|
||||||
|
if( digit >= '0' && digit <= '9' )
|
||||||
|
digit -= '0';
|
||||||
|
else if( digit >= 'a' && digit <= 'f' )
|
||||||
|
digit = digit - 'a' + 10;
|
||||||
|
else
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
n += digit;
|
||||||
|
}
|
||||||
|
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
============================================================================
|
============================================================================
|
||||||
|
|
|
@ -410,6 +410,8 @@ typedef int clipHandle_t;
|
||||||
#define MAX_QINT 0x7fffffff
|
#define MAX_QINT 0x7fffffff
|
||||||
#define MIN_QINT (-MAX_QINT-1)
|
#define MIN_QINT (-MAX_QINT-1)
|
||||||
|
|
||||||
|
#define ARRAY_LEN(x) (sizeof(x) / sizeof(*(x)))
|
||||||
|
#define STRARRAY_LEN(x) (ARRAY_LEN(x) - 1)
|
||||||
|
|
||||||
// angle indexes
|
// angle indexes
|
||||||
#define PITCH 0 // up / down
|
#define PITCH 0 // up / down
|
||||||
|
@ -1718,6 +1720,7 @@ void SkipRestOfLine ( const char **data );
|
||||||
void Parse1DMatrix (const char **buf_p, int x, float *m);
|
void Parse1DMatrix (const char **buf_p, int x, float *m);
|
||||||
void Parse2DMatrix (const char **buf_p, int y, int x, float *m);
|
void Parse2DMatrix (const char **buf_p, int y, int x, float *m);
|
||||||
void Parse3DMatrix (const char **buf_p, int z, int y, int x, float *m);
|
void Parse3DMatrix (const char **buf_p, int z, int y, int x, float *m);
|
||||||
|
int Com_HexStrToInt( const char *str );
|
||||||
|
|
||||||
void QDECL Com_sprintf (char *dest, int size, const char *fmt, ...);
|
void QDECL Com_sprintf (char *dest, int size, const char *fmt, ...);
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,17 @@
|
||||||
#ifndef __QGL_H__
|
#ifndef __QGL_H__
|
||||||
#define __QGL_H__
|
#define __QGL_H__
|
||||||
|
|
||||||
#if defined( __LINT__ )
|
#ifndef DYNAMIC_LINK_GL
|
||||||
|
|
||||||
|
#ifdef USE_LOCAL_HEADERS
|
||||||
|
# include "SDL_opengl.h"
|
||||||
|
#else
|
||||||
|
# include <SDL_opengl.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "qgl_linked.h"
|
||||||
|
|
||||||
|
#elif defined( __LINT__ )
|
||||||
|
|
||||||
#include <GL/gl.h>
|
#include <GL/gl.h>
|
||||||
|
|
||||||
|
@ -33,7 +43,7 @@
|
||||||
#include <GL/fxmesa.h>
|
#include <GL/fxmesa.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif // !DYNAMIC_LINK_GL
|
||||||
|
|
||||||
#ifndef APIENTRY
|
#ifndef APIENTRY
|
||||||
#define APIENTRY
|
#define APIENTRY
|
||||||
|
@ -338,6 +348,7 @@ extern void ( APIENTRY * qglTexImage3DEXT) (GLenum, GLint, GLenum, GLsizei, GLsi
|
||||||
extern void ( APIENTRY * qglTexSubImage3DEXT) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
|
extern void ( APIENTRY * qglTexSubImage3DEXT) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
#ifdef DYNAMIC_LINK_GL
|
||||||
|
|
||||||
#if defined(MACOS_X)
|
#if defined(MACOS_X)
|
||||||
// This includes #ifdefs for optional logging and GL error checking after every GL call as well as #defines to prevent incorrect usage of the non-'qgl' versions of the GL API.
|
// This includes #ifdefs for optional logging and GL error checking after every GL call as well as #defines to prevent incorrect usage of the non-'qgl' versions of the GL API.
|
||||||
|
@ -734,6 +745,7 @@ extern void (*qglXSwapBuffers)( Display *dpy, GLXDrawable drawable );
|
||||||
|
|
||||||
#endif // __linux__ || __FreeBSD__ // rb010123
|
#endif // __linux__ || __FreeBSD__ // rb010123
|
||||||
|
|
||||||
#endif // _WIN32 && __linux__
|
#endif // _MACOS_X
|
||||||
|
|
||||||
#endif
|
#endif // DYNAMIC_LINK_GL
|
||||||
|
#endif // __QGL_H__
|
||||||
|
|
336
codemp/renderer/qgl_linked.h
Normal file
336
codemp/renderer/qgl_linked.h
Normal file
|
@ -0,0 +1,336 @@
|
||||||
|
|
||||||
|
#define qglAccum glAccum
|
||||||
|
#define qglAlphaFunc glAlphaFunc
|
||||||
|
#define qglAreTexturesResident glAreTexturesResident
|
||||||
|
#define qglArrayElement glArrayElement
|
||||||
|
#define qglBegin glBegin
|
||||||
|
#define qglBindTexture glBindTexture
|
||||||
|
#define qglBitmap glBitmap
|
||||||
|
#define qglBlendFunc glBlendFunc
|
||||||
|
#define qglCallList glCallList
|
||||||
|
#define qglCallLists glCallLists
|
||||||
|
#define qglClear glClear
|
||||||
|
#define qglClearAccum glClearAccum
|
||||||
|
#define qglClearColor glClearColor
|
||||||
|
#define qglClearDepth glClearDepth
|
||||||
|
#define qglClearIndex glClearIndex
|
||||||
|
#define qglClearStencil glClearStencil
|
||||||
|
#define qglClipPlane glClipPlane
|
||||||
|
#define qglColor3b glColor3b
|
||||||
|
#define qglColor3bv glColor3bv
|
||||||
|
#define qglColor3d glColor3d
|
||||||
|
#define qglColor3dv glColor3dv
|
||||||
|
#define qglColor3f glColor3f
|
||||||
|
#define qglColor3fv glColor3fv
|
||||||
|
#define qglColor3i glColor3i
|
||||||
|
#define qglColor3iv glColor3iv
|
||||||
|
#define qglColor3s glColor3s
|
||||||
|
#define qglColor3sv glColor3sv
|
||||||
|
#define qglColor3ub glColor3ub
|
||||||
|
#define qglColor3ubv glColor3ubv
|
||||||
|
#define qglColor3ui glColor3ui
|
||||||
|
#define qglColor3uiv glColor3uiv
|
||||||
|
#define qglColor3us glColor3us
|
||||||
|
#define qglColor3usv glColor3usv
|
||||||
|
#define qglColor4b glColor4b
|
||||||
|
#define qglColor4bv glColor4bv
|
||||||
|
#define qglColor4d glColor4d
|
||||||
|
#define qglColor4dv glColor4dv
|
||||||
|
#define qglColor4f glColor4f
|
||||||
|
#define qglColor4fv glColor4fv
|
||||||
|
#define qglColor4i glColor4i
|
||||||
|
#define qglColor4iv glColor4iv
|
||||||
|
#define qglColor4s glColor4s
|
||||||
|
#define qglColor4sv glColor4sv
|
||||||
|
#define qglColor4ub glColor4ub
|
||||||
|
#define qglColor4ubv glColor4ubv
|
||||||
|
#define qglColor4ui glColor4ui
|
||||||
|
#define qglColor4uiv glColor4uiv
|
||||||
|
#define qglColor4us glColor4us
|
||||||
|
#define qglColor4usv glColor4usv
|
||||||
|
#define qglColorMask glColorMask
|
||||||
|
#define qglColorMaterial glColorMaterial
|
||||||
|
#define qglColorPointer glColorPointer
|
||||||
|
#define qglCopyPixels glCopyPixels
|
||||||
|
#define qglCopyTexImage1D glCopyTexImage1D
|
||||||
|
#define qglCopyTexImage2D glCopyTexImage2D
|
||||||
|
#define qglCopyTexSubImage1D glCopyTexSubImage1D
|
||||||
|
#define qglCopyTexSubImage2D glCopyTexSubImage2D
|
||||||
|
#define qglCullFace glCullFace
|
||||||
|
#define qglDeleteLists glDeleteLists
|
||||||
|
#define qglDeleteTextures glDeleteTextures
|
||||||
|
#define qglDepthFunc glDepthFunc
|
||||||
|
#define qglDepthMask glDepthMask
|
||||||
|
#define qglDepthRange glDepthRange
|
||||||
|
#define qglDisable glDisable
|
||||||
|
#define qglDisableClientState glDisableClientState
|
||||||
|
#define qglDrawArrays glDrawArrays
|
||||||
|
#define qglDrawBuffer glDrawBuffer
|
||||||
|
#define qglDrawElements glDrawElements
|
||||||
|
#define qglDrawPixels glDrawPixels
|
||||||
|
#define qglEdgeFlag glEdgeFlag
|
||||||
|
#define qglEdgeFlagPointer glEdgeFlagPointer
|
||||||
|
#define qglEdgeFlagv glEdgeFlagv
|
||||||
|
#define qglEnable glEnable
|
||||||
|
#define qglEnableClientState glEnableClientState
|
||||||
|
#define qglEnd glEnd
|
||||||
|
#define qglEndList glEndList
|
||||||
|
#define qglEvalCoord1d glEvalCoord1d
|
||||||
|
#define qglEvalCoord1dv glEvalCoord1dv
|
||||||
|
#define qglEvalCoord1f glEvalCoord1f
|
||||||
|
#define qglEvalCoord1fv glEvalCoord1fv
|
||||||
|
#define qglEvalCoord2d glEvalCoord2d
|
||||||
|
#define qglEvalCoord2dv glEvalCoord2dv
|
||||||
|
#define qglEvalCoord2f glEvalCoord2f
|
||||||
|
#define qglEvalCoord2fv glEvalCoord2fv
|
||||||
|
#define qglEvalMesh1 glEvalMesh1
|
||||||
|
#define qglEvalMesh2 glEvalMesh2
|
||||||
|
#define qglEvalPoint1 glEvalPoint1
|
||||||
|
#define qglEvalPoint2 glEvalPoint2
|
||||||
|
#define qglFeedbackBuffer glFeedbackBuffer
|
||||||
|
#define qglFinish glFinish
|
||||||
|
#define qglFlush glFlush
|
||||||
|
#define qglFogf glFogf
|
||||||
|
#define qglFogfv glFogfv
|
||||||
|
#define qglFogi glFogi
|
||||||
|
#define qglFogiv glFogiv
|
||||||
|
#define qglFrontFace glFrontFace
|
||||||
|
#define qglFrustum glFrustum
|
||||||
|
#define qglGenLists glGenLists
|
||||||
|
#define qglGenTextures glGenTextures
|
||||||
|
#define qglGetBooleanv glGetBooleanv
|
||||||
|
#define qglGetClipPlane glGetClipPlane
|
||||||
|
#define qglGetDoublev glGetDoublev
|
||||||
|
#define qglGetError glGetError
|
||||||
|
#define qglGetFloatv glGetFloatv
|
||||||
|
#define qglGetIntegerv glGetIntegerv
|
||||||
|
#define qglGetLightfv glGetLightfv
|
||||||
|
#define qglGetLightiv glGetLightiv
|
||||||
|
#define qglGetMapdv glGetMapdv
|
||||||
|
#define qglGetMapfv glGetMapfv
|
||||||
|
#define qglGetMapiv glGetMapiv
|
||||||
|
#define qglGetMaterialfv glGetMaterialfv
|
||||||
|
#define qglGetMaterialiv glGetMaterialiv
|
||||||
|
#define qglGetPixelMapfv glGetPixelMapfv
|
||||||
|
#define qglGetPixelMapuiv glGetPixelMapuiv
|
||||||
|
#define qglGetPixelMapusv glGetPixelMapusv
|
||||||
|
#define qglGetPointerv glGetPointerv
|
||||||
|
#define qglGetPolygonStipple glGetPolygonStipple
|
||||||
|
#define qglGetString glGetString
|
||||||
|
#define qglGetTexGendv glGetTexGendv
|
||||||
|
#define qglGetTexGenfv glGetTexGenfv
|
||||||
|
#define qglGetTexGeniv glGetTexGeniv
|
||||||
|
#define qglGetTexImage glGetTexImage
|
||||||
|
#define qglGetTexLevelParameterfv glGetTexLevelParameterfv
|
||||||
|
#define qglGetTexLevelParameteriv glGetTexLevelParameteriv
|
||||||
|
#define qglGetTexParameterfv glGetTexParameterfv
|
||||||
|
#define qglGetTexParameteriv glGetTexParameteriv
|
||||||
|
#define qglHint glHint
|
||||||
|
#define qglIndexMask glIndexMask
|
||||||
|
#define qglIndexPointer glIndexPointer
|
||||||
|
#define qglIndexd glIndexd
|
||||||
|
#define qglIndexdv glIndexdv
|
||||||
|
#define qglIndexf glIndexf
|
||||||
|
#define qglIndexfv glIndexfv
|
||||||
|
#define qglIndexi glIndexi
|
||||||
|
#define qglIndexiv glIndexiv
|
||||||
|
#define qglIndexs glIndexs
|
||||||
|
#define qglIndexsv glIndexsv
|
||||||
|
#define qglIndexub glIndexub
|
||||||
|
#define qglIndexubv glIndexubv
|
||||||
|
#define qglInitNames glInitNames
|
||||||
|
#define qglInterleavedArrays glInterleavedArrays
|
||||||
|
#define qglIsEnabled glIsEnabled
|
||||||
|
#define qglIsList glIsList
|
||||||
|
#define qglIsTexture glIsTexture
|
||||||
|
#define qglLightModelf glLightModelf
|
||||||
|
#define qglLightModelfv glLightModelfv
|
||||||
|
#define qglLightModeli glLightModeli
|
||||||
|
#define qglLightModeliv glLightModeliv
|
||||||
|
#define qglLightf glLightf
|
||||||
|
#define qglLightfv glLightfv
|
||||||
|
#define qglLighti glLighti
|
||||||
|
#define qglLightiv glLightiv
|
||||||
|
#define qglLineStipple glLineStipple
|
||||||
|
#define qglLineWidth glLineWidth
|
||||||
|
#define qglListBase glListBase
|
||||||
|
#define qglLoadIdentity glLoadIdentity
|
||||||
|
#define qglLoadMatrixd glLoadMatrixd
|
||||||
|
#define qglLoadMatrixf glLoadMatrixf
|
||||||
|
#define qglLoadName glLoadName
|
||||||
|
#define qglLogicOp glLogicOp
|
||||||
|
#define qglMap1d glMap1d
|
||||||
|
#define qglMap1f glMap1f
|
||||||
|
#define qglMap2d glMap2d
|
||||||
|
#define qglMap2f glMap2f
|
||||||
|
#define qglMapGrid1d glMapGrid1d
|
||||||
|
#define qglMapGrid1f glMapGrid1f
|
||||||
|
#define qglMapGrid2d glMapGrid2d
|
||||||
|
#define qglMapGrid2f glMapGrid2f
|
||||||
|
#define qglMaterialf glMaterialf
|
||||||
|
#define qglMaterialfv glMaterialfv
|
||||||
|
#define qglMateriali glMateriali
|
||||||
|
#define qglMaterialiv glMaterialiv
|
||||||
|
#define qglMatrixMode glMatrixMode
|
||||||
|
#define qglMultMatrixd glMultMatrixd
|
||||||
|
#define qglMultMatrixf glMultMatrixf
|
||||||
|
#define qglNewList glNewList
|
||||||
|
#define qglNormal3b glNormal3b
|
||||||
|
#define qglNormal3bv glNormal3bv
|
||||||
|
#define qglNormal3d glNormal3d
|
||||||
|
#define qglNormal3dv glNormal3dv
|
||||||
|
#define qglNormal3f glNormal3f
|
||||||
|
#define qglNormal3fv glNormal3fv
|
||||||
|
#define qglNormal3i glNormal3i
|
||||||
|
#define qglNormal3iv glNormal3iv
|
||||||
|
#define qglNormal3s glNormal3s
|
||||||
|
#define qglNormal3sv glNormal3sv
|
||||||
|
#define qglNormalPointer glNormalPointer
|
||||||
|
#define qglOrtho glOrtho
|
||||||
|
#define qglPassThrough glPassThrough
|
||||||
|
#define qglPixelMapfv glPixelMapfv
|
||||||
|
#define qglPixelMapuiv glPixelMapuiv
|
||||||
|
#define qglPixelMapusv glPixelMapusv
|
||||||
|
#define qglPixelStoref glPixelStoref
|
||||||
|
#define qglPixelStorei glPixelStorei
|
||||||
|
#define qglPixelTransferf glPixelTransferf
|
||||||
|
#define qglPixelTransferi glPixelTransferi
|
||||||
|
#define qglPixelZoom glPixelZoom
|
||||||
|
#define qglPointSize glPointSize
|
||||||
|
#define qglPolygonMode glPolygonMode
|
||||||
|
#define qglPolygonOffset glPolygonOffset
|
||||||
|
#define qglPolygonStipple glPolygonStipple
|
||||||
|
#define qglPopAttrib glPopAttrib
|
||||||
|
#define qglPopClientAttrib glPopClientAttrib
|
||||||
|
#define qglPopMatrix glPopMatrix
|
||||||
|
#define qglPopName glPopName
|
||||||
|
#define qglPrioritizeTextures glPrioritizeTextures
|
||||||
|
#define qglPushAttrib glPushAttrib
|
||||||
|
#define qglPushClientAttrib glPushClientAttrib
|
||||||
|
#define qglPushMatrix glPushMatrix
|
||||||
|
#define qglPushName glPushName
|
||||||
|
#define qglRasterPos2d glRasterPos2d
|
||||||
|
#define qglRasterPos2dv glRasterPos2dv
|
||||||
|
#define qglRasterPos2f glRasterPos2f
|
||||||
|
#define qglRasterPos2fv glRasterPos2fv
|
||||||
|
#define qglRasterPos2i glRasterPos2i
|
||||||
|
#define qglRasterPos2iv glRasterPos2iv
|
||||||
|
#define qglRasterPos2s glRasterPos2s
|
||||||
|
#define qglRasterPos2sv glRasterPos2sv
|
||||||
|
#define qglRasterPos3d glRasterPos3d
|
||||||
|
#define qglRasterPos3dv glRasterPos3dv
|
||||||
|
#define qglRasterPos3f glRasterPos3f
|
||||||
|
#define qglRasterPos3fv glRasterPos3fv
|
||||||
|
#define qglRasterPos3i glRasterPos3i
|
||||||
|
#define qglRasterPos3iv glRasterPos3iv
|
||||||
|
#define qglRasterPos3s glRasterPos3s
|
||||||
|
#define qglRasterPos3sv glRasterPos3sv
|
||||||
|
#define qglRasterPos4d glRasterPos4d
|
||||||
|
#define qglRasterPos4dv glRasterPos4dv
|
||||||
|
#define qglRasterPos4f glRasterPos4f
|
||||||
|
#define qglRasterPos4fv glRasterPos4fv
|
||||||
|
#define qglRasterPos4i glRasterPos4i
|
||||||
|
#define qglRasterPos4iv glRasterPos4iv
|
||||||
|
#define qglRasterPos4s glRasterPos4s
|
||||||
|
#define qglRasterPos4sv glRasterPos4sv
|
||||||
|
#define qglReadBuffer glReadBuffer
|
||||||
|
#define qglReadPixels glReadPixels
|
||||||
|
#define qglRectd glRectd
|
||||||
|
#define qglRectdv glRectdv
|
||||||
|
#define qglRectf glRectf
|
||||||
|
#define qglRectfv glRectfv
|
||||||
|
#define qglRecti glRecti
|
||||||
|
#define qglRectiv glRectiv
|
||||||
|
#define qglRects glRects
|
||||||
|
#define qglRectsv glRectsv
|
||||||
|
#define qglRenderMode glRenderMode
|
||||||
|
#define qglRotated glRotated
|
||||||
|
#define qglRotatef glRotatef
|
||||||
|
#define qglScaled glScaled
|
||||||
|
#define qglScalef glScalef
|
||||||
|
#define qglScissor glScissor
|
||||||
|
#define qglSelectBuffer glSelectBuffer
|
||||||
|
#define qglShadeModel glShadeModel
|
||||||
|
#define qglStencilFunc glStencilFunc
|
||||||
|
#define qglStencilMask glStencilMask
|
||||||
|
#define qglStencilOp glStencilOp
|
||||||
|
#define qglTexCoord1d glTexCoord1d
|
||||||
|
#define qglTexCoord1dv glTexCoord1dv
|
||||||
|
#define qglTexCoord1f glTexCoord1f
|
||||||
|
#define qglTexCoord1fv glTexCoord1fv
|
||||||
|
#define qglTexCoord1i glTexCoord1i
|
||||||
|
#define qglTexCoord1iv glTexCoord1iv
|
||||||
|
#define qglTexCoord1s glTexCoord1s
|
||||||
|
#define qglTexCoord1sv glTexCoord1sv
|
||||||
|
#define qglTexCoord2d glTexCoord2d
|
||||||
|
#define qglTexCoord2dv glTexCoord2dv
|
||||||
|
#define qglTexCoord2f glTexCoord2f
|
||||||
|
#define qglTexCoord2fv glTexCoord2fv
|
||||||
|
#define qglTexCoord2i glTexCoord2i
|
||||||
|
#define qglTexCoord2iv glTexCoord2iv
|
||||||
|
#define qglTexCoord2s glTexCoord2s
|
||||||
|
#define qglTexCoord2sv glTexCoord2sv
|
||||||
|
#define qglTexCoord3d glTexCoord3d
|
||||||
|
#define qglTexCoord3dv glTexCoord3dv
|
||||||
|
#define qglTexCoord3f glTexCoord3f
|
||||||
|
#define qglTexCoord3fv glTexCoord3fv
|
||||||
|
#define qglTexCoord3i glTexCoord3i
|
||||||
|
#define qglTexCoord3iv glTexCoord3iv
|
||||||
|
#define qglTexCoord3s glTexCoord3s
|
||||||
|
#define qglTexCoord3sv glTexCoord3sv
|
||||||
|
#define qglTexCoord4d glTexCoord4d
|
||||||
|
#define qglTexCoord4dv glTexCoord4dv
|
||||||
|
#define qglTexCoord4f glTexCoord4f
|
||||||
|
#define qglTexCoord4fv glTexCoord4fv
|
||||||
|
#define qglTexCoord4i glTexCoord4i
|
||||||
|
#define qglTexCoord4iv glTexCoord4iv
|
||||||
|
#define qglTexCoord4s glTexCoord4s
|
||||||
|
#define qglTexCoord4sv glTexCoord4sv
|
||||||
|
#define qglTexCoordPointer glTexCoordPointer
|
||||||
|
#define qglTexEnvf glTexEnvf
|
||||||
|
#define qglTexEnvfv glTexEnvfv
|
||||||
|
#define qglTexEnvi glTexEnvi
|
||||||
|
#define qglTexEnviv glTexEnviv
|
||||||
|
#define qglTexGend glTexGend
|
||||||
|
#define qglTexGendv glTexGendv
|
||||||
|
#define qglTexGenf glTexGenf
|
||||||
|
#define qglTexGenfv glTexGenfv
|
||||||
|
#define qglTexGeni glTexGeni
|
||||||
|
#define qglTexGeniv glTexGeniv
|
||||||
|
#define qglTexImage1D glTexImage1D
|
||||||
|
#define qglTexImage2D glTexImage2D
|
||||||
|
#define qglTexParameterf glTexParameterf
|
||||||
|
#define qglTexParameterfv glTexParameterfv
|
||||||
|
#define qglTexParameteri glTexParameteri
|
||||||
|
#define qglTexParameteriv glTexParameteriv
|
||||||
|
#define qglTexSubImage1D glTexSubImage1D
|
||||||
|
#define qglTexSubImage2D glTexSubImage2D
|
||||||
|
#define qglTranslated glTranslated
|
||||||
|
#define qglTranslatef glTranslatef
|
||||||
|
#define qglVertex2d glVertex2d
|
||||||
|
#define qglVertex2dv glVertex2dv
|
||||||
|
#define qglVertex2f glVertex2f
|
||||||
|
#define qglVertex2fv glVertex2fv
|
||||||
|
#define qglVertex2i glVertex2i
|
||||||
|
#define qglVertex2iv glVertex2iv
|
||||||
|
#define qglVertex2s glVertex2s
|
||||||
|
#define qglVertex2sv glVertex2sv
|
||||||
|
#define qglVertex3d glVertex3d
|
||||||
|
#define qglVertex3dv glVertex3dv
|
||||||
|
#define qglVertex3f glVertex3f
|
||||||
|
#define qglVertex3fv glVertex3fv
|
||||||
|
#define qglVertex3i glVertex3i
|
||||||
|
#define qglVertex3iv glVertex3iv
|
||||||
|
#define qglVertex3s glVertex3s
|
||||||
|
#define qglVertex3sv glVertex3sv
|
||||||
|
#define qglVertex4d glVertex4d
|
||||||
|
#define qglVertex4dv glVertex4dv
|
||||||
|
#define qglVertex4f glVertex4f
|
||||||
|
#define qglVertex4fv glVertex4fv
|
||||||
|
#define qglVertex4i glVertex4i
|
||||||
|
#define qglVertex4iv glVertex4iv
|
||||||
|
#define qglVertex4s glVertex4s
|
||||||
|
#define qglVertex4sv glVertex4sv
|
||||||
|
#define qglVertexPointer glVertexPointer
|
||||||
|
#define qglViewport glViewport
|
||||||
|
|
|
@ -1019,11 +1019,7 @@ void R_Register( void )
|
||||||
r_ext_gamma_control = Cvar_Get( "r_ext_gamma_control", "1", CVAR_ARCHIVE | CVAR_LATCH );
|
r_ext_gamma_control = Cvar_Get( "r_ext_gamma_control", "1", CVAR_ARCHIVE | CVAR_LATCH );
|
||||||
r_ext_multitexture = Cvar_Get( "r_ext_multitexture", "1", CVAR_ARCHIVE | CVAR_LATCH );
|
r_ext_multitexture = Cvar_Get( "r_ext_multitexture", "1", CVAR_ARCHIVE | CVAR_LATCH );
|
||||||
r_ext_compiled_vertex_array = Cvar_Get( "r_ext_compiled_vertex_array", "1", CVAR_ARCHIVE | CVAR_LATCH);
|
r_ext_compiled_vertex_array = Cvar_Get( "r_ext_compiled_vertex_array", "1", CVAR_ARCHIVE | CVAR_LATCH);
|
||||||
#ifdef __linux__ // broken on linux
|
|
||||||
r_ext_texture_env_add = Cvar_Get( "r_ext_texture_env_add", "0", CVAR_ARCHIVE | CVAR_LATCH);
|
|
||||||
#else
|
|
||||||
r_ext_texture_env_add = Cvar_Get( "r_ext_texture_env_add", "1", CVAR_ARCHIVE | CVAR_LATCH);
|
r_ext_texture_env_add = Cvar_Get( "r_ext_texture_env_add", "1", CVAR_ARCHIVE | CVAR_LATCH);
|
||||||
#endif
|
|
||||||
r_ext_texture_filter_anisotropic = Cvar_Get( "r_ext_texture_filter_anisotropic", "16", CVAR_ARCHIVE );
|
r_ext_texture_filter_anisotropic = Cvar_Get( "r_ext_texture_filter_anisotropic", "16", CVAR_ARCHIVE );
|
||||||
|
|
||||||
r_DynamicGlow = Cvar_Get( "r_DynamicGlow", "0", CVAR_ARCHIVE );
|
r_DynamicGlow = Cvar_Get( "r_DynamicGlow", "0", CVAR_ARCHIVE );
|
||||||
|
@ -1042,11 +1038,7 @@ void R_Register( void )
|
||||||
r_texturebitslm = Cvar_Get( "r_texturebitslm", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
r_texturebitslm = Cvar_Get( "r_texturebitslm", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
||||||
r_colorbits = Cvar_Get( "r_colorbits", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
r_colorbits = Cvar_Get( "r_colorbits", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
||||||
r_stereo = Cvar_Get( "r_stereo", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
r_stereo = Cvar_Get( "r_stereo", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
||||||
#ifdef __linux__
|
|
||||||
r_stencilbits = Cvar_Get( "r_stencilbits", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
|
||||||
#else
|
|
||||||
r_stencilbits = Cvar_Get( "r_stencilbits", "8", CVAR_ARCHIVE | CVAR_LATCH );
|
r_stencilbits = Cvar_Get( "r_stencilbits", "8", CVAR_ARCHIVE | CVAR_LATCH );
|
||||||
#endif
|
|
||||||
r_depthbits = Cvar_Get( "r_depthbits", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
r_depthbits = Cvar_Get( "r_depthbits", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
||||||
r_overBrightBits = Cvar_Get ("r_overBrightBits", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
r_overBrightBits = Cvar_Get ("r_overBrightBits", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
||||||
r_ignorehwgamma = Cvar_Get( "r_ignorehwgamma", "0", CVAR_ARCHIVE | CVAR_LATCH);
|
r_ignorehwgamma = Cvar_Get( "r_ignorehwgamma", "0", CVAR_ARCHIVE | CVAR_LATCH);
|
||||||
|
|
92
codemp/sdl/sdl_gamma.cpp
Normal file
92
codemp/sdl/sdl_gamma.cpp
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
/*
|
||||||
|
===========================================================================
|
||||||
|
Copyright (C) 1999-2005 Id Software, Inc.
|
||||||
|
|
||||||
|
This file is part of Quake III Arena source code.
|
||||||
|
|
||||||
|
Quake III Arena source code is free software; you can redistribute it
|
||||||
|
and/or modify it under the terms of the GNU General Public License as
|
||||||
|
published by the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
Quake III Arena source code is distributed in the hope that it will be
|
||||||
|
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with Quake III Arena source code; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
===========================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef USE_LOCAL_HEADERS
|
||||||
|
# include "SDL.h"
|
||||||
|
#else
|
||||||
|
# include <SDL.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "../game/q_shared.h"
|
||||||
|
#include "../renderer/tr_local.h"
|
||||||
|
#include "../qcommon/qcommon.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
=================
|
||||||
|
GLimp_SetGamma
|
||||||
|
=================
|
||||||
|
*/
|
||||||
|
void GLimp_SetGamma( unsigned char red[256], unsigned char green[256], unsigned char blue[256] )
|
||||||
|
{
|
||||||
|
Uint16 table[3][256];
|
||||||
|
int i, j;
|
||||||
|
|
||||||
|
if( !glConfig.deviceSupportsGamma || r_ignorehwgamma->integer > 0 )
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (i = 0; i < 256; i++)
|
||||||
|
{
|
||||||
|
table[0][i] = ( ( ( Uint16 ) red[i] ) << 8 ) | red[i];
|
||||||
|
table[1][i] = ( ( ( Uint16 ) green[i] ) << 8 ) | green[i];
|
||||||
|
table[2][i] = ( ( ( Uint16 ) blue[i] ) << 8 ) | blue[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
|
// Win2K and newer put this odd restriction on gamma ramps...
|
||||||
|
{
|
||||||
|
OSVERSIONINFO vinfo;
|
||||||
|
|
||||||
|
vinfo.dwOSVersionInfoSize = sizeof( vinfo );
|
||||||
|
GetVersionEx( &vinfo );
|
||||||
|
if( vinfo.dwMajorVersion >= 5 && vinfo.dwPlatformId == VER_PLATFORM_WIN32_NT )
|
||||||
|
{
|
||||||
|
ri.Printf( PRINT_DEVELOPER, "performing gamma clamp.\n" );
|
||||||
|
for( j = 0 ; j < 3 ; j++ )
|
||||||
|
{
|
||||||
|
for( i = 0 ; i < 128 ; i++ )
|
||||||
|
{
|
||||||
|
if( table[ j ] [ i] > ( ( 128 + i ) << 8 ) )
|
||||||
|
table[ j ][ i ] = ( 128 + i ) << 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( table[ j ] [127 ] > 254 << 8 )
|
||||||
|
table[ j ][ 127 ] = 254 << 8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// enforce constantly increasing
|
||||||
|
for (j = 0; j < 3; j++)
|
||||||
|
{
|
||||||
|
for (i = 1; i < 256; i++)
|
||||||
|
{
|
||||||
|
if (table[j][i] < table[j][i-1])
|
||||||
|
table[j][i] = table[j][i-1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SDL_SetGammaRamp(table[0], table[1], table[2]);
|
||||||
|
}
|
||||||
|
|
1207
codemp/sdl/sdl_glimp.cpp
Normal file
1207
codemp/sdl/sdl_glimp.cpp
Normal file
File diff suppressed because it is too large
Load diff
1107
codemp/sdl/sdl_input.cpp
Normal file
1107
codemp/sdl/sdl_input.cpp
Normal file
File diff suppressed because it is too large
Load diff
11
codemp/sdl/sdl_local.h
Normal file
11
codemp/sdl/sdl_local.h
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#include "../game/q_shared.h"
|
||||||
|
#include "../qcommon/qcommon.h"
|
||||||
|
#include "../client/client.h"
|
||||||
|
|
||||||
|
void IN_Init( void );
|
||||||
|
void IN_Shutdown( void );
|
||||||
|
void IN_Restart( void );
|
||||||
|
|
||||||
|
void Sys_GLimpSafeInit( void );
|
||||||
|
void Sys_GLimpInit( void );
|
||||||
|
void Sys_QueEvent( int time, sysEventType_t type, int value, int value2, int ptrLength, void *ptr );
|
82
codemp/unix/unix_glimp_common.cpp
Normal file
82
codemp/unix/unix_glimp_common.cpp
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
#include <pthread.h>
|
||||||
|
#include <semaphore.h>
|
||||||
|
#include "../game/q_shared.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
===========================================================
|
||||||
|
|
||||||
|
SMP acceleration
|
||||||
|
|
||||||
|
===========================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
sem_t renderCommandsEvent;
|
||||||
|
sem_t renderCompletedEvent;
|
||||||
|
sem_t renderActiveEvent;
|
||||||
|
|
||||||
|
void (*glimpRenderThread)( void );
|
||||||
|
|
||||||
|
void *GLimp_RenderThreadWrapper( void *stub ) {
|
||||||
|
glimpRenderThread();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
=======================
|
||||||
|
GLimp_SpawnRenderThread
|
||||||
|
=======================
|
||||||
|
*/
|
||||||
|
pthread_t renderThreadHandle;
|
||||||
|
qboolean GLimp_SpawnRenderThread( void (*function)( void ) ) {
|
||||||
|
|
||||||
|
sem_init( &renderCommandsEvent, 0, 0 );
|
||||||
|
sem_init( &renderCompletedEvent, 0, 0 );
|
||||||
|
sem_init( &renderActiveEvent, 0, 0 );
|
||||||
|
|
||||||
|
glimpRenderThread = function;
|
||||||
|
|
||||||
|
if (pthread_create( &renderThreadHandle, NULL,
|
||||||
|
GLimp_RenderThreadWrapper, NULL)) {
|
||||||
|
return qfalse;
|
||||||
|
}
|
||||||
|
|
||||||
|
return qtrue;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *smpData;
|
||||||
|
|
||||||
|
void *GLimp_RendererSleep( void ) {
|
||||||
|
void *data;
|
||||||
|
|
||||||
|
// after this, the front end can exit GLimp_FrontEndSleep
|
||||||
|
sem_post ( &renderCompletedEvent );
|
||||||
|
|
||||||
|
sem_wait ( &renderCommandsEvent );
|
||||||
|
|
||||||
|
data = smpData;
|
||||||
|
|
||||||
|
// after this, the main thread can exit GLimp_WakeRenderer
|
||||||
|
sem_post ( &renderActiveEvent );
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GLimp_FrontEndSleep( void ) {
|
||||||
|
sem_wait ( &renderCompletedEvent );
|
||||||
|
}
|
||||||
|
|
||||||
|
void GLimp_WakeRenderer( void *data ) {
|
||||||
|
smpData = data;
|
||||||
|
|
||||||
|
// after this, the renderer can continue through GLimp_RendererSleep
|
||||||
|
sem_post( &renderCommandsEvent );
|
||||||
|
|
||||||
|
sem_wait( &renderActiveEvent );
|
||||||
|
}
|
||||||
|
|
||||||
|
void Sys_GLimpInit( void )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void Sys_GLimpSafeInit( void )
|
||||||
|
{
|
||||||
|
}
|
|
@ -212,7 +212,7 @@ void Sys_Init(void)
|
||||||
|
|
||||||
Cvar_Set( "username", Sys_GetCurrentUser() );
|
Cvar_Set( "username", Sys_GetCurrentUser() );
|
||||||
|
|
||||||
IN_Init();
|
// IN_Init();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue