From 954c80a8b5a020d700bee6d65b5d79da6498b7aa Mon Sep 17 00:00:00 2001 From: arQon <(none)> Date: Thu, 29 Dec 2016 20:13:59 -0800 Subject: [PATCH] merge the new build system use the "premake" tool from the cnq3tools repo with "--quake3dir=" to generate a VS sln and gcc makefiles this changeset also removes the "clever" handling of fullscreen/windowed changes which didn't actually work and just broke windowed mode --- .gitignore | 1 + code/client/cl_console.cpp | 4 - code/client/client.h | 1 - .../builds/win32/visualc.2008/freetype.vcproj | 361 --- .../win32/visualc.2010/freetype.vcxproj | 195 -- .../visualc.2010/freetype.vcxproj.filters | 68 - .../builds/win32/visualc/freetype.vcproj | 349 --- code/qcommon/cmd.cpp | 4 + code/qcommon/common.cpp | 98 +- code/qcommon/files.cpp | 19 +- code/qcommon/msg.cpp | 19 +- code/qcommon/q_math.c | 9 +- code/qcommon/q_shared.c | 11 +- code/qcommon/q_shared.h | 4 - code/qcommon/vm.cpp | 4 +- code/qcommon/vm_x86.cpp | 64 +- code/renderer/qgl.h | 2 +- code/renderer/tr_arb.cpp | 2 +- code/renderer/tr_backend.cpp | 24 +- code/renderer/tr_flares.cpp | 6 +- code/renderer/tr_init.cpp | 32 - code/renderer/tr_light.cpp | 10 +- code/renderer/tr_local.h | 22 +- code/renderer/tr_main.cpp | 146 +- code/renderer/tr_mesh.cpp | 4 +- code/renderer/tr_scene.cpp | 8 +- code/renderer/tr_shade.cpp | 4 +- code/renderer/tr_shade_calc.cpp | 62 +- code/renderer/tr_shader.cpp | 4 +- code/renderer/tr_sky.cpp | 10 +- code/renderer/tr_surface.cpp | 34 +- code/renderer/tr_world.cpp | 4 +- code/server/sv_init.cpp | 4 + code/unix/ftola.s | 160 - code/unix/linux_glimp.c | 476 +-- code/unix/linux_qgl.c | 124 +- code/unix/matha.s | 424 --- code/unix/qasm.h | 50 - code/unix/unix_main.cpp | 13 + code/win32/msvc.2008/botlib.vcproj | 1023 ------- code/win32/msvc.2008/cgame.def | 3 - code/win32/msvc.2008/cgame.vcproj | 1399 --------- code/win32/msvc.2008/game.def | 3 - code/win32/msvc.2008/game.vcproj | 2561 ----------------- code/win32/msvc.2008/q3_ui.def | 3 - code/win32/msvc.2008/q3_ui.vcproj | 2441 ---------------- code/win32/msvc.2008/quake3.sln | 44 - code/win32/msvc.2008/quake3.vcproj | 1654 ----------- code/win32/msvc.2008/renderer.vcproj | 1708 ----------- code/win32/msvc.2008/ui.def | 3 - code/win32/msvc.2008/ui.vcproj | 1171 -------- code/win32/msvc.2010/botlib.vcxproj | 425 --- code/win32/msvc.2010/botlib.vcxproj.filters | 197 -- code/win32/msvc.2010/quake3.sln | 42 - code/win32/msvc.2010/quake3.vcxproj | 663 ----- code/win32/msvc.2010/quake3.vcxproj.filters | 275 -- code/win32/msvc.2010/renderer.vcxproj | 626 ---- code/win32/msvc.2010/renderer.vcxproj.filters | 278 -- code/win32/msvc.2013/botlib.vcxproj | 431 --- code/win32/msvc.2013/botlib.vcxproj.filters | 197 -- code/win32/msvc.2013/quake3.sln | 42 - code/win32/msvc.2013/quake3.vcxproj | 671 ----- code/win32/msvc.2013/quake3.vcxproj.filters | 275 -- code/win32/msvc.2013/renderer.vcxproj | 626 ---- code/win32/msvc.2013/renderer.vcxproj.filters | 272 -- code/win32/msvc/botlib.vcproj | 1008 ------- code/win32/msvc/cgame.def | 3 - code/win32/msvc/cgame.vcproj | 1399 --------- code/win32/msvc/game.def | 3 - code/win32/msvc/game.vcproj | 2561 ----------------- code/win32/msvc/q3_ui.def | 3 - code/win32/msvc/q3_ui.vcproj | 2441 ---------------- code/win32/msvc/quake3.sln | 44 - code/win32/msvc/quake3.vcproj | 1639 ----------- code/win32/msvc/renderer.vcproj | 1693 ----------- code/win32/msvc/ui.def | 3 - code/win32/msvc/ui.vcproj | 1171 -------- code/win32/win_glimp.cpp | 199 +- code/win32/win_input.cpp | 392 +-- code/win32/win_local.h | 17 +- code/win32/win_main.cpp | 190 +- code/win32/win_qgl.c | 2 +- code/win32/win_snd.cpp | 162 +- code/win32/win_wndproc.cpp | 269 +- code/win32/windows.h | 20 + sys/premake5.lua | 531 ++++ 86 files changed, 1365 insertions(+), 32254 deletions(-) delete mode 100644 code/freetype/builds/win32/visualc.2008/freetype.vcproj delete mode 100644 code/freetype/builds/win32/visualc.2010/freetype.vcxproj delete mode 100644 code/freetype/builds/win32/visualc.2010/freetype.vcxproj.filters delete mode 100644 code/freetype/builds/win32/visualc/freetype.vcproj delete mode 100644 code/unix/ftola.s delete mode 100644 code/unix/matha.s delete mode 100644 code/unix/qasm.h delete mode 100644 code/win32/msvc.2008/botlib.vcproj delete mode 100644 code/win32/msvc.2008/cgame.def delete mode 100644 code/win32/msvc.2008/cgame.vcproj delete mode 100644 code/win32/msvc.2008/game.def delete mode 100644 code/win32/msvc.2008/game.vcproj delete mode 100644 code/win32/msvc.2008/q3_ui.def delete mode 100644 code/win32/msvc.2008/q3_ui.vcproj delete mode 100644 code/win32/msvc.2008/quake3.sln delete mode 100644 code/win32/msvc.2008/quake3.vcproj delete mode 100644 code/win32/msvc.2008/renderer.vcproj delete mode 100644 code/win32/msvc.2008/ui.def delete mode 100644 code/win32/msvc.2008/ui.vcproj delete mode 100644 code/win32/msvc.2010/botlib.vcxproj delete mode 100644 code/win32/msvc.2010/botlib.vcxproj.filters delete mode 100644 code/win32/msvc.2010/quake3.sln delete mode 100644 code/win32/msvc.2010/quake3.vcxproj delete mode 100644 code/win32/msvc.2010/quake3.vcxproj.filters delete mode 100644 code/win32/msvc.2010/renderer.vcxproj delete mode 100644 code/win32/msvc.2010/renderer.vcxproj.filters delete mode 100644 code/win32/msvc.2013/botlib.vcxproj delete mode 100644 code/win32/msvc.2013/botlib.vcxproj.filters delete mode 100644 code/win32/msvc.2013/quake3.sln delete mode 100644 code/win32/msvc.2013/quake3.vcxproj delete mode 100644 code/win32/msvc.2013/quake3.vcxproj.filters delete mode 100644 code/win32/msvc.2013/renderer.vcxproj delete mode 100644 code/win32/msvc.2013/renderer.vcxproj.filters delete mode 100644 code/win32/msvc/botlib.vcproj delete mode 100644 code/win32/msvc/cgame.def delete mode 100644 code/win32/msvc/cgame.vcproj delete mode 100644 code/win32/msvc/game.def delete mode 100644 code/win32/msvc/game.vcproj delete mode 100644 code/win32/msvc/q3_ui.def delete mode 100644 code/win32/msvc/q3_ui.vcproj delete mode 100644 code/win32/msvc/quake3.sln delete mode 100644 code/win32/msvc/quake3.vcproj delete mode 100644 code/win32/msvc/renderer.vcproj delete mode 100644 code/win32/msvc/ui.def delete mode 100644 code/win32/msvc/ui.vcproj create mode 100644 code/win32/windows.h create mode 100644 sys/premake5.lua diff --git a/.gitignore b/.gitignore index b84a1d3..bfc00ab 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ *.idb code/freetype/objs/ code/freetype/builds/ +code/qcommon/git.h code/win32/msvc*/build/ code/win32/msvc*/*user* code/win32/msvc*/*sdf diff --git a/code/client/cl_console.cpp b/code/client/cl_console.cpp index 05d9452..1da26de 100644 --- a/code/client/cl_console.cpp +++ b/code/client/cl_console.cpp @@ -79,8 +79,6 @@ void Con_ToggleConsole_f( void ) Con_ClearNotify(); cls.keyCatchers ^= KEYCATCH_CONSOLE; - - in_keyboardShortcuts->modified = qtrue; // drakkar } /* @@ -672,6 +670,4 @@ void Con_Close() cls.keyCatchers &= ~KEYCATCH_CONSOLE; con.finalFrac = 0; // none visible con.displayFrac = 0; - - in_keyboardShortcuts->modified = qtrue; // drakkar } diff --git a/code/client/client.h b/code/client/client.h index 5f60fd0..721c674 100644 --- a/code/client/client.h +++ b/code/client/client.h @@ -342,7 +342,6 @@ extern cvar_t *cl_aviMotionJpeg; extern cvar_t *cl_allowDownload; extern cvar_t *cl_inGameVideo; -extern cvar_t *in_keyboardShortcuts; // drakkar //================================================= diff --git a/code/freetype/builds/win32/visualc.2008/freetype.vcproj b/code/freetype/builds/win32/visualc.2008/freetype.vcproj deleted file mode 100644 index eb0a4b5..0000000 --- a/code/freetype/builds/win32/visualc.2008/freetype.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/code/freetype/builds/win32/visualc.2010/freetype.vcxproj b/code/freetype/builds/win32/visualc.2010/freetype.vcxproj deleted file mode 100644 index c0d4eb5..0000000 --- a/code/freetype/builds/win32/visualc.2010/freetype.vcxproj +++ /dev/null @@ -1,195 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} - freetype - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - true - v120 - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - .\..\..\..\objs\release\ - .\..\..\..\objs\release\ - $(ProjectDir)..\..\..\objs\ - $(ProjectDir)..\..\..\objs\debug\ - AllRules.ruleset - - - AllRules.ruleset - - - $(ProjectName)_D - - - - Full - OnlyExplicitInline - ..\..\..\include;%(AdditionalIncludeDirectories) - NDEBUG;WIN32;_LIB;FT2_BUILD_LIBRARY;%(PreprocessorDefinitions) - true - MultiThreaded - false - StreamingSIMDExtensions - true - false - .\..\..\..\objs\release/freetype.pch - .\..\..\..\objs\release/ - .\..\..\..\objs\release/ - .\..\..\..\objs\release/ - Level4 - OldStyle - Default - 4001;%(DisableSpecificWarnings) - false - true - false - false - false - false - Default - false - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - ..\..\..\objs\freetype.lib - true - NoErrorReport - false - MachineX86 - Windows - - - - - Disabled - ..\..\..\include;%(AdditionalIncludeDirectories) - _DEBUG;WIN32;_LIB;FT2_BUILD_LIBRARY;_BIND_TO_CURRENT_VCLIBS_VERSION=1;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - true - $(ProjectDir)..\..\..\objs\debug/freetype.pch - $(ProjectDir)..\..\..\objs\debug/ - $(ProjectDir)..\..\..\objs\debug/ - $(ProjectDir)..\..\..\objs\debug/ - Level4 - ProgramDatabase - Default - 4001;%(DisableSpecificWarnings) - false - false - false - true - false - NotSet - false - false - false - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(ProjectDir)..\..\..\objs\freetype_D.lib - true - Windows - MachineX86 - false - - - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - - - - - - - - - - - - \ No newline at end of file diff --git a/code/freetype/builds/win32/visualc.2010/freetype.vcxproj.filters b/code/freetype/builds/win32/visualc.2010/freetype.vcxproj.filters deleted file mode 100644 index 20d6069..0000000 --- a/code/freetype/builds/win32/visualc.2010/freetype.vcxproj.filters +++ /dev/null @@ -1,68 +0,0 @@ - - - - - {045c3a5e-02e2-43fd-86c0-82fb2240e814} - cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - - - {e887b5a7-8f06-49df-82b1-f7b9decd8338} - - - {c196809d-631a-4b51-a196-dc027b79dbcc} - h;hpp;hxx;hm;inl - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files\FT_MODULES - - - Source Files\FT_MODULES - - - Source Files\FT_MODULES - - - Source Files\FT_MODULES - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/code/freetype/builds/win32/visualc/freetype.vcproj b/code/freetype/builds/win32/visualc/freetype.vcproj deleted file mode 100644 index 8a5959b..0000000 --- a/code/freetype/builds/win32/visualc/freetype.vcproj +++ /dev/null @@ -1,349 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/code/qcommon/cmd.cpp b/code/qcommon/cmd.cpp index 3b479ff..e3552fc 100644 --- a/code/qcommon/cmd.cpp +++ b/code/qcommon/cmd.cpp @@ -488,16 +488,19 @@ void Cmd_ExecuteString( const char* text ) return; } +#ifndef DEDICATED // check client game commands if ( com_cl_running && com_cl_running->integer && CL_GameCommand() ) { return; } +#endif // check server game commands if ( com_sv_running && com_sv_running->integer && SV_GameCommand() ) { return; } +#ifndef DEDICATED // check ui commands if ( com_cl_running && com_cl_running->integer && UI_GameCommand() ) { return; @@ -506,6 +509,7 @@ void Cmd_ExecuteString( const char* text ) // send it as a server command if we are connected // this will usually result in a chat message CL_ForwardCommandToServer( text ); +#endif } diff --git a/code/qcommon/common.cpp b/code/qcommon/common.cpp index 1d1b2f6..76071f9 100644 --- a/code/qcommon/common.cpp +++ b/code/qcommon/common.cpp @@ -30,6 +30,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include // umask #endif +#if defined(_MSC_VER) +#include "../win32/windows.h" +#endif + #define MIN_DEDICATED_COMHUNKMEGS 8 #define MIN_COMHUNKMEGS 56 @@ -217,10 +221,8 @@ void QDECL Com_Error( int code, const char *fmt, ... ) #if defined(_WIN32) && defined(_DEBUG) if ( code != ERR_DISCONNECT && code != ERR_NEED_CD ) { - if (!com_noErrorInterrupt->integer) { - __asm { - int 0x03 - } + if (!com_noErrorInterrupt->integer && IsDebuggerPresent()) { + __debugbreak(); } } #endif @@ -260,19 +262,24 @@ void QDECL Com_Error( int code, const char *fmt, ... ) } if ( code == ERR_SERVERDISCONNECT ) { +#ifndef DEDICATED CL_Disconnect( qtrue ); CL_FlushMemory(); +#endif com_errorEntered = qfalse; longjmp (abortframe, -1); } else if ( code == ERR_DROP || code == ERR_DISCONNECT ) { Com_Printf( "********************\nERROR: %s\n********************\n", com_errorMessage ); SV_Shutdown( va("Server crashed: %s", com_errorMessage) ); +#ifndef DEDICATED CL_Disconnect( qtrue ); CL_FlushMemory(); +#endif com_errorEntered = qfalse; longjmp (abortframe, -1); } else if ( code == ERR_NEED_CD ) { SV_Shutdown( "Server didn't have CD" ); +#ifndef DEDICATED if ( com_cl_running && com_cl_running->integer ) { CL_Disconnect( qtrue ); CL_FlushMemory(); @@ -281,9 +288,12 @@ void QDECL Com_Error( int code, const char *fmt, ... ) } else { Com_Printf("Server didn't have CD\n" ); } +#endif longjmp (abortframe, -1); } else { +#ifndef DEDICATED CL_Shutdown(); +#endif SV_Shutdown( va("Server fatal crashed: %s", com_errorMessage) ); } @@ -298,7 +308,9 @@ void Com_Quit_f( void ) // don't try to shutdown if we are in a recursive error if ( !com_errorEntered ) { SV_Shutdown( "Server quit" ); +#ifndef DEDICATED CL_Shutdown(); +#endif Com_Shutdown(); FS_Shutdown( qtrue ); } @@ -1401,8 +1413,10 @@ qbool Hunk_CheckMark() void Hunk_Clear() { +#ifndef DEDICATED extern void CL_ShutdownCGame(); extern void CL_ShutdownUI(); +#endif extern void SV_ShutdownGameProgs(); #ifndef DEDICATED @@ -1772,10 +1786,11 @@ int Com_EventLoop() // if no more events are available if ( ev.evType == SE_NONE ) { // manually send packet events for the loopback channel +#ifndef DEDICATED while ( NET_GetLoopPacket( NS_CLIENT, &evFrom, &buf ) ) { CL_PacketEvent( evFrom, &buf ); } - +#endif while ( NET_GetLoopPacket( NS_SERVER, &evFrom, &buf ) ) { // if the server just shut down, flush the events if ( com_sv_running->integer ) { @@ -1793,6 +1808,7 @@ int Com_EventLoop() break; case SE_NONE: break; +#ifndef DEDICATED case SE_KEY: CL_KeyEvent( ev.evValue, (ev.evValue2 != 0), ev.evTime ); break; @@ -1805,6 +1821,7 @@ int Com_EventLoop() case SE_JOYSTICK_AXIS: CL_JoystickEvent( ev.evValue, ev.evValue2, ev.evTime ); break; +#endif case SE_CONSOLE: Cbuf_AddText( (char *)ev.evPtr ); Cbuf_AddText( "\n" ); @@ -1825,7 +1842,9 @@ int Com_EventLoop() if ( com_sv_running->integer ) { Com_RunAndTimeServerPacket( evFrom, &buf ); } else { +#ifndef DEDICATED CL_PacketEvent( evFrom, &buf ); +#endif } break; } @@ -1907,6 +1926,7 @@ char cl_cdkey[34] = " "; char cl_cdkey[34] = "123456789"; #endif +#ifndef DEDICATED /* ================= Com_ReadCDKey @@ -1938,6 +1958,7 @@ void Com_ReadCDKey( const char *filename ) { } } + /* ================= Com_AppendCDKey @@ -1968,50 +1989,15 @@ void Com_AppendCDKey( const char *filename ) { } } +#else -/* -#ifndef DEDICATED -static void Com_WriteCDKey( const char *filename, const char *ikey ) -{ - fileHandle_t f; - char fbuffer[MAX_OSPATH]; - char key[17]; -#ifndef _WIN32 - mode_t savedumask; -#endif - - sprintf(fbuffer, "%s/q3key", filename); - - Q_strncpyz( key, ikey, 17 ); - - if(!CL_CDKeyValidate(key, NULL) ) { - return; - } - -#ifndef _WIN32 - savedumask = umask(0077); -#endif - f = FS_SV_FOpenFileWrite( fbuffer ); - if ( !f ) { - Com_Printf ("Couldn't write CD key to %s.\n", fbuffer ); - goto out; - } - - FS_Write( key, 16, f ); - - FS_Printf( f, "\n// generated by quake, do not modify\r\n" ); - FS_Printf( f, "// Do not give this file to ANYONE.\r\n" ); - FS_Printf( f, "// id Software and Activision will NOT ask you to send this file to them.\r\n"); - - FS_FCloseFile( f ); -out: -#ifndef _WIN32 - umask(savedumask); -#endif - return; +void Com_AppendCDKey( const char *filename ) { } + +void Com_ReadCDKey( const char *filename ) { +} + #endif -*/ #if defined(_MSC_VER) @@ -2049,7 +2035,9 @@ void Com_Init( char *commandLine ) Com_StartupVariable( "developer" ); // done early so bind command exists +#ifndef DEDICATED CL_InitKeyCommands(); +#endif FS_InitFilesystem(); @@ -2136,7 +2124,9 @@ void Com_Init( char *commandLine ) com_dedicated->modified = qfalse; if ( !com_dedicated->integer ) { +#ifndef DEDICATED CL_Init(); +#endif Sys_ShowConsole( com_viewlog->integer, qfalse ); } @@ -2160,7 +2150,9 @@ void Com_Init( char *commandLine ) // start in full screen ui mode Cvar_Set( "r_uiFullScreen", "1" ); +#ifndef DEDICATED CL_StartHunkUsers(); +#endif // make sure single player is off by default Cvar_Set( "sv_singlePlayer", "0" ); @@ -2183,7 +2175,9 @@ static void Com_WriteConfigToFile( const char* filename ) } FS_Printf(f, "// generated by quake, do not modify\n"); +#ifndef DEDICATED Key_WriteBindings(f); +#endif Cvar_WriteVariables(f); FS_FCloseFile( f ); } @@ -2315,14 +2309,25 @@ void Com_Frame() Cvar_Get( "dedicated", "0", 0 ); com_dedicated->modified = qfalse; if ( !com_dedicated->integer ) { +#ifndef DEDICATED CL_Init(); +#endif Sys_ShowConsole( com_viewlog->integer, qfalse ); } else { +#ifndef DEDICATED CL_Shutdown(); +#endif Sys_ShowConsole( 1, qtrue ); } } +#ifdef DEDICATED + if ( com_speeds->integer ) { + timeAfter = Sys_Milliseconds(); + timeBeforeEvents = timeAfter; + timeBeforeClient = timeAfter; + } +#else // // client system // @@ -2350,6 +2355,7 @@ void Com_Frame() timeAfter = Sys_Milliseconds(); } } +#endif // // report timing information diff --git a/code/qcommon/files.cpp b/code/qcommon/files.cpp index fb4c8c2..9ecf87b 100644 --- a/code/qcommon/files.cpp +++ b/code/qcommon/files.cpp @@ -553,6 +553,13 @@ fileHandle_t FS_SV_FOpenFileWrite( const char *filename ) { return f; } +static void FS_PreventSoundStutter() +{ +#ifndef DEDICATED + S_ClearSoundBuffer(); +#endif +} + /* =========== FS_SV_FOpenFileRead @@ -574,8 +581,7 @@ int FS_SV_FOpenFileRead( const char *filename, fileHandle_t *fp ) Q_strncpyz( fsh[f].name, filename, sizeof( fsh[f].name ) ); - // don't let sound stutter - S_ClearSoundBuffer(); + FS_PreventSoundStutter(); // search homepath ospath = FS_BuildOSPath( fs_homepath->string, filename, "" ); @@ -636,8 +642,7 @@ void FS_SV_Rename( const char *from, const char *to ) { Com_Error( ERR_FATAL, "Filesystem call made without initialization\n" ); } - // don't let sound stutter - S_ClearSoundBuffer(); + FS_PreventSoundStutter(); from_ospath = FS_BuildOSPath( fs_homepath->string, from, "" ); to_ospath = FS_BuildOSPath( fs_homepath->string, to, "" ); @@ -670,8 +675,7 @@ void FS_Rename( const char *from, const char *to ) { Com_Error( ERR_FATAL, "Filesystem call made without initialization\n" ); } - // don't let sound stutter - S_ClearSoundBuffer(); + FS_PreventSoundStutter(); from_ospath = FS_BuildOSPath( fs_homepath->string, fs_gamedir, from ); to_ospath = FS_BuildOSPath( fs_homepath->string, fs_gamedir, to ); @@ -774,8 +778,7 @@ fileHandle_t FS_FOpenFileAppend( const char *filename ) { Q_strncpyz( fsh[f].name, filename, sizeof( fsh[f].name ) ); - // don't let sound stutter - S_ClearSoundBuffer(); + FS_PreventSoundStutter(); ospath = FS_BuildOSPath( fs_homepath->string, fs_gamedir, filename ); diff --git a/code/qcommon/msg.cpp b/code/qcommon/msg.cpp index d7823ae..6dbd228 100644 --- a/code/qcommon/msg.cpp +++ b/code/qcommon/msg.cpp @@ -26,10 +26,6 @@ static huffman_t msgHuff; static qbool msgInit = qfalse; -//static int pcount[256]; - -extern cvar_t* cl_shownet; - /* ============================================================================== @@ -464,7 +460,12 @@ delta functions with keys ============================================================================= */ +#ifndef DEDICATED +extern cvar_t* cl_shownet; #define NETLOG(x) if ( cl_shownet->integer == 4 ) { Com_Printf("%s ", x ); }; +#else +#define NETLOG(x) +#endif static const int kbitmask[32] = { 0x00000001, 0x00000003, 0x00000007, 0x0000000F, @@ -795,9 +796,11 @@ void MSG_ReadDeltaEntity( msg_t* msg, const entityState_t* from, entityState_t* if ( MSG_ReadBits( msg, 1 ) == 1 ) { Com_Memset( to, 0, sizeof( *to ) ); to->number = MAX_GENTITIES - 1; +#ifndef DEDICATED if ( cl_shownet->integer >= 2 || cl_shownet->integer == -1 ) { Com_Printf( "%3i: #%-3i remove\n", msg->readcount, number ); } +#endif return; } @@ -812,12 +815,16 @@ void MSG_ReadDeltaEntity( msg_t* msg, const entityState_t* from, entityState_t* // shownet 2/3 will interleave with other printed info, -1 will // just print the delta records +#ifndef DEDICATED if ( cl_shownet->integer >= 2 || cl_shownet->integer == -1 ) { print = 1; Com_Printf( "%3i: #%-3i ", msg->readcount, to->number ); } else { print = 0; } +#else + print = 0; +#endif to->number = number; @@ -1114,12 +1121,16 @@ void MSG_ReadDeltaPlayerstate( msg_t* msg, const playerState_t* from, playerStat // shownet 2/3 will interleave with other printed info, -2 will // just print the delta records +#ifndef DEDICATED if ( cl_shownet->integer >= 2 || cl_shownet->integer == -2 ) { print = 1; Com_Printf( "%3i: playerstate ", msg->readcount ); } else { print = 0; } +#else + print = 0; +#endif lc = MSG_ReadByte(msg); diff --git a/code/qcommon/q_math.c b/code/qcommon/q_math.c index 7e9511d..5000908 100644 --- a/code/qcommon/q_math.c +++ b/code/qcommon/q_math.c @@ -629,7 +629,7 @@ int BoxOnPlaneSide2 (vec3_t emins, vec3_t emaxs, struct cplane_s *p) ================== */ -#if !id386 +#if !id386 || defined(__GNUC__) int BoxOnPlaneSide( const vec3_t emins, const vec3_t emaxs, const struct cplane_s* p ) { @@ -694,11 +694,10 @@ int BoxOnPlaneSide( const vec3_t emins, const vec3_t emaxs, const struct cplane_ return sides; } -#elif __GNUC__ -// use matha.s -#else -#pragma warning( disable: 4035 ) +#else + +#pragma warning( disable: 4035 ) __declspec( naked ) int BoxOnPlaneSide( const vec3_t emins, const vec3_t emaxs, const struct cplane_s* p ) { static int bops_initialized; diff --git a/code/qcommon/q_shared.c b/code/qcommon/q_shared.c index 1816c7c..2de93d9 100644 --- a/code/qcommon/q_shared.c +++ b/code/qcommon/q_shared.c @@ -24,6 +24,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include "q_shared.h" +#if defined(_DEBUG) && defined(_MSC_VER) +#include "../win32/windows.h" +#endif + #if defined(__cplusplus) extern "C" { @@ -592,10 +596,9 @@ void QDECL Com_sprintf( char *dest, int size, const char *fmt, ...) { } if (len >= size) { Com_Printf ("Com_sprintf: overflow of %i in %i\n", len, size); -#ifdef _DEBUG - __asm { - int 3; - } +#if defined(_DEBUG) && defined(_MSC_VER) + if (IsDebuggerPresent()) + __debugbreak(); #endif } Q_strncpyz (dest, bigbuffer, size ); diff --git a/code/qcommon/q_shared.h b/code/qcommon/q_shared.h index a553056..6c4ce0a 100644 --- a/code/qcommon/q_shared.h +++ b/code/qcommon/q_shared.h @@ -472,11 +472,7 @@ void AxisCopy( const vec3_t in[3], vec3_t out[3] ); struct cplane_s; void SetPlaneSignbits( struct cplane_s *out ); -#if !defined(__GNUC__) int BoxOnPlaneSide( const vec3_t emins, const vec3_t emaxs, const struct cplane_s* p ); -#else -extern "C" int BoxOnPlaneSide( const vec3_t emins, const vec3_t emaxs, const struct cplane_s* p ); -#endif float AngleMod( float a ); float LerpAngle( float from, float to, float frac ); diff --git a/code/qcommon/vm.cpp b/code/qcommon/vm.cpp index d84cff0..6c0ea0c 100644 --- a/code/qcommon/vm.cpp +++ b/code/qcommon/vm.cpp @@ -566,11 +566,11 @@ intptr_t VM_ArgPtr( intptr_t intValue ) intptr_t VM_ExplicitArgPtr( const vm_t* vm, intptr_t intValue ) { if (!intValue) - return NULL; + return 0; // bk010124 - currentVM is missing on reconnect here as well? if (!currentVM) - return NULL; + return 0; if ( vm->entryPoint ) { return (intptr_t)(vm->dataBase + intValue); diff --git a/code/qcommon/vm_x86.cpp b/code/qcommon/vm_x86.cpp index a2a9a92..240450b 100644 --- a/code/qcommon/vm_x86.cpp +++ b/code/qcommon/vm_x86.cpp @@ -24,7 +24,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include "vm_local.h" #ifdef _WIN32 -#include +#include "../win32/windows.h" #endif #ifndef _WIN32 @@ -56,47 +56,6 @@ static int pc = 0; static int *instructionPointers = NULL; - -// BEWARE: static int Q_ftol( float f ) { return (int)f; } -// does NOT work - the function needs to be naked -// there are "clever" ways to do ftol with bit-hacking, but they aren't worthwhile - -#if defined(_MSC_VER) - -static const __int16 FPU_CW = 0x0E7F; // double precision, round towards 0 - -// the float value is already sitting on the top of the FP stack - -static __declspec(naked) void QVM_ftol() -{ - static __int16 cw; - int n; - __asm { - fnstcw cw - fldcw FPU_CW - fistp n - fldcw cw - mov eax, n - ret - } -} - -#define FTOL_PTR -static int ftolPtr = (int)QVM_ftol; - -#elif defined(__GNUC__) - -#define FTOL_PTR -extern "C" int qftol0F7F( void ); -static int ftolPtr = (int)qftol0F7F; - -#else - -#error no ANSI-compatible ftol for this platform/compiler - -#endif - - static int instruction, pass; static int lastConst = 0; static int oc0, oc1, pop0, pop1; @@ -472,7 +431,7 @@ static void EmitMovEAXEDI(vm_t *vm) { EmitString( "8B 07" ); // mov eax, dword ptr [edi] } -qbool EmitMovEBXEDI(vm_t *vm, int andit) { +static qbool EmitMovEBXEDI(vm_t *vm, int andit) { if (LastCommand == LAST_COMMAND_MOV_EDI_EAX) { // mov [edi], eax compiledOfs -= 2; @@ -506,6 +465,11 @@ qbool EmitMovEBXEDI(vm_t *vm, int andit) { void VM_Compile( vm_t* vm, const vmHeader_t* header ) { + // floating point control word, for OP_CVFI + // [0] used for saving the current mode + // [1] all exceptions bits set, single-precision, round towards 0 + static int fpcw[2] = { 0x0000, 0x0F7F }; + int op; int maxLength; int v; @@ -1109,17 +1073,13 @@ void VM_Compile( vm_t* vm, const vmHeader_t* header ) EmitString( "D9 1F" ); // fstp dword ptr [edi] break; case OP_CVFI: -#ifndef FTOL_PTR // WHENHELLISFROZENOVER // bk001213 - was used in 1.17 - // not IEEE compliant, but simple and fast EmitString( "D9 07" ); // fld dword ptr [edi] + EmitString( "B8" ); // mov eax, &fp_cw[0] + Emit4( (int)&fpcw[0] ); + EmitString( "9B D9 38" ); // fnstcw word ptr [eax] + EmitString( "D9 68 04" ); // fldcw word ptr [eax+4] EmitString( "DB 1F" ); // fistp dword ptr [edi] -#else // FTOL_PTR - // call the library conversion function - EmitString( "D9 07" ); // fld dword ptr [edi] - EmitString( "FF 15" ); // call ftolPtr - Emit4( (int)&ftolPtr ); - EmitCommand(LAST_COMMAND_MOV_EDI_EAX); // mov dword ptr [edi], eax -#endif + EmitString( "D9 28" ); // fldcw word ptr [eax] break; case OP_SEX8: EmitString( "0F BE 07" ); // movsx eax, byte ptr [edi] diff --git a/code/renderer/qgl.h b/code/renderer/qgl.h index 777ef7e..9666dc4 100644 --- a/code/renderer/qgl.h +++ b/code/renderer/qgl.h @@ -32,7 +32,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #elif defined( _WIN32 ) -#include +#include "../win32/windows.h" #include #include "../win32/glext.h" diff --git a/code/renderer/tr_arb.cpp b/code/renderer/tr_arb.cpp index b720440..79935d8 100644 --- a/code/renderer/tr_arb.cpp +++ b/code/renderer/tr_arb.cpp @@ -152,7 +152,7 @@ void ARB_SetupLight() qglProgramLocalParameter4f( GL_FRAGMENT_PROGRAM_ARB, 1, 1.0 / Square(dl->radius), 0, 0, 0 ); qglProgramEnvParameter4f( GL_VERTEX_PROGRAM_ARB, VP_GLOBAL_EYEPOS, - backEnd.or.viewOrigin[0], backEnd.or.viewOrigin[1], backEnd.or.viewOrigin[2], 0 ); + backEnd.orient.viewOrigin[0], backEnd.orient.viewOrigin[1], backEnd.orient.viewOrigin[2], 0 ); } diff --git a/code/renderer/tr_backend.cpp b/code/renderer/tr_backend.cpp index 6bd103e..0c87686 100644 --- a/code/renderer/tr_backend.cpp +++ b/code/renderer/tr_backend.cpp @@ -413,10 +413,10 @@ static void RB_BeginDrawingView() plane[2] = backEnd.viewParms.portalPlane.normal[2]; plane[3] = backEnd.viewParms.portalPlane.dist; - plane2[0] = DotProduct (backEnd.viewParms.or.axis[0], plane); - plane2[1] = DotProduct (backEnd.viewParms.or.axis[1], plane); - plane2[2] = DotProduct (backEnd.viewParms.or.axis[2], plane); - plane2[3] = DotProduct (plane, backEnd.viewParms.or.origin) - plane[3]; + plane2[0] = DotProduct (backEnd.viewParms.orient.axis[0], plane); + plane2[1] = DotProduct (backEnd.viewParms.orient.axis[1], plane); + plane2[2] = DotProduct (backEnd.viewParms.orient.axis[2], plane); + plane2[3] = DotProduct (plane, backEnd.viewParms.orient.origin) - plane[3]; qglLoadMatrixf( s_flipMatrix ); qglClipPlane (GL_CLIP_PLANE0, plane2); @@ -491,7 +491,7 @@ static void RB_RenderDrawSurfList( const drawSurf_t* drawSurfs, int numDrawSurfs tess.shaderTime = backEnd.refdef.floatTime - tess.shader->timeOffset; // set up the transformation matrix - R_RotateForEntity( backEnd.currentEntity, &backEnd.viewParms, &backEnd.or ); + R_RotateForEntity( backEnd.currentEntity, &backEnd.viewParms, &backEnd.orient ); if ( backEnd.currentEntity->e.renderfx & RF_DEPTHHACK ) { // hack the depth range to prevent view model from poking into walls @@ -500,13 +500,13 @@ static void RB_RenderDrawSurfList( const drawSurf_t* drawSurfs, int numDrawSurfs } else { backEnd.currentEntity = &tr.worldEntity; backEnd.refdef.floatTime = originalTime; - backEnd.or = backEnd.viewParms.world; + backEnd.orient = backEnd.viewParms.world; // we have to reset the shaderTime as well otherwise image animations on // the world (like water) continue with the wrong frame tess.shaderTime = backEnd.refdef.floatTime - tess.shader->timeOffset; } - qglLoadMatrixf( backEnd.or.modelMatrix ); + qglLoadMatrixf( backEnd.orient.modelMatrix ); // // change depthrange if needed @@ -605,9 +605,9 @@ static void RB_RenderLitSurfList( dlight_t* dl ) tess.shaderTime = backEnd.refdef.floatTime - tess.shader->timeOffset; // set up the transformation matrix - R_RotateForEntity( backEnd.currentEntity, &backEnd.viewParms, &backEnd.or ); + R_RotateForEntity( backEnd.currentEntity, &backEnd.viewParms, &backEnd.orient ); - R_TransformDlights( 1, dl, &backEnd.or ); + R_TransformDlights( 1, dl, &backEnd.orient ); ARB_SetupLight(); if ( backEnd.currentEntity->e.renderfx & RF_DEPTHHACK ) { @@ -617,15 +617,15 @@ static void RB_RenderLitSurfList( dlight_t* dl ) } else { backEnd.currentEntity = &tr.worldEntity; backEnd.refdef.floatTime = originalTime; - backEnd.or = backEnd.viewParms.world; + backEnd.orient = backEnd.viewParms.world; // we have to reset the shaderTime as well otherwise image animations on // the world (like water) continue with the wrong frame tess.shaderTime = backEnd.refdef.floatTime - tess.shader->timeOffset; - R_TransformDlights( 1, dl, &backEnd.or ); + R_TransformDlights( 1, dl, &backEnd.orient ); ARB_SetupLight(); } - qglLoadMatrixf( backEnd.or.modelMatrix ); + qglLoadMatrixf( backEnd.orient.modelMatrix ); // // change depthrange if needed diff --git a/code/renderer/tr_flares.cpp b/code/renderer/tr_flares.cpp index f8d3ef9..7b7c8e6 100644 --- a/code/renderer/tr_flares.cpp +++ b/code/renderer/tr_flares.cpp @@ -131,7 +131,7 @@ void RB_AddFlare( void *surface, int fogNum, vec3_t point, vec3_t color, vec3_t if(normal && (normal[0] || normal[1] || normal[2])) { - VectorSubtract( backEnd.viewParms.or.origin, point, local ); + VectorSubtract( backEnd.viewParms.orient.origin, point, local ); VectorNormalizeFast(local); d = DotProduct(local, normal); @@ -142,7 +142,7 @@ void RB_AddFlare( void *surface, int fogNum, vec3_t point, vec3_t color, vec3_t // if the point is off the screen, don't bother adding it // calculate screen coordinates and depth - R_TransformModelToClip( point, backEnd.or.modelMatrix, + R_TransformModelToClip( point, backEnd.orient.modelMatrix, backEnd.viewParms.projectionMatrix, eye, clip ); // check to see if the point is completely off screen @@ -477,7 +477,7 @@ void RB_RenderFlares (void) { // Reset currentEntity to world so that any previously referenced entities // don't have influence on the rendering of these flares (i.e. RF_ renderer flags). backEnd.currentEntity = &tr.worldEntity; - backEnd.or = backEnd.viewParms.world; + backEnd.orient = backEnd.viewParms.world; // if we use it - flare is blink //RB_AddDlightFlares(); diff --git a/code/renderer/tr_init.cpp b/code/renderer/tr_init.cpp index 7a9c336..2d01ecd 100644 --- a/code/renderer/tr_init.cpp +++ b/code/renderer/tr_init.cpp @@ -477,34 +477,6 @@ void GfxInfo_f( void ) } -static void R_WindowMode_f() -{ - const char *str = ri.Cmd_Argv(1); - - if ( !Q_stricmpn( str, "restart", 7 ) ) GLimp_WindowMode( WMODE_RESTART ); - else if( !Q_stricmpn( str, "minimized", 3 ) ) GLimp_WindowMode( WMODE_SET_MINIMIZED ); - else if( !Q_stricmpn( str, "windowed", 3 ) ) GLimp_WindowMode( WMODE_SET_WINDOWED ); - else if( !Q_stricmpn( str, "fullscreen", 4 ) ) GLimp_WindowMode( WMODE_SET_FULLSCREEN ); - else if( !Q_stricmpn( str, "swapFullscreen", 8 ) ) GLimp_WindowMode( WMODE_SWAP_FULLSCREEN ); - else if( !Q_stricmpn( str, "swapMinimized", 7 ) ) GLimp_WindowMode( WMODE_SWAP_MINIMIZED ); - else - { - str = ri.Cmd_Argv(0); - ri.Printf( PRINT_ALL, - "How to use:\n" - "\\%s restart\n" - "\\%s minimized\n" - "\\%s windowed\n" - "\\%s fullscreen\n" - "\\%s swapFullscreen\n" - "\\%s swapMinimized\n" - , str, str, str, str, str, str - ); - } - - Cvar_Get( "in_keyboardShortcuts", "", 0 )->modified = qtrue; -} - /////////////////////////////////////////////////////////////// @@ -519,7 +491,6 @@ static struct r_ConsoleCmd { { "modellist", R_Modellist_f }, { "screenshot", R_ScreenShotTGA_f }, { "screenshotJPEG", R_ScreenShotJPG_f }, - { "windowMode", R_WindowMode_f }, { } }; @@ -827,8 +798,5 @@ const refexport_t* GetRefAPI( const refimport_t* rimp ) re.TakeVideoFrame = RE_TakeVideoFrame; - // drakkar - re.WindowFocus = GLimp_WindowFocus; - return &re; } diff --git a/code/renderer/tr_light.cpp b/code/renderer/tr_light.cpp index 8e101da..606cfec 100644 --- a/code/renderer/tr_light.cpp +++ b/code/renderer/tr_light.cpp @@ -30,15 +30,15 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // never calculate a range less than this to prevent huge light numbers -void R_TransformDlights( int count, dlight_t* dl, const orientationr_t* or ) +void R_TransformDlights( int count, dlight_t* dl, const orientationr_t* orient ) { vec3_t temp; for ( int i = 0; i < count; ++i, ++dl ) { - VectorSubtract( dl->origin, or->origin, temp ); - dl->transformed[0] = DotProduct( temp, or->axis[0] ); - dl->transformed[1] = DotProduct( temp, or->axis[1] ); - dl->transformed[2] = DotProduct( temp, or->axis[2] ); + VectorSubtract( dl->origin, orient->origin, temp ); + dl->transformed[0] = DotProduct( temp, orient->axis[0] ); + dl->transformed[1] = DotProduct( temp, orient->axis[1] ); + dl->transformed[2] = DotProduct( temp, orient->axis[2] ); } } diff --git a/code/renderer/tr_local.h b/code/renderer/tr_local.h index ed0fa2c..cd10d12 100644 --- a/code/renderer/tr_local.h +++ b/code/renderer/tr_local.h @@ -421,7 +421,7 @@ typedef struct { typedef struct { - orientationr_t or; + orientationr_t orient; orientationr_t world; vec3_t pvsOrigin; // may be different than or.origin for portals qbool isPortal; // true if this view is through a portal @@ -813,7 +813,7 @@ typedef struct { int smpFrame; trRefdef_t refdef; viewParms_t viewParms; - orientationr_t or; + orientationr_t orient; trRefEntity_t* currentEntity; qbool projection2D; // if qtrue, drawstretchpic doesn't need to change modes @@ -883,7 +883,7 @@ typedef struct { int identityLightByte; // identityLight * 255 int overbrightBits; // r_overbrightBits->integer, but set to 0 if no hw gamma - orientationr_t or; // for current entity + orientationr_t orient; // for current entity trRefdef_t refdef; @@ -1057,7 +1057,7 @@ int R_CullLocalBox( const vec3_t bounds[2] ); int R_CullPointAndRadius( const vec3_t origin, float radius ); int R_CullLocalPointAndRadius( const vec3_t origin, float radius ); -void R_RotateForEntity( const trRefEntity_t* ent, const viewParms_t* viewParms, orientationr_t* or ); +void R_RotateForEntity( const trRefEntity_t* ent, const viewParms_t* viewParms, orientationr_t* orient ); /* ** GL wrapper/helper functions @@ -1175,18 +1175,6 @@ void GLimp_WakeRenderer( void *data ); // the params won't be used, getting the r_gamma cvar directly void GLimp_SetGamma( unsigned char red[256], unsigned char green[256], unsigned char blue[256] ); -// drakkar -typedef enum { - WMODE_RESTART = 0, - WMODE_SET_MINIMIZED, - WMODE_SET_WINDOWED, - WMODE_SET_FULLSCREEN, - WMODE_SWAP_FULLSCREEN, - WMODE_SWAP_MINIMIZED -} windowMode_t; -void GLimp_WindowMode( windowMode_t wmode ); -void GLimp_WindowFocus(qbool focus); -// !drakkar /* ==================================================================== @@ -1286,7 +1274,7 @@ LIGHTS */ void R_SetupEntityLighting( const trRefdef_t *refdef, trRefEntity_t *ent ); -void R_TransformDlights( int count, dlight_t* dl, const orientationr_t* or ); +void R_TransformDlights( int count, dlight_t* dl, const orientationr_t* orient ); qbool R_LightForPoint( const vec3_t point, vec3_t ambientLight, vec3_t directedLight, vec3_t lightDir ); diff --git a/code/renderer/tr_main.cpp b/code/renderer/tr_main.cpp index d1b6194..c9d8a3b 100644 --- a/code/renderer/tr_main.cpp +++ b/code/renderer/tr_main.cpp @@ -40,17 +40,17 @@ const float s_flipMatrix[16] = { static void R_LocalPointToWorld( const vec3_t local, vec3_t world ) { - world[0] = local[0] * tr.or.axis[0][0] + local[1] * tr.or.axis[1][0] + local[2] * tr.or.axis[2][0] + tr.or.origin[0]; - world[1] = local[0] * tr.or.axis[0][1] + local[1] * tr.or.axis[1][1] + local[2] * tr.or.axis[2][1] + tr.or.origin[1]; - world[2] = local[0] * tr.or.axis[0][2] + local[1] * tr.or.axis[1][2] + local[2] * tr.or.axis[2][2] + tr.or.origin[2]; + world[0] = local[0] * tr.orient.axis[0][0] + local[1] * tr.orient.axis[1][0] + local[2] * tr.orient.axis[2][0] + tr.orient.origin[0]; + world[1] = local[0] * tr.orient.axis[0][1] + local[1] * tr.orient.axis[1][1] + local[2] * tr.orient.axis[2][1] + tr.orient.origin[1]; + world[2] = local[0] * tr.orient.axis[0][2] + local[1] * tr.orient.axis[1][2] + local[2] * tr.orient.axis[2][2] + tr.orient.origin[2]; } static void R_LocalNormalToWorld( const vec3_t local, vec3_t world ) { - world[0] = local[0] * tr.or.axis[0][0] + local[1] * tr.or.axis[1][0] + local[2] * tr.or.axis[2][0]; - world[1] = local[0] * tr.or.axis[0][1] + local[1] * tr.or.axis[1][1] + local[2] * tr.or.axis[2][1]; - world[2] = local[0] * tr.or.axis[0][2] + local[1] * tr.or.axis[1][2] + local[2] * tr.or.axis[2][2]; + world[0] = local[0] * tr.orient.axis[0][0] + local[1] * tr.orient.axis[1][0] + local[2] * tr.orient.axis[2][0]; + world[1] = local[0] * tr.orient.axis[0][1] + local[1] * tr.orient.axis[1][1] + local[2] * tr.orient.axis[2][1]; + world[2] = local[0] * tr.orient.axis[0][2] + local[1] * tr.orient.axis[1][2] + local[2] * tr.orient.axis[2][2]; } @@ -76,10 +76,10 @@ int R_CullLocalBox( const vec3_t bounds[2] ) v[1] = bounds[(i>>1)&1][1]; v[2] = bounds[(i>>2)&1][2]; - VectorCopy( tr.or.origin, transformed[i] ); - VectorMA( transformed[i], v[0], tr.or.axis[0], transformed[i] ); - VectorMA( transformed[i], v[1], tr.or.axis[1], transformed[i] ); - VectorMA( transformed[i], v[2], tr.or.axis[2], transformed[i] ); + VectorCopy( tr.orient.origin, transformed[i] ); + VectorMA( transformed[i], v[0], tr.orient.axis[0], transformed[i] ); + VectorMA( transformed[i], v[1], tr.orient.axis[1], transformed[i] ); + VectorMA( transformed[i], v[2], tr.orient.axis[2], transformed[i] ); } // check against frustum planes @@ -227,48 +227,48 @@ Does NOT produce any GL calls Called by both the front end and the back end ================= */ -void R_RotateForEntity( const trRefEntity_t* ent, const viewParms_t* viewParms, orientationr_t* or ) +void R_RotateForEntity( const trRefEntity_t* ent, const viewParms_t* viewParms, orientationr_t* orient ) { float glMatrix[16]; vec3_t delta; float axisLength; if ( ent->e.reType != RT_MODEL ) { - *or = viewParms->world; + *orient = viewParms->world; return; } - VectorCopy( ent->e.origin, or->origin ); + VectorCopy( ent->e.origin, orient->origin ); - VectorCopy( ent->e.axis[0], or->axis[0] ); - VectorCopy( ent->e.axis[1], or->axis[1] ); - VectorCopy( ent->e.axis[2], or->axis[2] ); + VectorCopy( ent->e.axis[0], orient->axis[0] ); + VectorCopy( ent->e.axis[1], orient->axis[1] ); + VectorCopy( ent->e.axis[2], orient->axis[2] ); - glMatrix[0] = or->axis[0][0]; - glMatrix[4] = or->axis[1][0]; - glMatrix[8] = or->axis[2][0]; - glMatrix[12] = or->origin[0]; + glMatrix[0] = orient->axis[0][0]; + glMatrix[4] = orient->axis[1][0]; + glMatrix[8] = orient->axis[2][0]; + glMatrix[12] = orient->origin[0]; - glMatrix[1] = or->axis[0][1]; - glMatrix[5] = or->axis[1][1]; - glMatrix[9] = or->axis[2][1]; - glMatrix[13] = or->origin[1]; + glMatrix[1] = orient->axis[0][1]; + glMatrix[5] = orient->axis[1][1]; + glMatrix[9] = orient->axis[2][1]; + glMatrix[13] = orient->origin[1]; - glMatrix[2] = or->axis[0][2]; - glMatrix[6] = or->axis[1][2]; - glMatrix[10] = or->axis[2][2]; - glMatrix[14] = or->origin[2]; + glMatrix[2] = orient->axis[0][2]; + glMatrix[6] = orient->axis[1][2]; + glMatrix[10] = orient->axis[2][2]; + glMatrix[14] = orient->origin[2]; glMatrix[3] = 0; glMatrix[7] = 0; glMatrix[11] = 0; glMatrix[15] = 1; - myGlMultMatrix( glMatrix, viewParms->world.modelMatrix, or->modelMatrix ); + myGlMultMatrix( glMatrix, viewParms->world.modelMatrix, orient->modelMatrix ); // calculate the viewer origin in the model's space // needed for fog, specular, and environment mapping - VectorSubtract( viewParms->or.origin, or->origin, delta ); + VectorSubtract( viewParms->orient.origin, orient->origin, delta ); // compensate for scale in the axes if necessary if ( ent->e.nonNormalizedAxes ) { @@ -282,9 +282,9 @@ void R_RotateForEntity( const trRefEntity_t* ent, const viewParms_t* viewParms, axisLength = 1.0f; } - or->viewOrigin[0] = DotProduct( delta, or->axis[0] ) * axisLength; - or->viewOrigin[1] = DotProduct( delta, or->axis[1] ) * axisLength; - or->viewOrigin[2] = DotProduct( delta, or->axis[2] ) * axisLength; + orient->viewOrigin[0] = DotProduct( delta, orient->axis[0] ) * axisLength; + orient->viewOrigin[1] = DotProduct( delta, orient->axis[1] ) * axisLength; + orient->viewOrigin[2] = DotProduct( delta, orient->axis[2] ) * axisLength; } @@ -295,28 +295,28 @@ static void R_RotateForViewer() float viewerMatrix[16]; vec3_t origin; - Com_Memset( &tr.or, 0, sizeof(tr.or) ); - tr.or.axis[0][0] = 1; - tr.or.axis[1][1] = 1; - tr.or.axis[2][2] = 1; - VectorCopy( tr.viewParms.or.origin, tr.or.viewOrigin ); + Com_Memset( &tr.orient, 0, sizeof(tr.orient) ); + tr.orient.axis[0][0] = 1; + tr.orient.axis[1][1] = 1; + tr.orient.axis[2][2] = 1; + VectorCopy( tr.viewParms.orient.origin, tr.orient.viewOrigin ); // transform by the camera placement - VectorCopy( tr.viewParms.or.origin, origin ); + VectorCopy( tr.viewParms.orient.origin, origin ); - viewerMatrix[0] = tr.viewParms.or.axis[0][0]; - viewerMatrix[4] = tr.viewParms.or.axis[0][1]; - viewerMatrix[8] = tr.viewParms.or.axis[0][2]; + viewerMatrix[0] = tr.viewParms.orient.axis[0][0]; + viewerMatrix[4] = tr.viewParms.orient.axis[0][1]; + viewerMatrix[8] = tr.viewParms.orient.axis[0][2]; viewerMatrix[12] = -origin[0] * viewerMatrix[0] + -origin[1] * viewerMatrix[4] + -origin[2] * viewerMatrix[8]; - viewerMatrix[1] = tr.viewParms.or.axis[1][0]; - viewerMatrix[5] = tr.viewParms.or.axis[1][1]; - viewerMatrix[9] = tr.viewParms.or.axis[1][2]; + viewerMatrix[1] = tr.viewParms.orient.axis[1][0]; + viewerMatrix[5] = tr.viewParms.orient.axis[1][1]; + viewerMatrix[9] = tr.viewParms.orient.axis[1][2]; viewerMatrix[13] = -origin[0] * viewerMatrix[1] + -origin[1] * viewerMatrix[5] + -origin[2] * viewerMatrix[9]; - viewerMatrix[2] = tr.viewParms.or.axis[2][0]; - viewerMatrix[6] = tr.viewParms.or.axis[2][1]; - viewerMatrix[10] = tr.viewParms.or.axis[2][2]; + viewerMatrix[2] = tr.viewParms.orient.axis[2][0]; + viewerMatrix[6] = tr.viewParms.orient.axis[2][1]; + viewerMatrix[10] = tr.viewParms.orient.axis[2][2]; viewerMatrix[14] = -origin[0] * viewerMatrix[2] + -origin[1] * viewerMatrix[6] + -origin[2] * viewerMatrix[10]; viewerMatrix[3] = 0; @@ -326,9 +326,9 @@ static void R_RotateForViewer() // convert from our coordinate system (looking down X) // to OpenGL's coordinate system (looking down -Z) - myGlMultMatrix( viewerMatrix, s_flipMatrix, tr.or.modelMatrix ); + myGlMultMatrix( viewerMatrix, s_flipMatrix, tr.orient.modelMatrix ); - tr.viewParms.world = tr.or; + tr.viewParms.world = tr.orient; } @@ -351,7 +351,7 @@ static void SetFarClip() v[1] = (i & 2) ? tr.viewParms.visBounds[0][1] : tr.viewParms.visBounds[1][1]; v[2] = (i & 4) ? tr.viewParms.visBounds[0][2] : tr.viewParms.visBounds[1][2]; - float d = DistanceSquared( v, tr.viewParms.or.origin ); + float d = DistanceSquared( v, tr.viewParms.orient.origin ); if ( d > farthestCornerDistance ) { farthestCornerDistance = d; @@ -419,25 +419,25 @@ static void R_SetupFrustum() xs = sin( ang ); xc = cos( ang ); - VectorScale( tr.viewParms.or.axis[0], xs, tr.viewParms.frustum[0].normal ); - VectorMA( tr.viewParms.frustum[0].normal, xc, tr.viewParms.or.axis[1], tr.viewParms.frustum[0].normal ); + VectorScale( tr.viewParms.orient.axis[0], xs, tr.viewParms.frustum[0].normal ); + VectorMA( tr.viewParms.frustum[0].normal, xc, tr.viewParms.orient.axis[1], tr.viewParms.frustum[0].normal ); - VectorScale( tr.viewParms.or.axis[0], xs, tr.viewParms.frustum[1].normal ); - VectorMA( tr.viewParms.frustum[1].normal, -xc, tr.viewParms.or.axis[1], tr.viewParms.frustum[1].normal ); + VectorScale( tr.viewParms.orient.axis[0], xs, tr.viewParms.frustum[1].normal ); + VectorMA( tr.viewParms.frustum[1].normal, -xc, tr.viewParms.orient.axis[1], tr.viewParms.frustum[1].normal ); ang = tr.viewParms.fovY / 180 * M_PI * 0.5f; xs = sin( ang ); xc = cos( ang ); - VectorScale( tr.viewParms.or.axis[0], xs, tr.viewParms.frustum[2].normal ); - VectorMA( tr.viewParms.frustum[2].normal, xc, tr.viewParms.or.axis[2], tr.viewParms.frustum[2].normal ); + VectorScale( tr.viewParms.orient.axis[0], xs, tr.viewParms.frustum[2].normal ); + VectorMA( tr.viewParms.frustum[2].normal, xc, tr.viewParms.orient.axis[2], tr.viewParms.frustum[2].normal ); - VectorScale( tr.viewParms.or.axis[0], xs, tr.viewParms.frustum[3].normal ); - VectorMA( tr.viewParms.frustum[3].normal, -xc, tr.viewParms.or.axis[2], tr.viewParms.frustum[3].normal ); + VectorScale( tr.viewParms.orient.axis[0], xs, tr.viewParms.frustum[3].normal ); + VectorMA( tr.viewParms.frustum[3].normal, -xc, tr.viewParms.orient.axis[2], tr.viewParms.frustum[3].normal ); for (int i = 0; i < 4; ++i) { tr.viewParms.frustum[i].type = PLANE_NON_AXIAL; - tr.viewParms.frustum[i].dist = DotProduct (tr.viewParms.or.origin, tr.viewParms.frustum[i].normal); + tr.viewParms.frustum[i].dist = DotProduct (tr.viewParms.orient.origin, tr.viewParms.frustum[i].normal); SetPlaneSignbits( &tr.viewParms.frustum[i] ); } } @@ -542,15 +542,15 @@ qbool R_GetPortalOrientations( drawSurf_t *drawSurf, int entityNum, tr.currentEntity = &tr.refdef.entities[entityNum]; // get the orientation of the entity - R_RotateForEntity( tr.currentEntity, &tr.viewParms, &tr.or ); + R_RotateForEntity( tr.currentEntity, &tr.viewParms, &tr.orient ); // rotate the plane, but keep the non-rotated version for matching // against the portalSurface entities R_LocalNormalToWorld( originalPlane.normal, plane.normal ); - plane.dist = originalPlane.dist + DotProduct( plane.normal, tr.or.origin ); + plane.dist = originalPlane.dist + DotProduct( plane.normal, tr.orient.origin ); // translate the original plane - originalPlane.dist = originalPlane.dist + DotProduct( originalPlane.normal, tr.or.origin ); + originalPlane.dist = originalPlane.dist + DotProduct( originalPlane.normal, tr.orient.origin ); } else { plane = originalPlane; } @@ -659,15 +659,15 @@ static qbool IsMirror( const drawSurf_t *drawSurf, int entityNum ) tr.currentEntity = &tr.refdef.entities[entityNum]; // get the orientation of the entity - R_RotateForEntity( tr.currentEntity, &tr.viewParms, &tr.or ); + R_RotateForEntity( tr.currentEntity, &tr.viewParms, &tr.orient ); // rotate the plane, but keep the non-rotated version for matching // against the portalSurface entities R_LocalNormalToWorld( originalPlane.normal, plane.normal ); - plane.dist = originalPlane.dist + DotProduct( plane.normal, tr.or.origin ); + plane.dist = originalPlane.dist + DotProduct( plane.normal, tr.orient.origin ); // translate the original plane - originalPlane.dist = originalPlane.dist + DotProduct( originalPlane.normal, tr.or.origin ); + originalPlane.dist = originalPlane.dist + DotProduct( originalPlane.normal, tr.orient.origin ); } else { @@ -729,7 +729,7 @@ static qbool SurfIsOffscreen( const drawSurf_t* drawSurf ) int j; unsigned int pointFlags = 0; - R_TransformModelToClip( tess.xyz[i], tr.or.modelMatrix, tr.viewParms.projectionMatrix, eye, clip ); + R_TransformModelToClip( tess.xyz[i], tr.orient.modelMatrix, tr.viewParms.projectionMatrix, eye, clip ); for ( j = 0; j < 3; j++ ) { @@ -764,7 +764,7 @@ static qbool SurfIsOffscreen( const drawSurf_t* drawSurf ) float dot; float len; - VectorSubtract( tess.xyz[tess.indexes[i]], tr.viewParms.or.origin, normal ); + VectorSubtract( tess.xyz[tess.indexes[i]], tr.viewParms.orient.origin, normal ); len = VectorLengthSquared( normal ); // lose the sqrt if ( len < shortest ) @@ -832,14 +832,14 @@ static qbool R_MirrorViewBySurface( drawSurf_t* drawSurf, int entityNum ) return qfalse; // bad portal, no portalentity } - R_MirrorPoint( oldParms.or.origin, &surface, &camera, newParms.or.origin ); + R_MirrorPoint( oldParms.orient.origin, &surface, &camera, newParms.orient.origin ); VectorSubtract( vec3_origin, camera.axis[0], newParms.portalPlane.normal ); newParms.portalPlane.dist = DotProduct( camera.origin, newParms.portalPlane.normal ); - R_MirrorVector( oldParms.or.axis[0], &surface, &camera, newParms.or.axis[0] ); - R_MirrorVector( oldParms.or.axis[1], &surface, &camera, newParms.or.axis[1] ); - R_MirrorVector( oldParms.or.axis[2], &surface, &camera, newParms.or.axis[2] ); + R_MirrorVector( oldParms.orient.axis[0], &surface, &camera, newParms.orient.axis[0] ); + R_MirrorVector( oldParms.orient.axis[1], &surface, &camera, newParms.orient.axis[1] ); + R_MirrorVector( oldParms.orient.axis[2], &surface, &camera, newParms.orient.axis[2] ); // OPTIMIZE: restrict the viewport on the mirrored view @@ -1182,7 +1182,7 @@ static void R_AddEntitySurfaces() case RT_MODEL: // we must set up parts of tr.or for model culling - R_RotateForEntity( ent, &tr.viewParms, &tr.or ); + R_RotateForEntity( ent, &tr.viewParms, &tr.orient ); tr.currentModel = R_GetModelByHandle( ent->e.hModel ); if (!tr.currentModel) { diff --git a/code/renderer/tr_mesh.cpp b/code/renderer/tr_mesh.cpp index 8f0f371..25b6ad2 100644 --- a/code/renderer/tr_mesh.cpp +++ b/code/renderer/tr_mesh.cpp @@ -32,8 +32,8 @@ static float ProjectRadius( float r, const vec3_t location ) vec3_t p; float projected[4]; - c = DotProduct( tr.viewParms.or.axis[0], tr.viewParms.or.origin ); - dist = DotProduct( tr.viewParms.or.axis[0], location ) - c; + c = DotProduct( tr.viewParms.orient.axis[0], tr.viewParms.orient.origin ); + dist = DotProduct( tr.viewParms.orient.axis[0], location ) - c; if ( dist <= 0 ) return 0; diff --git a/code/renderer/tr_scene.cpp b/code/renderer/tr_scene.cpp index 6f5fd97..7ea0d6d 100644 --- a/code/renderer/tr_scene.cpp +++ b/code/renderer/tr_scene.cpp @@ -305,10 +305,10 @@ void RE_RenderScene( const refdef_t* fd ) parms.fovX = tr.refdef.fov_x; parms.fovY = tr.refdef.fov_y; - VectorCopy( fd->vieworg, parms.or.origin ); - VectorCopy( fd->viewaxis[0], parms.or.axis[0] ); - VectorCopy( fd->viewaxis[1], parms.or.axis[1] ); - VectorCopy( fd->viewaxis[2], parms.or.axis[2] ); + VectorCopy( fd->vieworg, parms.orient.origin ); + VectorCopy( fd->viewaxis[0], parms.orient.axis[0] ); + VectorCopy( fd->viewaxis[1], parms.orient.axis[1] ); + VectorCopy( fd->viewaxis[2], parms.orient.axis[2] ); VectorCopy( fd->vieworg, parms.pvsOrigin ); diff --git a/code/renderer/tr_shade.cpp b/code/renderer/tr_shade.cpp index e259b2a..141de02 100644 --- a/code/renderer/tr_shade.cpp +++ b/code/renderer/tr_shade.cpp @@ -102,7 +102,7 @@ void R_BindAnimatedImage( const textureBundle_t* bundle ) // it is necessary to do this messy calc to make sure animations line up // exactly with waveforms of the same frequency double v = tess.shaderTime * bundle->imageAnimationSpeed * FUNCTABLE_SIZE; - __int64 index = v; //myftol( tess.shaderTime * bundle->imageAnimationSpeed * FUNCTABLE_SIZE ); + long long int index = v; //myftol( tess.shaderTime * bundle->imageAnimationSpeed * FUNCTABLE_SIZE ); index >>= FUNCTABLE_SHIFT; if ( index < 0 ) // may happen with shader time offsets @@ -383,7 +383,7 @@ void R_ComputeColors( const shaderStage_t* pStage, stageVars_t& svars ) for ( i = 0; i < tess.numVertexes; i++ ) { vec3_t v; - VectorSubtract( tess.xyz[i], backEnd.viewParms.or.origin, v ); + VectorSubtract( tess.xyz[i], backEnd.viewParms.orient.origin, v ); float len = VectorLength( v ) / tess.shader->portalRange; svars.colors[i][3] = (byte)Com_Clamp( 0, 255, len * 255 ); } diff --git a/code/renderer/tr_shade_calc.cpp b/code/renderer/tr_shade_calc.cpp index bd5f848..ddb6d08 100644 --- a/code/renderer/tr_shade_calc.cpp +++ b/code/renderer/tr_shade_calc.cpp @@ -314,9 +314,9 @@ void DeformText( const char *text ) { static void GlobalVectorToLocal( const vec3_t in, vec3_t out ) { - out[0] = DotProduct( in, backEnd.or.axis[0] ); - out[1] = DotProduct( in, backEnd.or.axis[1] ); - out[2] = DotProduct( in, backEnd.or.axis[2] ); + out[0] = DotProduct( in, backEnd.orient.axis[0] ); + out[1] = DotProduct( in, backEnd.orient.axis[1] ); + out[2] = DotProduct( in, backEnd.orient.axis[2] ); } @@ -345,11 +345,11 @@ static void AutospriteDeform() tess.numIndexes = 0; if ( backEnd.currentEntity != &tr.worldEntity ) { - GlobalVectorToLocal( backEnd.viewParms.or.axis[1], leftDir ); - GlobalVectorToLocal( backEnd.viewParms.or.axis[2], upDir ); + GlobalVectorToLocal( backEnd.viewParms.orient.axis[1], leftDir ); + GlobalVectorToLocal( backEnd.viewParms.orient.axis[2], upDir ); } else { - VectorCopy( backEnd.viewParms.or.axis[1], leftDir ); - VectorCopy( backEnd.viewParms.or.axis[2], upDir ); + VectorCopy( backEnd.viewParms.orient.axis[1], leftDir ); + VectorCopy( backEnd.viewParms.orient.axis[2], upDir ); } for ( i = 0 ; i < oldVerts ; i+=4 ) { @@ -413,9 +413,9 @@ static void Autosprite2Deform( void ) { } if ( backEnd.currentEntity != &tr.worldEntity ) { - GlobalVectorToLocal( backEnd.viewParms.or.axis[0], forward ); + GlobalVectorToLocal( backEnd.viewParms.orient.axis[0], forward ); } else { - VectorCopy( backEnd.viewParms.or.axis[0], forward ); + VectorCopy( backEnd.viewParms.orient.axis[0], forward ); } // this is a lot of work for two triangles... @@ -783,11 +783,11 @@ void RB_CalcFogTexCoords( float *st ) { fog = tr.world->fogs + tess.fogNum; // all fogging distance is based on world Z units - VectorSubtract( backEnd.or.origin, backEnd.viewParms.or.origin, local ); - fogDistanceVector[0] = -backEnd.or.modelMatrix[2]; - fogDistanceVector[1] = -backEnd.or.modelMatrix[6]; - fogDistanceVector[2] = -backEnd.or.modelMatrix[10]; - fogDistanceVector[3] = DotProduct( local, backEnd.viewParms.or.axis[0] ); + VectorSubtract( backEnd.orient.origin, backEnd.viewParms.orient.origin, local ); + fogDistanceVector[0] = -backEnd.orient.modelMatrix[2]; + fogDistanceVector[1] = -backEnd.orient.modelMatrix[6]; + fogDistanceVector[2] = -backEnd.orient.modelMatrix[10]; + fogDistanceVector[3] = DotProduct( local, backEnd.viewParms.orient.axis[0] ); // scale the fog vectors based on the fog's thickness fogDistanceVector[0] *= fog->tcScale; @@ -797,15 +797,15 @@ void RB_CalcFogTexCoords( float *st ) { // rotate the gradient vector for this orientation if ( fog->hasSurface ) { - fogDepthVector[0] = fog->surface[0] * backEnd.or.axis[0][0] + - fog->surface[1] * backEnd.or.axis[0][1] + fog->surface[2] * backEnd.or.axis[0][2]; - fogDepthVector[1] = fog->surface[0] * backEnd.or.axis[1][0] + - fog->surface[1] * backEnd.or.axis[1][1] + fog->surface[2] * backEnd.or.axis[1][2]; - fogDepthVector[2] = fog->surface[0] * backEnd.or.axis[2][0] + - fog->surface[1] * backEnd.or.axis[2][1] + fog->surface[2] * backEnd.or.axis[2][2]; - fogDepthVector[3] = -fog->surface[3] + DotProduct( backEnd.or.origin, fog->surface ); + fogDepthVector[0] = fog->surface[0] * backEnd.orient.axis[0][0] + + fog->surface[1] * backEnd.orient.axis[0][1] + fog->surface[2] * backEnd.orient.axis[0][2]; + fogDepthVector[1] = fog->surface[0] * backEnd.orient.axis[1][0] + + fog->surface[1] * backEnd.orient.axis[1][1] + fog->surface[2] * backEnd.orient.axis[1][2]; + fogDepthVector[2] = fog->surface[0] * backEnd.orient.axis[2][0] + + fog->surface[1] * backEnd.orient.axis[2][1] + fog->surface[2] * backEnd.orient.axis[2][2]; + fogDepthVector[3] = -fog->surface[3] + DotProduct( backEnd.orient.origin, fog->surface ); - eyeT = DotProduct( backEnd.or.viewOrigin, fogDepthVector ) + fogDepthVector[3]; + eyeT = DotProduct( backEnd.orient.viewOrigin, fogDepthVector ) + fogDepthVector[3]; } else { eyeT = 1; // non-surface fog always has eye inside } @@ -865,7 +865,7 @@ void RB_CalcEnvironmentTexCoords( float *st ) for (i = 0 ; i < tess.numVertexes ; i++, v += 4, normal += 4, st += 2 ) { - VectorSubtract (backEnd.or.viewOrigin, v, viewer); + VectorSubtract (backEnd.orient.viewOrigin, v, viewer); VectorNormalizeFast (viewer); d = DotProduct (normal, viewer); @@ -979,20 +979,6 @@ void RB_CalcRotateTexCoords( float degsPerSecond, float *st ) RB_CalcTransformTexCoords( &tmi, st ); } -#if 0 -#if id386 && !defined(__GNUC__) - -long myftol( float f ) { - static int tmp; - __asm fld f - __asm fistp tmp - __asm mov eax, tmp -} - -#endif -#endif - - /* ** RB_CalcSpecularAlpha ** @@ -1032,7 +1018,7 @@ void RB_CalcSpecularAlpha( unsigned char *alphas ) { reflected[1] = normal[1]*2*d - lightDir[1]; reflected[2] = normal[2]*2*d - lightDir[2]; - VectorSubtract (backEnd.or.viewOrigin, v, viewer); + VectorSubtract (backEnd.orient.viewOrigin, v, viewer); ilength = Q_rsqrt( DotProduct( viewer, viewer ) ); l = DotProduct (reflected, viewer); l *= ilength; diff --git a/code/renderer/tr_shader.cpp b/code/renderer/tr_shader.cpp index 6d9becd..11c90d4 100644 --- a/code/renderer/tr_shader.cpp +++ b/code/renderer/tr_shader.cpp @@ -929,7 +929,7 @@ static qbool ParseStage( const char** text, shaderStage_t* stage ) } // decide which agens we can skip - if ( stage->alphaGen == CGEN_IDENTITY ) { + if ( stage->alphaGen == AGEN_IDENTITY ) { if ( stage->rgbGen == CGEN_IDENTITY || stage->rgbGen == CGEN_LIGHTING_DIFFUSE ) { stage->alphaGen = AGEN_SKIP; @@ -1651,7 +1651,7 @@ static qbool CollapseMultitexture( void ) { return qfalse; } } - if ( stages[0].alphaGen == CGEN_WAVEFORM ) + if ( stages[0].alphaGen == AGEN_WAVEFORM ) { if ( memcmp( &stages[0].alphaWave, &stages[1].alphaWave, diff --git a/code/renderer/tr_sky.cpp b/code/renderer/tr_sky.cpp index c14d635..5b64341 100644 --- a/code/renderer/tr_sky.cpp +++ b/code/renderer/tr_sky.cpp @@ -251,9 +251,9 @@ static void RB_ClipSkyPolygons( const shaderCommands_t* input ) ClearSkyBox(); for ( int i = 0; i < input->numIndexes; i += 3 ) { - VectorSubtract( input->xyz[input->indexes[i+0]], backEnd.viewParms.or.origin, p[0] ); - VectorSubtract( input->xyz[input->indexes[i+1]], backEnd.viewParms.or.origin, p[1] ); - VectorSubtract( input->xyz[input->indexes[i+2]], backEnd.viewParms.or.origin, p[2] ); + VectorSubtract( input->xyz[input->indexes[i+0]], backEnd.viewParms.orient.origin, p[0] ); + VectorSubtract( input->xyz[input->indexes[i+1]], backEnd.viewParms.orient.origin, p[1] ); + VectorSubtract( input->xyz[input->indexes[i+2]], backEnd.viewParms.orient.origin, p[2] ); ClipSkyPolygon( 3, p[0], 0 ); } } @@ -387,7 +387,7 @@ static void FillCloudySkySide( const int mins[2], const int maxs[2], qbool addIn { for ( s = mins[0]+HALF_SKY_SUBDIVISIONS; s <= maxs[0]+HALF_SKY_SUBDIVISIONS; s++ ) { - VectorAdd( s_skyPoints[t][s], backEnd.viewParms.or.origin, tess.xyz[tess.numVertexes] ); + VectorAdd( s_skyPoints[t][s], backEnd.viewParms.orient.origin, tess.xyz[tess.numVertexes] ); tess.texCoords[tess.numVertexes][0][0] = s_skyTexCoords[t][s][0]; tess.texCoords[tess.numVertexes][0][1] = s_skyTexCoords[t][s][1]; @@ -580,7 +580,7 @@ void RB_StageIteratorSky() qglColor3f( tr.identityLight, tr.identityLight, tr.identityLight ); qglPushMatrix(); GL_State( 0 ); - qglTranslatef (backEnd.viewParms.or.origin[0], backEnd.viewParms.or.origin[1], backEnd.viewParms.or.origin[2]); + qglTranslatef (backEnd.viewParms.orient.origin[0], backEnd.viewParms.orient.origin[1], backEnd.viewParms.orient.origin[2]); DrawSkyBox( tess.shader ); qglPopMatrix(); } diff --git a/code/renderer/tr_surface.cpp b/code/renderer/tr_surface.cpp index e91005a..88dd4d1 100644 --- a/code/renderer/tr_surface.cpp +++ b/code/renderer/tr_surface.cpp @@ -103,7 +103,7 @@ void RB_AddQuadStampExt( vec3_t origin, vec3_t left, vec3_t up, byte *color, flo // constant normal all the way around - VectorSubtract( vec3_origin, backEnd.viewParms.or.axis[0], normal ); + VectorSubtract( vec3_origin, backEnd.viewParms.orient.axis[0], normal ); tess.normal[ndx][0] = tess.normal[ndx+1][0] = tess.normal[ndx+2][0] = tess.normal[ndx+3][0] = normal[0]; tess.normal[ndx][1] = tess.normal[ndx+1][1] = tess.normal[ndx+2][1] = tess.normal[ndx+3][1] = normal[1]; @@ -152,18 +152,18 @@ static void RB_SurfaceSprite() // calculate the xyz locations for the four corners if ( backEnd.currentEntity->e.rotation == 0 ) { - VectorScale( backEnd.viewParms.or.axis[1], radius, left ); - VectorScale( backEnd.viewParms.or.axis[2], radius, up ); + VectorScale( backEnd.viewParms.orient.axis[1], radius, left ); + VectorScale( backEnd.viewParms.orient.axis[2], radius, up ); } else { float ang = M_PI * backEnd.currentEntity->e.rotation / 180; float s = sin( ang ); float c = cos( ang ); - VectorScale( backEnd.viewParms.or.axis[1], c * radius, left ); - VectorMA( left, -s * radius, backEnd.viewParms.or.axis[2], left ); + VectorScale( backEnd.viewParms.orient.axis[1], c * radius, left ); + VectorMA( left, -s * radius, backEnd.viewParms.orient.axis[2], left ); - VectorScale( backEnd.viewParms.or.axis[2], c * radius, up ); - VectorMA( up, s * radius, backEnd.viewParms.or.axis[1], up ); + VectorScale( backEnd.viewParms.orient.axis[2], c * radius, up ); + VectorMA( up, s * radius, backEnd.viewParms.orient.axis[1], up ); } if ( backEnd.viewParms.isMirror ) { VectorSubtract( vec3_origin, left, left ); @@ -297,9 +297,9 @@ static void RB_SurfaceLightningBolt() len = VectorNormalize( vec ); // compute side vector - VectorSubtract( start, backEnd.viewParms.or.origin, v1 ); + VectorSubtract( start, backEnd.viewParms.orient.origin, v1 ); VectorNormalize( v1 ); - VectorSubtract( end, backEnd.viewParms.or.origin, v2 ); + VectorSubtract( end, backEnd.viewParms.orient.origin, v2 ); VectorNormalize( v2 ); CrossProduct( v1, v2, right ); VectorNormalize( right ); @@ -554,15 +554,15 @@ static float LodErrorForVolume( vec3_t local, float radius ) { return 0; } - world[0] = local[0] * backEnd.or.axis[0][0] + local[1] * backEnd.or.axis[1][0] + - local[2] * backEnd.or.axis[2][0] + backEnd.or.origin[0]; - world[1] = local[0] * backEnd.or.axis[0][1] + local[1] * backEnd.or.axis[1][1] + - local[2] * backEnd.or.axis[2][1] + backEnd.or.origin[1]; - world[2] = local[0] * backEnd.or.axis[0][2] + local[1] * backEnd.or.axis[1][2] + - local[2] * backEnd.or.axis[2][2] + backEnd.or.origin[2]; + world[0] = local[0] * backEnd.orient.axis[0][0] + local[1] * backEnd.orient.axis[1][0] + + local[2] * backEnd.orient.axis[2][0] + backEnd.orient.origin[0]; + world[1] = local[0] * backEnd.orient.axis[0][1] + local[1] * backEnd.orient.axis[1][1] + + local[2] * backEnd.orient.axis[2][1] + backEnd.orient.origin[1]; + world[2] = local[0] * backEnd.orient.axis[0][2] + local[1] * backEnd.orient.axis[1][2] + + local[2] * backEnd.orient.axis[2][2] + backEnd.orient.origin[2]; - VectorSubtract( world, backEnd.viewParms.or.origin, world ); - d = DotProduct( world, backEnd.viewParms.or.axis[0] ); + VectorSubtract( world, backEnd.viewParms.orient.origin, world ); + d = DotProduct( world, backEnd.viewParms.orient.axis[0] ); if ( d < 0 ) { d = -d; diff --git a/code/renderer/tr_world.cpp b/code/renderer/tr_world.cpp index f4b34b2..df1427f 100644 --- a/code/renderer/tr_world.cpp +++ b/code/renderer/tr_world.cpp @@ -111,7 +111,7 @@ static qbool R_CullSurface( const surfaceType_t* surface, const shader_t* shader } const srfSurfaceFace_t* face = (const srfSurfaceFace_t*)surface; - float d = DotProduct( tr.or.viewOrigin, face->plane.normal ); + float d = DotProduct( tr.orient.viewOrigin, face->plane.normal ); // don't cull exactly on the plane, because there are levels of rounding // through the BSP, ICD, and hardware that may cause pixel gaps if an @@ -415,7 +415,7 @@ void R_AddBrushModelSurfaces( const trRefEntity_t* re ) R_AddWorldSurface( bmodel->firstSurface + s ); } - R_TransformDlights( tr.refdef.num_dlights, tr.refdef.dlights, &tr.or ); + R_TransformDlights( tr.refdef.num_dlights, tr.refdef.dlights, &tr.orient ); for ( int i = 0; i < tr.refdef.num_dlights; ++i ) { dlight_t* dl = &tr.refdef.dlights[i]; diff --git a/code/server/sv_init.cpp b/code/server/sv_init.cpp index 9b4f86c..263c280 100644 --- a/code/server/sv_init.cpp +++ b/code/server/sv_init.cpp @@ -331,12 +331,14 @@ void SV_SpawnServer( const char* mapname ) QSUBSYSTEM_INIT_START( "Server" ); Com_Printf( "Map: %s\n", mapname ); +#ifndef DEDICATED // if not running a dedicated server CL_MapLoading will connect the client to the server // also print some status stuff CL_MapLoading(); // make sure all the client stuff is unloaded CL_ShutdownAll(); +#endif // clear the whole hunk because we're (re)loading the server Hunk_Clear(); @@ -648,7 +650,9 @@ void SV_Shutdown( const char* finalmsg ) Com_Printf( "---------------------------\n" ); +#ifndef DEDICATED // disconnect any local clients CL_Disconnect( qfalse ); +#endif } diff --git a/code/unix/ftola.s b/code/unix/ftola.s deleted file mode 100644 index 7e9c523..0000000 --- a/code/unix/ftola.s +++ /dev/null @@ -1,160 +0,0 @@ -/* -=========================================================================== -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 Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ - -// -// qftol -- fast floating point to long conversion. -// - -// 23/09/05 Ported to gas by intel2gas, best supporting actor Tim Angus -// - -#include "qasm.h" - -#if id386 - -.data - -temp: .single 0.0 -fpucw: .long 0 - -// Precision Control Field , 2 bits / 0x0300 -// PC24 0x0000 Single precision (24 bits). -// PC53 0x0200 Double precision (53 bits). -// PC64 0x0300 Extended precision (64 bits). - -// Rounding Control Field, 2 bits / 0x0C00 -// RCN 0x0000 Rounding to nearest (even). -// RCD 0x0400 Rounding down (directed, minus). -// RCU 0x0800 Rounding up (directed plus). -// RC0 0x0C00 Rounding towards zero (chop mode). - - -// rounding towards nearest (even) -cw027F: .long 0x027F -cw037F: .long 0x037F - -// rounding towards zero (chop mode) -cw0E7F: .long 0x0E7F -cw0F7F: .long 0x0F7F - - -.text - -// -// int qftol( void ) - default control word -// - -.globl C(qftol) - -C(qftol): - fistpl temp - movl temp,%eax - ret - - -// -// int qftol027F( void ) - DirectX FPU -// - -.globl C(qftol027F) - -C(qftol027F): - fnstcw fpucw - fldcw cw027F - fistpl temp - fldcw fpucw - movl temp,%eax - ret - -// -// int qftol037F( void ) - Linux FPU -// - -.globl C(qftol037F) - -C(qftol037F): - fnstcw fpucw - fldcw cw037F - fistpl temp - fldcw fpucw - movl temp,%eax - ret - - -// -// int qftol0F7F( void ) - ANSI -// - -.globl C(qftol0F7F) - -C(qftol0F7F): - fnstcw fpucw - fldcw cw0F7F - fistpl temp - fldcw fpucw - movl temp,%eax - ret - -// -// int qftol0E7F( void ) -// - -.globl C(qftol0E7F) - -C(qftol0E7F): - fnstcw fpucw - fldcw cw0E7F - fistpl temp - fldcw fpucw - movl temp,%eax - ret - - - -// -// long Q_ftol( float q ) -// - -.globl C(Q_ftol) - -C(Q_ftol): - flds 4(%esp) - fistpl temp - movl temp,%eax - ret - - -// -// long qftol0F7F( float q ) - Linux FPU -// - -.globl C(Q_ftol0F7F) - -C(Q_ftol0F7F): - fnstcw fpucw - flds 4(%esp) - fldcw cw0F7F - fistpl temp - fldcw fpucw - movl temp,%eax - ret -#endif diff --git a/code/unix/linux_glimp.c b/code/unix/linux_glimp.c index 67dfa83..b9f1afe 100644 --- a/code/unix/linux_glimp.c +++ b/code/unix/linux_glimp.c @@ -69,8 +69,9 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include #if !defined(__sun) -#include -#include +// @TODO: +//#include +//#include #endif #if defined(__sun) @@ -81,7 +82,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #define HAVE_XF86DGA #endif -#define WINDOW_CLASS_NAME Q3_WINDOW_TITLE +#define WINDOW_CLASS_NAME "CNQ3" + +// OpenGL driver +#define OPENGL_DRIVER_NAME "libGL.so.1" typedef enum { @@ -132,10 +136,8 @@ cvar_t *in_joystick = NULL; cvar_t *in_joystickDebug = NULL; cvar_t *joy_threshold = NULL; -cvar_t *in_keyboardShortcuts = NULL; // drakkar - ignored in linux - cvar_t *r_allowSoftwareGL; // don't abort out if the pixelformat claims software -cvar_t *r_previousglDriver; +cvar_t *r_fullscreen; qboolean vidmode_ext = qfalse; #ifdef HAVE_XF86DGA @@ -148,8 +150,6 @@ static XF86VidModeGamma vidmode_InitialGamma = { -1,-1,-1 }; // drakkar - initi static int win_x = 50, win_y = 50; // drakkar - initialize window position qboolean win_active = qtrue; qboolean win_minimized = qfalse; -static qboolean windowModeLock = qtrue; -static unsigned long int ignoreFocus = 0; static int desktopVideoMode = -1; #ifdef HAVE_XF86DGA @@ -161,7 +161,7 @@ static qboolean vidmode_active = qfalse; static int mouse_accel_numerator; static int mouse_accel_denominator; -static int mouse_threshold; +static int mouse_threshold; /* * Find the first occurrence of find in s. @@ -323,7 +323,7 @@ static char *XLateKey(XKeyEvent *ev, int *key) // drakkar case XK_Super_L: case XK_Super_R: *key = K_WIN; break; - + case XK_Menu: *key = K_MENU; break; // !drakkar @@ -396,7 +396,7 @@ static char *XLateKey(XKeyEvent *ev, int *key) static Cursor CreateNullCursor(Display *display, Window root) { - Pixmap cursormask; + Pixmap cursormask; XGCValues xgc; GC gc; XColor dummycolour; @@ -485,7 +485,7 @@ static void uninstall_grabs(void) } #endif /* HAVE_XF86DGA */ - XChangePointerControl(dpy, qtrue, qtrue, mouse_accel_numerator, + XChangePointerControl(dpy, qtrue, qtrue, mouse_accel_numerator, mouse_accel_denominator, mouse_threshold); XUngrabPointer(dpy, CurrentTime); @@ -503,7 +503,7 @@ static void uninstall_grabs(void) // drakkar // Sys_MilliSeconds returns CPU usage time, // this fuction returns real time milliseconds -unsigned long int realMilliSeconds() +unsigned long int realMilliSeconds() { struct timeval tv; gettimeofday( &tv, NULL ); @@ -514,7 +514,7 @@ unsigned long int realMilliSeconds() // bk001206 - from Ryan's Fakk2 /** - * XPending() actually performs a blocking read + * XPending() actually performs a blocking read * if no events available. From Fakk2, by way of * Heretic2, by way of SDL, original idea GGI project. * The benefit of this approach over the quite @@ -522,8 +522,8 @@ unsigned long int realMilliSeconds() * focus handling for free, which is a major win * with debug and windowed mode. It rests on the * assumption that the X server will use the - * same timestamp on press/release event pairs - * for key repeats. + * same timestamp on press/release event pairs + * for key repeats. */ static qboolean X11_PendingInput(void) { @@ -590,7 +590,7 @@ static void HandleEvents(void) char *p; int dx, dy; int t = 0; // default to 0 in case we don't set - + if (!dpy) return; @@ -620,7 +620,7 @@ static void HandleEvents(void) // bk001206 - handle key repeat w/o XAutRepatOn/Off // also: not done if console/menu is active. // From Ryan's Fakk2. - // see game/q_shared.h, KEYCATCH_* . 0 == in 3d game. + // see game/q_shared.h, KEYCATCH_* . 0 == in 3d game. if (cls.keyCatchers == 0) { // FIXME: KEYCATCH_NONE if (repeated_press(&event) == qtrue) @@ -756,40 +756,26 @@ static void HandleEvents(void) break; case ConfigureNotify : - if( glConfig.isFullscreen ) break; + if( glInfo.isFullscreen ) break; if( win_active ) break; if( event.xcreatewindow.x < 1 ) break; - if( event.xcreatewindow.y < 1 ) break; - + if( event.xcreatewindow.y < 1 ) break; + win_x = event.xconfigure.x; win_y = event.xconfigure.y; - + break; - // drakkar - case FocusIn: - if( ignoreFocus < realMilliSeconds() ) { - GLimp_WindowFocus( qtrue ); - Key_ClearStates(); - } - break; - case FocusOut: - if( ignoreFocus < realMilliSeconds() ) { - GLimp_WindowFocus( qfalse ); - Key_ClearStates(); - } - break; - // !drakkar } } if (dowarp) { - XWarpPointer(dpy,None,win,0,0,0,0, + XWarpPointer(dpy,None,win,0,0,0,0, (glConfig.vidWidth/2),(glConfig.vidHeight/2)); } } -// NOTE TTimo for the tty console input, we didn't rely on those .. +// NOTE TTimo for the tty console input, we didn't rely on those .. // it's not very surprising actually cause they are not used otherwise void KBD_Init(void) { @@ -799,7 +785,7 @@ void KBD_Close(void) { } -void IN_ActivateMouse( void ) +void IN_ActivateMouse( void ) { if (!mouse_avail || !dpy || !win) return; @@ -814,7 +800,7 @@ void IN_ActivateMouse( void ) } } -void IN_DeactivateMouse( void ) +void IN_DeactivateMouse( void ) { if (!mouse_avail || !dpy || !win) return; @@ -899,11 +885,13 @@ void GLimp_Shutdown( void ) dpy = NULL; win = 0; ctx = NULL; - // drakkar + // drakkar visinfo = NULL; +#ifdef HAVE_XF86DGA if( vidmodes ) XFree( vidmodes ); - vidmodes = NULL; - // !drakkar + vidmodes = NULL; +#endif + // !drakkar memset( &glConfig, 0, sizeof( glConfig ) ); memset( &glState, 0, sizeof( glState ) ); @@ -926,32 +914,20 @@ void GLimp_LogComment( const char* comment ) ** GLW_StartDriverAndSetMode */ // bk001204 - prototype needed -int GLW_SetMode( const char *drivername, int mode, qboolean fullscreen ); -static qboolean GLW_StartDriverAndSetMode( const char *drivername, - int mode, - qboolean fullscreen ) +rserr_t GLW_SetMode( qboolean fullscreen ); +static qboolean GLW_StartDriverAndSetMode( qboolean fullscreen ) { rserr_t err; - // don't ever bother going into fullscreen with a voodoo card -#if 1 // JDC: I reenabled this - if ( Q_stristr( drivername, "Voodoo" ) ) - { - ri.Cvar_Set( "r_fullscreen", "0" ); - r_fullscreen->modified = qfalse; - fullscreen = qfalse; - } -#endif - if (fullscreen && in_nograb->value) { ri.Printf( PRINT_ALL, "Fullscreen not allowed with in_nograb 1\n"); ri.Cvar_Set( "r_fullscreen", "0" ); r_fullscreen->modified = qfalse; - fullscreen = qfalse; + fullscreen = qfalse; } - err = GLW_SetMode( drivername, mode, fullscreen ); + err = GLW_SetMode( fullscreen ); switch ( err ) { @@ -959,7 +935,7 @@ static qboolean GLW_StartDriverAndSetMode( const char *drivername, ri.Printf( PRINT_ALL, "...WARNING: fullscreen unavailable in this mode\n" ); return qfalse; case RSERR_INVALID_MODE: - ri.Printf( PRINT_ALL, "...WARNING: could not set the given mode (%d)\n", mode ); + ri.Printf( PRINT_ALL, "...WARNING: could not set the given mode\n" ); return qfalse; default: break; @@ -967,33 +943,10 @@ static qboolean GLW_StartDriverAndSetMode( const char *drivername, return qtrue; } -// drakkar -void GLimp_WindowFocus(qboolean focus) -{ - if( !dpy || !win ) return; - - if( focus ) - { - R_SetColorMappings(); - if( win_minimized ) - GLimp_WindowMode( WMODE_SWAP_MINIMIZED ); - } - else - { - if( glConfig.deviceSupportsGamma ) - XF86VidModeSetGamma( dpy, scrnum, &vidmode_InitialGamma ); - if( glConfig.isFullscreen ) - GLimp_WindowMode( WMODE_SWAP_MINIMIZED ); - } - - win_active = ( focus && !win_minimized ); -} -// !drakkar - /* ** GLW_SetMode */ -int GLW_SetMode( const char *drivername, int mode, qboolean fullscreen ) +rserr_t GLW_SetMode( qboolean fullscreen ) { int attrib[] = { GLX_RGBA, // 0 @@ -1025,9 +978,9 @@ int GLW_SetMode( const char *drivername, int mode, qboolean fullscreen ) ri.Printf( PRINT_ALL, "Initializing OpenGL display\n"); - ri.Printf (PRINT_ALL, "...setting mode %d:", mode ); + ri.Printf (PRINT_ALL, "...setting mode...\n" ); - if ( !R_GetModeInfo( &glConfig.vidWidth, &glConfig.vidHeight, &glConfig.windowAspect, mode ) ) + if ( !R_GetModeInfo( &glConfig.vidWidth, &glConfig.vidHeight, &glConfig.windowAspect ) ) { ri.Printf( PRINT_ALL, " invalid mode\n" ); return RSERR_INVALID_MODE; @@ -1039,7 +992,7 @@ int GLW_SetMode( const char *drivername, int mode, qboolean fullscreen ) fprintf(stderr, "Error couldn't open the X display\n"); return RSERR_INVALID_MODE; } - + scrnum = DefaultScreen(dpy); root = RootWindow(dpy, scrnum); @@ -1061,7 +1014,7 @@ int GLW_SetMode( const char *drivername, int mode, qboolean fullscreen ) } #endif /* HAVE_XF86DGA */ - // Check for DGA + // Check for DGA dga_MajorVersion = 0, dga_MinorVersion = 0; #ifdef HAVE_XF86DGA if (in_dgamouse->value) @@ -1130,7 +1083,7 @@ int GLW_SetMode( const char *drivername, int mode, qboolean fullscreen ) } } else { - ri.Printf(PRINT_ALL, "XFree86-VidModeExtension: Ignored on non-fullscreen/Voodoo\n"); + ri.Printf(PRINT_ALL, "XFree86-VidModeExtension: Ignored on non-fullscreen\n"); } } #endif /* HAVE_XF86DGA */ @@ -1141,9 +1094,6 @@ int GLW_SetMode( const char *drivername, int mode, qboolean fullscreen ) else colorbits = r_colorbits->value; - if ( !Q_stricmp( r_glDriver->string, _3DFX_DRIVER_NAME ) ) - colorbits = 16; - if (!r_depthbits->value) depthbits = 24; else @@ -1228,7 +1178,7 @@ int GLW_SetMode( const char *drivername, int mode, qboolean fullscreen ) continue; } - ri.Printf( PRINT_ALL, "Using %d/%d/%d Color bits, %d depth, %d stencil display.\n", + ri.Printf( PRINT_ALL, "Using %d/%d/%d Color bits, %d depth, %d stencil display.\n", attrib[ATTR_RED_IDX], attrib[ATTR_GREEN_IDX], attrib[ATTR_BLUE_IDX], attrib[ATTR_DEPTH_IDX], attrib[ATTR_STENCIL_IDX]); @@ -1253,7 +1203,7 @@ int GLW_SetMode( const char *drivername, int mode, qboolean fullscreen ) attr.event_mask = X_MASK; if (vidmode_active) { - mask = CWBackPixel | CWColormap | CWSaveUnder | CWBackingStore | + mask = CWBackPixel | CWColormap | CWSaveUnder | CWBackingStore | CWEventMask | CWOverrideRedirect; attr.override_redirect = True; attr.backing_store = NotUseful; @@ -1261,13 +1211,13 @@ int GLW_SetMode( const char *drivername, int mode, qboolean fullscreen ) } else mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - win = XCreateWindow(dpy, root, 0, 0, - actualWidth, actualHeight, + win = XCreateWindow(dpy, root, 0, 0, + actualWidth, actualHeight, 0, visinfo->depth, InputOutput, visinfo->visual, mask, &attr); - if( !win ) return 0; + if( !win ) return RSERR_OK; XStoreName( dpy, win, WINDOW_CLASS_NAME ); - XMapWindow( dpy, win ); + XMapWindow( dpy, win ); XFlush(dpy); XMoveWindow( dpy, win, 0, 0 ); @@ -1305,7 +1255,7 @@ int GLW_SetMode( const char *drivername, int mode, qboolean fullscreen ) { ri.Printf( PRINT_ALL, "\n\n***********************************************************\n" ); ri.Printf( PRINT_ALL, " You are using software Mesa (no hardware acceleration)! \n" ); - ri.Printf( PRINT_ALL, " Driver DLL used: %s\n", drivername ); + ri.Printf( PRINT_ALL, " Driver DLL used: %s\n", OPENGL_DRIVER_NAME ); ri.Printf( PRINT_ALL, " If this is intentional, add\n" ); ri.Printf( PRINT_ALL, " \"+set r_allowSoftwareGL 1\"\n" ); ri.Printf( PRINT_ALL, " to the command line when starting the game.\n" ); @@ -1326,133 +1276,33 @@ int GLW_SetMode( const char *drivername, int mode, qboolean fullscreen ) */ static void GLW_InitExtensions( void ) { - if ( !r_allowExtensions->integer ) - { - ri.Printf( PRINT_ALL, "*** IGNORING OPENGL EXTENSIONS ***\n" ); - return; - } + ri.Printf( PRINT_ALL, "Initializing OpenGL extensions\n" ); - ri.Printf( PRINT_ALL, "Initializing OpenGL extensions\n" ); - - // GL_S3_s3tc - if ( Q_stristr( glConfig.extensions_string, "GL_S3_s3tc" ) ) - { - if ( r_ext_compressed_textures->value ) + int maxAnisotropy = 0; + if ( strstr( glConfig.extensions_string, "GL_EXT_texture_filter_anisotropic" ) ) { - glConfig.textureCompression = TC_S3TC; - ri.Printf( PRINT_ALL, "...using GL_S3_s3tc\n" ); - } else - { - glConfig.textureCompression = TC_NONE; - ri.Printf( PRINT_ALL, "...ignoring GL_S3_s3tc\n" ); - } - } else - { - glConfig.textureCompression = TC_NONE; - ri.Printf( PRINT_ALL, "...GL_S3_s3tc not found\n" ); - } - - // GL_EXT_texture_env_add - glConfig.textureEnvAddAvailable = qfalse; - if ( Q_stristr( glConfig.extensions_string, "EXT_texture_env_add" ) ) - { - if ( r_ext_texture_env_add->integer ) - { - glConfig.textureEnvAddAvailable = qtrue; - ri.Printf( PRINT_ALL, "...using GL_EXT_texture_env_add\n" ); - } else - { - glConfig.textureEnvAddAvailable = qfalse; - ri.Printf( PRINT_ALL, "...ignoring GL_EXT_texture_env_add\n" ); - } - } else - { - ri.Printf( PRINT_ALL, "...GL_EXT_texture_env_add not found\n" ); - } - - // GL_ARB_multitexture - qglMultiTexCoord2fARB = NULL; - qglActiveTextureARB = NULL; - qglClientActiveTextureARB = NULL; - if ( Q_stristr( glConfig.extensions_string, "GL_ARB_multitexture" ) ) - { - if ( r_ext_multitexture->value ) - { - qglMultiTexCoord2fARB = ( PFNGLMULTITEXCOORD2FARBPROC ) dlsym( glw_state.OpenGLLib, "glMultiTexCoord2fARB" ); - qglActiveTextureARB = ( PFNGLACTIVETEXTUREARBPROC ) dlsym( glw_state.OpenGLLib, "glActiveTextureARB" ); - qglClientActiveTextureARB = ( PFNGLCLIENTACTIVETEXTUREARBPROC ) dlsym( glw_state.OpenGLLib, "glClientActiveTextureARB" ); - - if ( qglActiveTextureARB ) - { - GLint glint = 0; - qglGetIntegerv( GL_MAX_ACTIVE_TEXTURES_ARB, &glint ); - glConfig.maxActiveTextures = (int) glint; - - if ( glConfig.maxActiveTextures > 1 ) + if ( r_ext_max_anisotropy->integer > 1 ) { - ri.Printf( PRINT_ALL, "...using GL_ARB_multitexture\n" ); - } else - { - qglMultiTexCoord2fARB = NULL; - qglActiveTextureARB = NULL; - qglClientActiveTextureARB = NULL; - ri.Printf( PRINT_ALL, "...not using GL_ARB_multitexture, < 2 texture units\n" ); + qglGetIntegerv( GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &maxAnisotropy ); + if ( maxAnisotropy <= 0 ) { + ri.Printf( PRINT_DEVELOPER, "...GL_EXT_texture_filter_anisotropic not properly supported!\n" ); + maxAnisotropy = 0; + } + else + { + ri.Printf( PRINT_DEVELOPER, "...using GL_EXT_texture_filter_anisotropic (max: %i)\n", maxAnisotropy ); + } + } + else + { + ri.Printf( PRINT_DEVELOPER, "...ignoring GL_EXT_texture_filter_anisotropic\n" ); } - } - } else - { - ri.Printf( PRINT_ALL, "...ignoring GL_ARB_multitexture\n" ); - } - } else - { - ri.Printf( PRINT_ALL, "...GL_ARB_multitexture not found\n" ); - } - - // GL_EXT_compiled_vertex_array - if ( Q_stristr( glConfig.extensions_string, "GL_EXT_compiled_vertex_array" ) ) - { - if ( r_ext_compiled_vertex_array->value ) - { - ri.Printf( PRINT_ALL, "...using GL_EXT_compiled_vertex_array\n" ); - qglLockArraysEXT = ( void ( APIENTRY * )( int, int ) ) dlsym( glw_state.OpenGLLib, "glLockArraysEXT" ); - qglUnlockArraysEXT = ( void ( APIENTRY * )( void ) ) dlsym( glw_state.OpenGLLib, "glUnlockArraysEXT" ); - if (!qglLockArraysEXT || !qglUnlockArraysEXT) - { - ri.Error (ERR_FATAL, "bad getprocaddress"); - } - } else - { - ri.Printf( PRINT_ALL, "...ignoring GL_EXT_compiled_vertex_array\n" ); - } - } else - { - ri.Printf( PRINT_ALL, "...GL_EXT_compiled_vertex_array not found\n" ); - } - - textureFilterAnisotropic = qfalse; - if ( strstr( glConfig.extensions_string, "GL_EXT_texture_filter_anisotropic" ) ) - { - if ( r_ext_texture_filter_anisotropic->integer ) { - qglGetIntegerv( GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &maxAnisotropy ); - if ( maxAnisotropy <= 0 ) { - ri.Printf( PRINT_ALL, "...GL_EXT_texture_filter_anisotropic not properly supported!\n" ); - maxAnisotropy = 0; - } - else - { - ri.Printf( PRINT_ALL, "...using GL_EXT_texture_filter_anisotropic (max: %i)\n", maxAnisotropy ); - textureFilterAnisotropic = qtrue; - } } else { - ri.Printf( PRINT_ALL, "...ignoring GL_EXT_texture_filter_anisotropic\n" ); + ri.Printf( PRINT_DEVELOPER, "...GL_EXT_texture_filter_anisotropic not found\n" ); } - } - else - { - ri.Printf( PRINT_ALL, "...GL_EXT_texture_filter_anisotropic not found\n" ); - } + Cvar_Set( "r_ext_max_anisotropy", va("%i", maxAnisotropy) ); } static void GLW_InitGamma(void) @@ -1460,13 +1310,13 @@ static void GLW_InitGamma(void) /* Minimum extension version required */ #define GAMMA_MINMAJOR 2 #define GAMMA_MINMINOR 0 - + glConfig.deviceSupportsGamma = qfalse; #ifdef HAVE_XF86DGA if (vidmode_ext) { - if (vidmode_MajorVersion < GAMMA_MINMAJOR || + if (vidmode_MajorVersion < GAMMA_MINMAJOR || (vidmode_MajorVersion == GAMMA_MINMAJOR && vidmode_MinorVersion < GAMMA_MINMINOR)) { ri.Printf( PRINT_ALL, "XF86 Gamma extension not supported in this version\n"); return; @@ -1482,49 +1332,26 @@ static void GLW_InitGamma(void) /* ** GLW_LoadOpenGL ** -** GLimp_win.c internal function that that attempts to load and use +** GLimp_win.c internal function that that attempts to load and use ** a specific OpenGL DLL. */ -static qboolean GLW_LoadOpenGL( const char *name ) +static qboolean GLW_LoadOpenGL( void ) { qboolean fullscreen; - ri.Printf( PRINT_ALL, "...loading %s: ", name ); - - // disable the 3Dfx splash screen and set gamma - // we do this all the time, but it shouldn't hurt anything - // on non-3Dfx stuff - putenv("FX_GLIDE_NO_SPLASH=0"); - - // Mesa VooDoo hacks - putenv("MESA_GLX_FX=fullscreen\n"); + ri.Printf( PRINT_ALL, "...loading %s: ", OPENGL_DRIVER_NAME ); // load the QGL layer - if ( QGL_Init( name ) ) + if ( QGL_Init( OPENGL_DRIVER_NAME ) ) { fullscreen = r_fullscreen->integer; - // drakkar - windowModeLock = qfalse; - // !drakkar - // create the window and set up the context - if ( !GLW_StartDriverAndSetMode( name, r_mode->integer, fullscreen ) ) + if ( !GLW_StartDriverAndSetMode( fullscreen ) ) { - if (r_mode->integer != 3) - { - if ( !GLW_StartDriverAndSetMode( name, 3, fullscreen ) ) - { - goto fail; - } - } else - goto fail; + goto fail; } - // drakkar - windowModeLock = qtrue; - // !drakkar - return qtrue; } else { @@ -1550,94 +1377,22 @@ int qXErrorHandler(Display *dpy, XErrorEvent *ev) XGetErrorText(dpy, ev->error_code, buf, 1024); ri.Printf( PRINT_ALL, "X Error of failed request: %s\n", buf); ri.Printf( PRINT_ALL, " Major opcode of failed request: %d\n", ev->request_code, buf); - ri.Printf( PRINT_ALL, " Minor opcode of failed request: %d\n", ev->minor_code); + ri.Printf( PRINT_ALL, " Minor opcode of failed request: %d\n", ev->minor_code); ri.Printf( PRINT_ALL, " Serial number of failed request: %d\n", ev->serial); return 0; } -// drakkar -/* -** GLimp_WindowMode -** -** Changes window mode ( minimized, windowed, fullscreen ) without vid_restart. -*/ -void GLimp_WindowMode( windowMode_t wmode ) -{ - if( !windowModeLock ) return; - - switch( wmode ) - { - case WMODE_SET_MINIMIZED: - windowModeLock = qfalse; - GLW_StartDriverAndSetMode( r_glDriver->string, r_mode->integer, qfalse ); - XIconifyWindow( dpy, win, scrnum ); - win_minimized = qtrue; - GLimp_WindowFocus( qfalse ); - windowModeLock = qtrue; - break; - - case WMODE_SET_WINDOWED: - windowModeLock = qfalse; - GLW_StartDriverAndSetMode( r_glDriver->string, r_mode->integer, qfalse ); - win_minimized = qfalse; - GLimp_WindowFocus( qtrue ); - uninstall_grabs(); - install_grabs(); - windowModeLock = qtrue; - ri.Cvar_Set( "r_fullscreen", "0" ); - if( glConfig.isFullscreen ) - Cbuf_AddText( "vid_restart\n" ); - break; - - case WMODE_SET_FULLSCREEN: - windowModeLock = qfalse; - GLW_StartDriverAndSetMode( r_glDriver->string, r_mode->integer, qtrue ); - win_minimized = qfalse; - GLimp_WindowFocus( qtrue ); - windowModeLock = qtrue; - ri.Cvar_Set( "r_fullscreen", "1" ); - if( !glConfig.isFullscreen ) - Cbuf_AddText( "vid_restart\n" ); - break; - - case WMODE_RESTART: - if( r_fullscreen->modified && r_fullscreen->latchedString ) - { - if( !Q_strncmp( r_fullscreen->latchedString, "0", 1 ) ) - GLimp_WindowMode( WMODE_SET_WINDOWED ); - else - GLimp_WindowMode( WMODE_SET_FULLSCREEN ); - } - else - { - GLimp_WindowMode( r_fullscreen->integer ? WMODE_SET_FULLSCREEN : WMODE_SET_WINDOWED ); - } - break; - - case WMODE_SWAP_FULLSCREEN: - GLimp_WindowMode( glConfig.isFullscreen ? WMODE_SET_WINDOWED : WMODE_SET_FULLSCREEN ); - break; - - case WMODE_SWAP_MINIMIZED: - GLimp_WindowMode( win_minimized ? WMODE_RESTART : WMODE_SET_MINIMIZED ); - break; - - default: - Com_Printf( "Invalid Window Mode\n" ); - } -} -// !drakkar +void QGL_SwapInterval( Display *dpy, Window win, int interval ); /* ** GLimp_Init ** ** This routine is responsible for initializing the OS specific portions -** of OpenGL. +** of OpenGL. */ void GLimp_Init( void ) { qboolean attemptedlibGL = qfalse; - qboolean attempted3Dfx = qfalse; qboolean success = qfalse; cvar_t *lastValidRenderer = ri.Cvar_Get( "r_lastValidRenderer", "(uninitialized)", CVAR_ARCHIVE ); @@ -1653,59 +1408,16 @@ void GLimp_Init( void ) r_allowSoftwareGL = ri.Cvar_Get( "r_allowSoftwareGL", "0", CVAR_LATCH ); - r_previousglDriver = ri.Cvar_Get( "r_previousglDriver", "", CVAR_ROM ); - InitSig(); IN_Init(); // rcg08312005 moved into glimp. - // Hack here so that if the UI - if ( *r_previousglDriver->string ) - { - // The UI changed it on us, hack it back - // This means the renderer can't be changed on the fly - ri.Cvar_Set( "r_glDriver", r_previousglDriver->string ); - } - // set up our custom error handler for X failures XSetErrorHandler(&qXErrorHandler); - // - // load and initialize the specific OpenGL driver - // - if ( !GLW_LoadOpenGL( r_glDriver->string ) ) - { - if ( !Q_stricmp( r_glDriver->string, OPENGL_DRIVER_NAME ) ) - { - attemptedlibGL = qtrue; - } else if ( !Q_stricmp( r_glDriver->string, _3DFX_DRIVER_NAME ) ) - { - attempted3Dfx = qtrue; - } - - // try ICD before trying 3Dfx standalone driver - if ( !attemptedlibGL && !success ) - { - attemptedlibGL = qtrue; - if ( GLW_LoadOpenGL( OPENGL_DRIVER_NAME ) ) - { - ri.Cvar_Set( "r_glDriver", OPENGL_DRIVER_NAME ); - r_glDriver->modified = qfalse; - success = qtrue; - } - } - - if (!success) - ri.Error( ERR_FATAL, "GLimp_Init() - could not load OpenGL subsystem\n" ); - - } - - // Save it in case the UI stomps it - ri.Cvar_Set( "r_previousglDriver", r_glDriver->string ); - - // This values force the UI to disable driver selection - glConfig.driverType = GLDRV_ICD; - glConfig.hardwareType = GLHW_GENERIC; + // load appropriate DLL and initialize subsystem + if (!GLW_LoadOpenGL() ) + ri.Error( ERR_FATAL, "GLimp_Init()->GLW_LoadOpenGL() - could not load OpenGL subsystem (using '%s')\n", OPENGL_DRIVER_NAME ); // get our config strings Q_strncpyz( glConfig.vendor_string, (char *)qglGetString (GL_VENDOR), sizeof( glConfig.vendor_string ) ); @@ -1719,7 +1431,10 @@ void GLimp_Init( void ) // initialize extensions GLW_InitExtensions(); + GLW_InitARB(); // loads the ARB extensions GLW_InitGamma(); + QGL_InitARB(); // compiles the shaders etc + QGL_SwapInterval( dpy, win, r_swapInterval->integer ); InitSig(); // not clear why this is at begin & end of function @@ -1729,21 +1444,25 @@ void GLimp_Init( void ) /* ** GLimp_EndFrame -** +** ** Responsible for doing a swapbuffers and possibly for other stuff ** as yet to be determined. Probably better not to make this a GLimp ** function and instead do a call to GLimp_SwapBuffers. */ void GLimp_EndFrame (void) { + // update the swap interval + if ( r_swapInterval->modified ) + { + r_swapInterval->modified = qfalse; + QGL_SwapInterval( dpy, win, r_swapInterval->integer ); + } + // don't flip if drawing to front buffer if ( Q_stricmp( r_drawBuffer->string, "GL_FRONT" ) != 0 ) { qglXSwapBuffers(dpy, win); } - - // check logging - QGL_EnableLogging( (qboolean)r_logFile->integer ); // bk001205 - was ->value } #ifdef SMP @@ -1888,10 +1607,10 @@ void IN_Init(void) { in_mouse = Cvar_Get ("in_mouse", "1", CVAR_ARCHIVE); in_dgamouse = Cvar_Get ("in_dgamouse", "1", CVAR_ARCHIVE); in_shiftedKeys = Cvar_Get ("in_shiftedKeys", "0", CVAR_ARCHIVE); - + // turn on-off sub-frame timing of X events in_subframe = Cvar_Get ("in_subframe", "1", CVAR_ARCHIVE); - + // developer feature, allows to break without loosing mouse pointer in_nograb = Cvar_Get ("in_nograb", "0", 0); @@ -1901,7 +1620,6 @@ void IN_Init(void) { in_joystickDebug = Cvar_Get ("in_debugjoystick", "0", CVAR_TEMP); joy_threshold = Cvar_Get ("joy_threshold", "0.15", CVAR_ARCHIVE); // FIXME: in_joythreshold - in_keyboardShortcuts = Cvar_Get ("in_keyboardShortcuts", "0", CVAR_TEMP); // drakkar - not used in linux Cvar_Set( "cl_platformSensitivity", "2.0" ); if (in_mouse->value) @@ -1927,9 +1645,7 @@ void IN_Frame (void) { { // temporarily deactivate if not in the game and // running on the desktop - // voodoo always counts as full screen - if (Cvar_VariableValue ("r_fullscreen") == 0 - && strcmp( Cvar_VariableString("r_glDriver"), _3DFX_DRIVER_NAME ) ) + if ( Cvar_VariableValue ("r_fullscreen") == 0 ) { IN_DeactivateMouse (); return; diff --git a/code/unix/linux_qgl.c b/code/unix/linux_qgl.c index ac68334..98ebc1f 100644 --- a/code/unix/linux_qgl.c +++ b/code/unix/linux_qgl.c @@ -64,12 +64,16 @@ void (*qfxMesaSwapBuffers)(void); //GLX Functions #if !defined(USE_SDL_VIDEO) +void* (*qglXGetProcAddress)( const char *symbol ); XVisualInfo * (*qglXChooseVisual)( Display *dpy, int screen, int *attribList ); GLXContext (*qglXCreateContext)( Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct ); void (*qglXDestroyContext)( Display *dpy, GLXContext ctx ); Bool (*qglXMakeCurrent)( Display *dpy, GLXDrawable drawable, GLXContext ctx); void (*qglXCopyContext)( Display *dpy, GLXContext src, GLXContext dst, GLuint mask ); void (*qglXSwapBuffers)( Display *dpy, GLXDrawable drawable ); +void (*qglXSwapIntervalEXT)( Display *dpy, GLXDrawable drawable, int si ); +int (*qglXSwapIntervalMESA)( unsigned si ); +int (*qglXSwapIntervalSGI)( int si ); #endif void ( APIENTRY * qglSwapIntervalEXT)( int interval ); // added to setup SDL swap interval support @@ -1145,19 +1149,23 @@ void QGL_Shutdown( void ) #endif #if !defined(USE_SDL_VIDEO) + qglXGetProcAddress = NULL; qglXChooseVisual = NULL; qglXCreateContext = NULL; qglXDestroyContext = NULL; qglXMakeCurrent = NULL; qglXCopyContext = NULL; qglXSwapBuffers = NULL; + qglXSwapIntervalEXT = NULL; + qglXSwapIntervalMESA = NULL; + qglXSwapIntervalSGI = NULL; #endif } // QGL_Shutdown /* ** GPA -** +** ** This'll setup a wrapper around calling GetProcAddress for all our ** GL to QGL bindings, hopefully making them less cumbersome to setup ** @@ -1167,19 +1175,34 @@ void QGL_Shutdown( void ) #define GPA( a ) SDL_GL_GetProcAddress( a ) qboolean GLimp_sdl_init_video(void); #else -#define GPA( a ) dlsym( glw_state.OpenGLLib, a ) +static void *QGL_GetProcAddress( const char *symbol ) +{ + void *sym; + + if ( qglXGetProcAddress ) + { + sym = qglXGetProcAddress( symbol ); + if ( sym ) + { + return sym; + } + } + + return dlsym( glw_state.OpenGLLib, symbol ); +} +#define GPA( a ) QGL_GetProcAddress( a ) #endif /* ** QGL_Init ** -** This is responsible for binding our qgl function pointers to -** the appropriate GL stuff. In Windows this means doing a +** This is responsible for binding our qgl function pointers to +** the appropriate GL stuff. In Windows this means doing a ** LoadLibrary and a bunch of calls to GetProcAddress. On other ** operating systems we need to do the right thing, whatever that ** might be. -** +** */ qboolean QGL_Init( const char *dllname ) @@ -1200,33 +1223,9 @@ qboolean QGL_Init( const char *dllname ) return qfalse; } -/* @brut: i don't know who did this, but it's blatantly Shit And Wrong - if (glw_state.OpenGLLib == 0) - { - char fn[1024]; - // FILE *fp; // bk001204 - unused - - // if we are not setuid, try current directory - if (dllname != NULL) { - getcwd(fn, sizeof(fn)); - Q_strcat(fn, sizeof(fn), "/"); - Q_strcat(fn, sizeof(fn), dllname); - - #if USE_SDL_VIDEO - glw_state.OpenGLLib = (void*)(long)((SDL_GL_LoadLibrary(fn) == -1) ? 0 : 1); - #else - glw_state.OpenGLLib = dlopen( fn, RTLD_LAZY ); - #endif - if ( glw_state.OpenGLLib == 0 ) { - ri.Printf(PRINT_ALL, "QGL_Init: Can't load %s from /etc/ld.so.conf or current dir: %s\n", dllname, do_dlerror()); - return qfalse; - } - } else { - ri.Printf(PRINT_ALL, "QGL_Init: Can't load %s from /etc/ld.so.conf: %s\n", dllname, do_dlerror()); - return qfalse; - } - } -*/ +#if !defined(USE_SDL_VIDEO) + qglXGetProcAddress = (void* (*)( const char *symbol ))GPA( "glXGetProcAddress" ); +#endif qglAccum = dllAccum =(void (*)(GLenum, GLfloat))GPA( "glAccum" ); qglAlphaFunc = dllAlphaFunc =(void (*)(GLenum, GLclampf))GPA( "glAlphaFunc" ); @@ -1576,27 +1575,30 @@ qboolean QGL_Init( const char *dllname ) #endif #if !defined(USE_SDL_VIDEO) - qglXChooseVisual = GPA("glXChooseVisual"); - qglXCreateContext = GPA("glXCreateContext"); - qglXDestroyContext = GPA("glXDestroyContext"); - qglXMakeCurrent = GPA("glXMakeCurrent"); - qglXCopyContext = GPA("glXCopyContext"); - qglXSwapBuffers = GPA("glXSwapBuffers"); + qglXChooseVisual = (XVisualInfo * (*)( Display *dpy, int screen, int *attribList ))GPA("glXChooseVisual"); + qglXCreateContext = (GLXContext (*)( Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct ))GPA("glXCreateContext"); + qglXDestroyContext = (void (*)( Display *dpy, GLXContext ctx ))GPA("glXDestroyContext"); + qglXMakeCurrent = (Bool (*)( Display *dpy, GLXDrawable drawable, GLXContext ctx))GPA("glXMakeCurrent"); + qglXCopyContext = (void (*)( Display *dpy, GLXContext src, GLXContext dst, GLuint mask ))GPA("glXCopyContext"); + qglXSwapBuffers = (void (*)( Display *dpy, GLXDrawable drawable ))GPA("glXSwapBuffers"); #endif - qglLockArraysEXT = 0; - qglUnlockArraysEXT = 0; - qglActiveTextureARB = 0; - qglClientActiveTextureARB = 0; - qglSwapIntervalEXT = 0; + qglLockArraysEXT = (PFNGLLOCKARRAYSEXTPROC)GPA("glLockArraysEXT"); + qglUnlockArraysEXT = (PFNGLUNLOCKARRAYSEXTPROC)GPA("glUnlockArraysEXT"); + qglActiveTextureARB = (void ( APIENTRY * )( GLenum texture ))GPA("glActiveTextureARB"); + qglClientActiveTextureARB = (void ( APIENTRY * )( GLenum texture ))GPA("glClientActiveTextureARB"); + qglSwapIntervalEXT = (void ( APIENTRY * )( int interval ))GPA("glSwapIntervalEXT"); + qglXSwapIntervalEXT = (void (*)( Display *dpy, GLXDrawable drawable, int si ))GPA( "glXSwapIntervalEXT" ); + qglXSwapIntervalMESA = (int (*)( unsigned si ))GPA( "glXSwapIntervalMESA" ); + qglXSwapIntervalSGI = (int (*)( int si ))GPA( "glXSwapIntervalSGI" ); - qglPointParameterfEXT = NULL; - qglPointParameterfvEXT = NULL; - qglColorTableEXT = NULL; - qgl3DfxSetPaletteEXT = NULL; - qglSelectTextureSGIS = NULL; - qglMTexCoord2fSGIS = NULL; - qglMultiTexCoord2fARB = NULL; + qglPointParameterfEXT = (void ( APIENTRY * )( GLenum param, GLfloat value ))GPA("glPointParameterfEXT"); + qglPointParameterfvEXT = (void ( APIENTRY * )( GLenum param, const GLfloat *value ))GPA("glPointParameterfvEXT"); + qglColorTableEXT = (void ( APIENTRY * )( int, int, int, int, int, const void * ))GPA("glColorTableEXT"); + qgl3DfxSetPaletteEXT = (void ( APIENTRY * )( GLuint * ))GPA("gl3DfxSetPaletteEXT"); + qglSelectTextureSGIS = (void ( APIENTRY * )( GLenum ))GPA("glSelectTextureSGIS"); + qglMTexCoord2fSGIS = (void ( APIENTRY * )( GLenum, GLfloat, GLfloat ))GPA("glMTexCoord2fSGIS"); + qglMultiTexCoord2fARB = (void ( APIENTRY * )( GLenum texture, GLfloat s, GLfloat t ))GPA("glMultiTexCoord2fARB"); return qtrue; } @@ -1632,10 +1634,30 @@ qbool GLW_InitARB() QGL_ARB( glEnableVertexAttribArray, PFNGLENABLEVERTEXATTRIBARRAYARBPROC ); QGL_ARB( glVertexAttribPointer, PFNGLVERTEXATTRIBPOINTERARBPROC ); - QGL_ARB( glProgramEnvParameter4f, PFNGLPROGRAMENVPARAMETER4FARBPROC ); + QGL_ARB( glProgramEnvParameter4f, PFNGLPROGRAMENVPARAMETER4FARBPROC ); QGL_ARB( glProgramLocalParameter4f, PFNGLPROGRAMLOCALPARAMETER4FARBPROC ); return qtrue; } +void QGL_SwapInterval( Display *dpy, Window win, int interval ) +{ + if( qglSwapIntervalEXT ) + { + qglSwapIntervalEXT( interval ); + } + else if ( qglXSwapIntervalEXT ) + { + qglXSwapIntervalEXT( dpy, win, interval ); + } + else if ( qglXSwapIntervalMESA ) + { + qglXSwapIntervalMESA( interval ); + } + else if ( qglXSwapIntervalSGI ) + { + qglXSwapIntervalSGI( (unsigned int)interval ); + } +} + // END linux_qgl.c diff --git a/code/unix/matha.s b/code/unix/matha.s deleted file mode 100644 index 3bc2220..0000000 --- a/code/unix/matha.s +++ /dev/null @@ -1,424 +0,0 @@ -/* -=========================================================================== -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 Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// -// math.s -// x86 assembly-language math routines. - -#include "qasm.h" - - -#if id386 - - .data - - .align 4 -Ljmptab: .long Lcase0, Lcase1, Lcase2, Lcase3 - .long Lcase4, Lcase5, Lcase6, Lcase7 - - .text - -// TODO: rounding needed? -// stack parameter offset -#define val 4 - -.globl C(Invert24To16) -C(Invert24To16): - - movl val(%esp),%ecx - movl $0x100,%edx // 0x10000000000 as dividend - cmpl %edx,%ecx - jle LOutOfRange - - subl %eax,%eax - divl %ecx - - ret - -LOutOfRange: - movl $0xFFFFFFFF,%eax - ret - -#if 0 - -#define in 4 -#define out 8 - - .align 2 -.globl C(TransformVector) -C(TransformVector): - movl in(%esp),%eax - movl out(%esp),%edx - - flds (%eax) // in[0] - fmuls C(vright) // in[0]*vright[0] - flds (%eax) // in[0] | in[0]*vright[0] - fmuls C(vup) // in[0]*vup[0] | in[0]*vright[0] - flds (%eax) // in[0] | in[0]*vup[0] | in[0]*vright[0] - fmuls C(vpn) // in[0]*vpn[0] | in[0]*vup[0] | in[0]*vright[0] - - flds 4(%eax) // in[1] | ... - fmuls C(vright)+4 // in[1]*vright[1] | ... - flds 4(%eax) // in[1] | in[1]*vright[1] | ... - fmuls C(vup)+4 // in[1]*vup[1] | in[1]*vright[1] | ... - flds 4(%eax) // in[1] | in[1]*vup[1] | in[1]*vright[1] | ... - fmuls C(vpn)+4 // in[1]*vpn[1] | in[1]*vup[1] | in[1]*vright[1] | ... - fxch %st(2) // in[1]*vright[1] | in[1]*vup[1] | in[1]*vpn[1] | ... - - faddp %st(0),%st(5) // in[1]*vup[1] | in[1]*vpn[1] | ... - faddp %st(0),%st(3) // in[1]*vpn[1] | ... - faddp %st(0),%st(1) // vpn_accum | vup_accum | vright_accum - - flds 8(%eax) // in[2] | ... - fmuls C(vright)+8 // in[2]*vright[2] | ... - flds 8(%eax) // in[2] | in[2]*vright[2] | ... - fmuls C(vup)+8 // in[2]*vup[2] | in[2]*vright[2] | ... - flds 8(%eax) // in[2] | in[2]*vup[2] | in[2]*vright[2] | ... - fmuls C(vpn)+8 // in[2]*vpn[2] | in[2]*vup[2] | in[2]*vright[2] | ... - fxch %st(2) // in[2]*vright[2] | in[2]*vup[2] | in[2]*vpn[2] | ... - - faddp %st(0),%st(5) // in[2]*vup[2] | in[2]*vpn[2] | ... - faddp %st(0),%st(3) // in[2]*vpn[2] | ... - faddp %st(0),%st(1) // vpn_accum | vup_accum | vright_accum - - fstps 8(%edx) // out[2] - fstps 4(%edx) // out[1] - fstps (%edx) // out[0] - - ret - -#endif - -#define EMINS 4+4 -#define EMAXS 4+8 -#define P 4+12 - - .align 2 -.globl C(BoxOnPlaneSide) -C(BoxOnPlaneSide): - pushl %ebx - - movl P(%esp),%edx - movl EMINS(%esp),%ecx - xorl %eax,%eax - movl EMAXS(%esp),%ebx - movb pl_signbits(%edx),%al - cmpb $8,%al - jge Lerror - flds pl_normal(%edx) // p->normal[0] - fld %st(0) // p->normal[0] | p->normal[0] - // bk000422 - warning: missing prefix `*' in absolute indirect address, maybe misassembled! - // bk001129 - fix from Andrew Henderson, was: Ljmptab(,%eax,4) - jmp *Ljmptab(,%eax,4) - - -//dist1= p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2]; -//dist2= p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2]; -Lcase0: - fmuls (%ebx) // p->normal[0]*emaxs[0] | p->normal[0] - flds pl_normal+4(%edx) // p->normal[1] | p->normal[0]*emaxs[0] | - // p->normal[0] - fxch %st(2) // p->normal[0] | p->normal[0]*emaxs[0] | - // p->normal[1] - fmuls (%ecx) // p->normal[0]*emins[0] | - // p->normal[0]*emaxs[0] | p->normal[1] - fxch %st(2) // p->normal[1] | p->normal[0]*emaxs[0] | - // p->normal[0]*emins[0] - fld %st(0) // p->normal[1] | p->normal[1] | - // p->normal[0]*emaxs[0] | - // p->normal[0]*emins[0] - fmuls 4(%ebx) // p->normal[1]*emaxs[1] | p->normal[1] | - // p->normal[0]*emaxs[0] | - // p->normal[0]*emins[0] - flds pl_normal+8(%edx) // p->normal[2] | p->normal[1]*emaxs[1] | - // p->normal[1] | p->normal[0]*emaxs[0] | - // p->normal[0]*emins[0] - fxch %st(2) // p->normal[1] | p->normal[1]*emaxs[1] | - // p->normal[2] | p->normal[0]*emaxs[0] | - // p->normal[0]*emins[0] - fmuls 4(%ecx) // p->normal[1]*emins[1] | - // p->normal[1]*emaxs[1] | - // p->normal[2] | p->normal[0]*emaxs[0] | - // p->normal[0]*emins[0] - fxch %st(2) // p->normal[2] | p->normal[1]*emaxs[1] | - // p->normal[1]*emins[1] | - // p->normal[0]*emaxs[0] | - // p->normal[0]*emins[0] - fld %st(0) // p->normal[2] | p->normal[2] | - // p->normal[1]*emaxs[1] | - // p->normal[1]*emins[1] | - // p->normal[0]*emaxs[0] | - // p->normal[0]*emins[0] - fmuls 8(%ebx) // p->normal[2]*emaxs[2] | - // p->normal[2] | - // p->normal[1]*emaxs[1] | - // p->normal[1]*emins[1] | - // p->normal[0]*emaxs[0] | - // p->normal[0]*emins[0] - fxch %st(5) // p->normal[0]*emins[0] | - // p->normal[2] | - // p->normal[1]*emaxs[1] | - // p->normal[1]*emins[1] | - // p->normal[0]*emaxs[0] | - // p->normal[2]*emaxs[2] - faddp %st(0),%st(3) //p->normal[2] | - // p->normal[1]*emaxs[1] | - // p->normal[1]*emins[1]+p->normal[0]*emins[0]| - // p->normal[0]*emaxs[0] | - // p->normal[2]*emaxs[2] - fmuls 8(%ecx) //p->normal[2]*emins[2] | - // p->normal[1]*emaxs[1] | - // p->normal[1]*emins[1]+p->normal[0]*emins[0]| - // p->normal[0]*emaxs[0] | - // p->normal[2]*emaxs[2] - fxch %st(1) //p->normal[1]*emaxs[1] | - // p->normal[2]*emins[2] | - // p->normal[1]*emins[1]+p->normal[0]*emins[0]| - // p->normal[0]*emaxs[0] | - // p->normal[2]*emaxs[2] - faddp %st(0),%st(3) //p->normal[2]*emins[2] | - // p->normal[1]*emins[1]+p->normal[0]*emins[0]| - // p->normal[0]*emaxs[0]+p->normal[1]*emaxs[1]| - // p->normal[2]*emaxs[2] - fxch %st(3) //p->normal[2]*emaxs[2] + - // p->normal[1]*emins[1]+p->normal[0]*emins[0]| - // p->normal[0]*emaxs[0]+p->normal[1]*emaxs[1]| - // p->normal[2]*emins[2] - faddp %st(0),%st(2) //p->normal[1]*emins[1]+p->normal[0]*emins[0]| - // dist1 | p->normal[2]*emins[2] - - jmp LSetSides - -//dist1= p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2]; -//dist2= p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2]; -Lcase1: - fmuls (%ecx) // emins[0] - flds pl_normal+4(%edx) - fxch %st(2) - fmuls (%ebx) // emaxs[0] - fxch %st(2) - fld %st(0) - fmuls 4(%ebx) // emaxs[1] - flds pl_normal+8(%edx) - fxch %st(2) - fmuls 4(%ecx) // emins[1] - fxch %st(2) - fld %st(0) - fmuls 8(%ebx) // emaxs[2] - fxch %st(5) - faddp %st(0),%st(3) - fmuls 8(%ecx) // emins[2] - fxch %st(1) - faddp %st(0),%st(3) - fxch %st(3) - faddp %st(0),%st(2) - - jmp LSetSides - -//dist1= p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2]; -//dist2= p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2]; -Lcase2: - fmuls (%ebx) // emaxs[0] - flds pl_normal+4(%edx) - fxch %st(2) - fmuls (%ecx) // emins[0] - fxch %st(2) - fld %st(0) - fmuls 4(%ecx) // emins[1] - flds pl_normal+8(%edx) - fxch %st(2) - fmuls 4(%ebx) // emaxs[1] - fxch %st(2) - fld %st(0) - fmuls 8(%ebx) // emaxs[2] - fxch %st(5) - faddp %st(0),%st(3) - fmuls 8(%ecx) // emins[2] - fxch %st(1) - faddp %st(0),%st(3) - fxch %st(3) - faddp %st(0),%st(2) - - jmp LSetSides - -//dist1= p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2]; -//dist2= p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2]; -Lcase3: - fmuls (%ecx) // emins[0] - flds pl_normal+4(%edx) - fxch %st(2) - fmuls (%ebx) // emaxs[0] - fxch %st(2) - fld %st(0) - fmuls 4(%ecx) // emins[1] - flds pl_normal+8(%edx) - fxch %st(2) - fmuls 4(%ebx) // emaxs[1] - fxch %st(2) - fld %st(0) - fmuls 8(%ebx) // emaxs[2] - fxch %st(5) - faddp %st(0),%st(3) - fmuls 8(%ecx) // emins[2] - fxch %st(1) - faddp %st(0),%st(3) - fxch %st(3) - faddp %st(0),%st(2) - - jmp LSetSides - -//dist1= p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2]; -//dist2= p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2]; -Lcase4: - fmuls (%ebx) // emaxs[0] - flds pl_normal+4(%edx) - fxch %st(2) - fmuls (%ecx) // emins[0] - fxch %st(2) - fld %st(0) - fmuls 4(%ebx) // emaxs[1] - flds pl_normal+8(%edx) - fxch %st(2) - fmuls 4(%ecx) // emins[1] - fxch %st(2) - fld %st(0) - fmuls 8(%ecx) // emins[2] - fxch %st(5) - faddp %st(0),%st(3) - fmuls 8(%ebx) // emaxs[2] - fxch %st(1) - faddp %st(0),%st(3) - fxch %st(3) - faddp %st(0),%st(2) - - jmp LSetSides - -//dist1= p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2]; -//dist2= p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2]; -Lcase5: - fmuls (%ecx) // emins[0] - flds pl_normal+4(%edx) - fxch %st(2) - fmuls (%ebx) // emaxs[0] - fxch %st(2) - fld %st(0) - fmuls 4(%ebx) // emaxs[1] - flds pl_normal+8(%edx) - fxch %st(2) - fmuls 4(%ecx) // emins[1] - fxch %st(2) - fld %st(0) - fmuls 8(%ecx) // emins[2] - fxch %st(5) - faddp %st(0),%st(3) - fmuls 8(%ebx) // emaxs[2] - fxch %st(1) - faddp %st(0),%st(3) - fxch %st(3) - faddp %st(0),%st(2) - - jmp LSetSides - -//dist1= p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2]; -//dist2= p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2]; -Lcase6: - fmuls (%ebx) // emaxs[0] - flds pl_normal+4(%edx) - fxch %st(2) - fmuls (%ecx) // emins[0] - fxch %st(2) - fld %st(0) - fmuls 4(%ecx) // emins[1] - flds pl_normal+8(%edx) - fxch %st(2) - fmuls 4(%ebx) // emaxs[1] - fxch %st(2) - fld %st(0) - fmuls 8(%ecx) // emins[2] - fxch %st(5) - faddp %st(0),%st(3) - fmuls 8(%ebx) // emaxs[2] - fxch %st(1) - faddp %st(0),%st(3) - fxch %st(3) - faddp %st(0),%st(2) - - jmp LSetSides - -//dist1= p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2]; -//dist2= p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2]; -Lcase7: - fmuls (%ecx) // emins[0] - flds pl_normal+4(%edx) - fxch %st(2) - fmuls (%ebx) // emaxs[0] - fxch %st(2) - fld %st(0) - fmuls 4(%ecx) // emins[1] - flds pl_normal+8(%edx) - fxch %st(2) - fmuls 4(%ebx) // emaxs[1] - fxch %st(2) - fld %st(0) - fmuls 8(%ecx) // emins[2] - fxch %st(5) - faddp %st(0),%st(3) - fmuls 8(%ebx) // emaxs[2] - fxch %st(1) - faddp %st(0),%st(3) - fxch %st(3) - faddp %st(0),%st(2) - -LSetSides: - -// sides = 0; -// if (dist1 >= p->dist) -// sides = 1; -// if (dist2 < p->dist) -// sides |= 2; - - faddp %st(0),%st(2) // dist1 | dist2 - fcomps pl_dist(%edx) - xorl %ecx,%ecx - fnstsw %ax - fcomps pl_dist(%edx) - andb $1,%ah - xorb $1,%ah - addb %ah,%cl - - fnstsw %ax - andb $1,%ah - addb %ah,%ah - addb %ah,%cl - -// return sides; - - popl %ebx - movl %ecx,%eax // return status - - ret - - -Lerror: - movl 1, %eax - ret - -#endif // id386 diff --git a/code/unix/qasm.h b/code/unix/qasm.h deleted file mode 100644 index c32aafc..0000000 --- a/code/unix/qasm.h +++ /dev/null @@ -1,50 +0,0 @@ -/* -=========================================================================== -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 -=========================================================================== -*/ -#ifndef __ASM_I386__ -#define __ASM_I386__ - -#include "../qcommon/q_platform.h" - -#if defined(__MINGW32__) || defined(MACOS_X) -#undef ELF -#endif - -#ifdef __ELF__ -.section .note.GNU-stack,"",@progbits -#endif - -#ifdef ELF -#define C(label) label -#else -#define C(label) _##label -#endif - -// plane_t structure -// !!! if this is changed, it must be changed in q_shared.h too !!! -#define pl_normal 0 -#define pl_dist 12 -#define pl_type 16 -#define pl_signbits 17 -#define pl_pad 18 -#define pl_size 20 - -#endif diff --git a/code/unix/unix_main.cpp b/code/unix/unix_main.cpp index cd5b56b..6cacab9 100644 --- a/code/unix/unix_main.cpp +++ b/code/unix/unix_main.cpp @@ -469,7 +469,9 @@ void Sys_Error( const char *error, ... ) if (ttycon_on) tty_Hide(); +#ifndef DEDICATED CL_Shutdown(); +#endif va_start (argptr,error); vsprintf (string,error,argptr); @@ -482,7 +484,10 @@ void Sys_Error( const char *error, ... ) void Sys_Quit() { +#ifndef DEDICATED CL_Shutdown(); +#endif + fcntl( 0, F_SETFL, fcntl(0, F_GETFL, 0) & ~FNDELAY ); Sys_Exit(0); } @@ -644,9 +649,11 @@ sysEvent_t Sys_GetEvent() return eventQue[ ( eventTail - 1 ) & MASK_QUED_EVENTS ]; } +#ifndef DEDICATED // pump the message loop // in vga this calls KBD_Update, under X, it calls GetEvent Sys_SendKeyEvents(); +#endif // check for console commands const char* s = Sys_ConsoleInput(); @@ -657,8 +664,10 @@ sysEvent_t Sys_GetEvent() Sys_QueEvent( 0, SE_CONSOLE, 0, 0, len, b ); } +#ifndef DEDICATED // check for other input devices IN_Frame(); +#endif // check for network packets msg_t netmsg; @@ -691,11 +700,13 @@ sysEvent_t Sys_GetEvent() /////////////////////////////////////////////////////////////// +#ifndef DEDICATED static void Sys_In_Restart_f( void ) { IN_Shutdown(); IN_Init(); } +#endif char *Sys_GetClipboardData(void) @@ -806,7 +817,9 @@ void Sys_Print( const char *msg ) void Sys_Init() { +#ifndef DEDICATED Cmd_AddCommand( "in_restart", Sys_In_Restart_f ); +#endif Cvar_Set( "arch", OS_STRING " " ARCH_STRING ); Cvar_Set( "username", Sys_GetCurrentUser() ); } diff --git a/code/win32/msvc.2008/botlib.vcproj b/code/win32/msvc.2008/botlib.vcproj deleted file mode 100644 index c0c85c6..0000000 --- a/code/win32/msvc.2008/botlib.vcproj +++ /dev/null @@ -1,1023 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/code/win32/msvc.2008/cgame.def b/code/win32/msvc.2008/cgame.def deleted file mode 100644 index 2ee748e..0000000 --- a/code/win32/msvc.2008/cgame.def +++ /dev/null @@ -1,3 +0,0 @@ -EXPORTS - vmMain - dllEntry diff --git a/code/win32/msvc.2008/cgame.vcproj b/code/win32/msvc.2008/cgame.vcproj deleted file mode 100644 index 031270e..0000000 --- a/code/win32/msvc.2008/cgame.vcproj +++ /dev/null @@ -1,1399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/code/win32/msvc.2008/game.def b/code/win32/msvc.2008/game.def deleted file mode 100644 index 290f891..0000000 --- a/code/win32/msvc.2008/game.def +++ /dev/null @@ -1,3 +0,0 @@ -EXPORTS - dllEntry - vmMain diff --git a/code/win32/msvc.2008/game.vcproj b/code/win32/msvc.2008/game.vcproj deleted file mode 100644 index 6f97830..0000000 --- a/code/win32/msvc.2008/game.vcproj +++ /dev/null @@ -1,2561 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/code/win32/msvc.2008/q3_ui.def b/code/win32/msvc.2008/q3_ui.def deleted file mode 100644 index 2ee748e..0000000 --- a/code/win32/msvc.2008/q3_ui.def +++ /dev/null @@ -1,3 +0,0 @@ -EXPORTS - vmMain - dllEntry diff --git a/code/win32/msvc.2008/q3_ui.vcproj b/code/win32/msvc.2008/q3_ui.vcproj deleted file mode 100644 index 7adbeb2..0000000 --- a/code/win32/msvc.2008/q3_ui.vcproj +++ /dev/null @@ -1,2441 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/code/win32/msvc.2008/quake3.sln b/code/win32/msvc.2008/quake3.sln deleted file mode 100644 index 535cfc9..0000000 --- a/code/win32/msvc.2008/quake3.sln +++ /dev/null @@ -1,44 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "botlib", "botlib.vcproj", "{A410161F-AE9F-485D-A01F-5294891430A6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "quake3", "quake3.vcproj", "{81CB51C4-B434-4E12-B69B-BAEE102F2852}" - ProjectSection(ProjectDependencies) = postProject - {A410161F-AE9F-485D-A01F-5294891430A6} = {A410161F-AE9F-485D-A01F-5294891430A6} - {AB424155-FBED-4D8D-B007-5B6CF93EA395} = {AB424155-FBED-4D8D-B007-5B6CF93EA395} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "renderer", "renderer.vcproj", "{AB424155-FBED-4D8D-B007-5B6CF93EA395}" - ProjectSection(ProjectDependencies) = postProject - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} = {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "..\..\freetype\builds\win32\visualc.2008\freetype.vcproj", "{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A410161F-AE9F-485D-A01F-5294891430A6}.Debug|Win32.ActiveCfg = Debug|Win32 - {A410161F-AE9F-485D-A01F-5294891430A6}.Debug|Win32.Build.0 = Debug|Win32 - {A410161F-AE9F-485D-A01F-5294891430A6}.Release|Win32.ActiveCfg = Release|Win32 - {A410161F-AE9F-485D-A01F-5294891430A6}.Release|Win32.Build.0 = Release|Win32 - {81CB51C4-B434-4E12-B69B-BAEE102F2852}.Debug|Win32.ActiveCfg = Debug|Win32 - {81CB51C4-B434-4E12-B69B-BAEE102F2852}.Debug|Win32.Build.0 = Debug|Win32 - {81CB51C4-B434-4E12-B69B-BAEE102F2852}.Release|Win32.ActiveCfg = Release|Win32 - {81CB51C4-B434-4E12-B69B-BAEE102F2852}.Release|Win32.Build.0 = Release|Win32 - {AB424155-FBED-4D8D-B007-5B6CF93EA395}.Debug|Win32.ActiveCfg = Debug|Win32 - {AB424155-FBED-4D8D-B007-5B6CF93EA395}.Debug|Win32.Build.0 = Debug|Win32 - {AB424155-FBED-4D8D-B007-5B6CF93EA395}.Release|Win32.ActiveCfg = Release|Win32 - {AB424155-FBED-4D8D-B007-5B6CF93EA395}.Release|Win32.Build.0 = Release|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.ActiveCfg = Debug|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.Build.0 = Debug|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.ActiveCfg = Release|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/code/win32/msvc.2008/quake3.vcproj b/code/win32/msvc.2008/quake3.vcproj deleted file mode 100644 index 8ff2ff2..0000000 --- a/code/win32/msvc.2008/quake3.vcproj +++ /dev/null @@ -1,1654 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/code/win32/msvc.2008/renderer.vcproj b/code/win32/msvc.2008/renderer.vcproj deleted file mode 100644 index 65bf66e..0000000 --- a/code/win32/msvc.2008/renderer.vcproj +++ /dev/null @@ -1,1708 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/code/win32/msvc.2008/ui.def b/code/win32/msvc.2008/ui.def deleted file mode 100644 index 2ee748e..0000000 --- a/code/win32/msvc.2008/ui.def +++ /dev/null @@ -1,3 +0,0 @@ -EXPORTS - vmMain - dllEntry diff --git a/code/win32/msvc.2008/ui.vcproj b/code/win32/msvc.2008/ui.vcproj deleted file mode 100644 index 18fcf7d..0000000 --- a/code/win32/msvc.2008/ui.vcproj +++ /dev/null @@ -1,1171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/code/win32/msvc.2010/botlib.vcxproj b/code/win32/msvc.2010/botlib.vcxproj deleted file mode 100644 index 7acdd75..0000000 --- a/code/win32/msvc.2010/botlib.vcxproj +++ /dev/null @@ -1,425 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {A410161F-AE9F-485D-A01F-5294891430A6} - botlib - - - - StaticLibrary - false - MultiByte - - - StaticLibrary - false - MultiByte - true - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - .\build\botlib_release\ - .\build\botlib_release\ - .\build\botlib_debug\ - .\build\botlib_debug\ - AllRules.ruleset - - - AllRules.ruleset - - - - - - bg_public copy... - xcopy /Y "$(CPMA_SRC)\game\bg_public.h" "$(SolutionDir)code\game\" - - - Full - OnlyExplicitInline - true - Speed - true - true - WIN32;NDEBUG;_LIB;BOTLIB;%(PreprocessorDefinitions) - true - Sync - MultiThreaded - StreamingSIMDExtensions - false - - - $(IntDir)botlib.pch - $(IntDir) - $(IntDir) - $(IntDir) - Level4 - true - CompileAsCpp - OldStyle - false - false - false - false - Default - false - false - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)botlib.lib - true - false - NoErrorReport - MachineX86 - Windows - - - - - bg_public copy... - xcopy /Y "$(CPMA_SRC)\game\bg_public.h" "$(SolutionDir)code\game\" - - - Disabled - %(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;BOTLIB;DEBUG;_BIND_TO_CURRENT_VCLIBS_VERSION=1;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - - - $(IntDir)botlib.pch - $(IntDir) - $(IntDir) - $(IntDir) - true - Level4 - true - EditAndContinue - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)botlib.lib - true - - - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/code/win32/msvc.2010/botlib.vcxproj.filters b/code/win32/msvc.2010/botlib.vcxproj.filters deleted file mode 100644 index df1ccca..0000000 --- a/code/win32/msvc.2010/botlib.vcxproj.filters +++ /dev/null @@ -1,197 +0,0 @@ - - - - - {760b60b7-de31-4439-8002-5b150e56af71} - cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - - - {80dab3b3-a70f-42f5-8d44-9c04cac72cae} - h;hpp;hxx;hm;inl - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/code/win32/msvc.2010/quake3.sln b/code/win32/msvc.2010/quake3.sln deleted file mode 100644 index f93719e..0000000 --- a/code/win32/msvc.2010/quake3.sln +++ /dev/null @@ -1,42 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "botlib", "botlib.vcxproj", "{A410161F-AE9F-485D-A01F-5294891430A6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "quake3", "quake3.vcxproj", "{81CB51C4-B434-4E12-B69B-BAEE102F2852}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "renderer", "renderer.vcxproj", "{AB424155-FBED-4D8D-B007-5B6CF93EA395}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "..\..\freetype\builds\win32\visualc.2010\freetype.vcxproj", "{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{75ED65B0-1FC4-4283-9962-FC5464F27FAD}" - ProjectSection(SolutionItems) = preProject - Performance2.psess = Performance2.psess - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A410161F-AE9F-485D-A01F-5294891430A6}.Debug|Win32.ActiveCfg = Debug|Win32 - {A410161F-AE9F-485D-A01F-5294891430A6}.Debug|Win32.Build.0 = Debug|Win32 - {A410161F-AE9F-485D-A01F-5294891430A6}.Release|Win32.ActiveCfg = Release|Win32 - {A410161F-AE9F-485D-A01F-5294891430A6}.Release|Win32.Build.0 = Release|Win32 - {81CB51C4-B434-4E12-B69B-BAEE102F2852}.Debug|Win32.ActiveCfg = Debug|Win32 - {81CB51C4-B434-4E12-B69B-BAEE102F2852}.Debug|Win32.Build.0 = Debug|Win32 - {81CB51C4-B434-4E12-B69B-BAEE102F2852}.Release|Win32.ActiveCfg = Release|Win32 - {81CB51C4-B434-4E12-B69B-BAEE102F2852}.Release|Win32.Build.0 = Release|Win32 - {AB424155-FBED-4D8D-B007-5B6CF93EA395}.Debug|Win32.ActiveCfg = Debug|Win32 - {AB424155-FBED-4D8D-B007-5B6CF93EA395}.Debug|Win32.Build.0 = Debug|Win32 - {AB424155-FBED-4D8D-B007-5B6CF93EA395}.Release|Win32.ActiveCfg = Release|Win32 - {AB424155-FBED-4D8D-B007-5B6CF93EA395}.Release|Win32.Build.0 = Release|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.ActiveCfg = Debug|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.Build.0 = Debug|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.ActiveCfg = Release|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/code/win32/msvc.2010/quake3.vcxproj b/code/win32/msvc.2010/quake3.vcxproj deleted file mode 100644 index 448be4e..0000000 --- a/code/win32/msvc.2010/quake3.vcxproj +++ /dev/null @@ -1,663 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {81CB51C4-B434-4E12-B69B-BAEE102F2852} - quake3 - - - - Application - false - true - MultiByte - - - Application - false - false - NotSet - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(QUAKE3)\ - .\build\quake3_debug\ - true - false - $(QUAKE3)\ - .\build\quake3_release\ - false - false - false - AllRules.ruleset - - - AllRules.ruleset - - - cnq3 - cnq3 - - - - - - - - bg_public copy... - xcopy /Y "$(CPMA_SRC)\game\bg_public.h" "$(SolutionDir)..\..\game\" - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - $(IntDir)quake3.tlb - - - - - Disabled - WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDebug - - - $(IntDir)quake3.pch - $(IntDir) - $(IntDir) - $(IntDir) - true - $(IntDir) - Level4 - true - EditAndContinue - true - false - true - false - false - true - UninitializedLocalUsageCheck - false - false - false - None - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - ..\winquake.res - false - - - winmm.lib;wsock32.lib;gdi32.lib;opengl32.lib;kernel32.lib;user32.lib;ole32.lib;".\build\botlib_debug\botlib.lib";".\build\renderer_debug\renderer.lib";"..\..\freetype\objs\freetype_d.lib";%(AdditionalDependencies) - $(QUAKE3)\cnq3.exe - true - true - $(IntDir)quake3.pdb - true - $(IntDir)quake3.map - Windows - 8388608 - false - - - MachineX86 - Default - - - Post build processing.. - rem bash -c "perl ./unix/cons -- debug" - - - - - bg_public copy... - xcopy /Y "$(CPMA_SRC)\game\bg_public.h" "$(SolutionDir)..\..\game\" - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - $(IntDir)quake3.tlb - - - - - Full - AnySuitable - true - Speed - true - true - WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - Sync - MultiThreaded - false - StreamingSIMDExtensions - false - - - $(IntDir)quake3.pch - $(IntDir) - $(IntDir) - $(IntDir) - Level4 - true - Default - 4702;%(DisableSpecificWarnings) - false - true - false - false - false - false - false - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - false - - - winmm.lib;wsock32.lib;gdi32.lib;opengl32.lib;kernel32.lib;user32.lib;ole32.lib;.\build\renderer_release\renderer.lib;.\build\botlib_release\botlib.lib;"..\..\freetype\objs\freetype.lib";%(AdditionalDependencies) - $(QUAKE3)\cnq3.exe - true - false - $(IntDir)quake3.pdb - false - $(IntDir)quake3.map - Windows - true - true - false - false - MachineX86 - false - 0 - 0 - 8388608 - 0 - false - false - NoErrorReport - - - - - CompileAsCpp - Default - - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - CompileAsCpp - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - - CompileAsCpp - Default - - - CompileAsCpp - Default - - - CompileAsCpp - Default - - - CompileAsCpp - Default - - - CompileAsCpp - Default - - - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - CompileAsCpp - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %(PreprocessorDefinitions) - win32;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - win32;%(AdditionalIncludeDirectories) - - - - - {a410161f-ae9f-485d-a01f-5294891430a6} - false - - - {ab424155-fbed-4d8d-b007-5b6cf93ea395} - false - - - - - - \ No newline at end of file diff --git a/code/win32/msvc.2010/quake3.vcxproj.filters b/code/win32/msvc.2010/quake3.vcxproj.filters deleted file mode 100644 index 6979ac5..0000000 --- a/code/win32/msvc.2010/quake3.vcxproj.filters +++ /dev/null @@ -1,275 +0,0 @@ - - - - - {9a6115a8-1d92-4da7-bfd3-0ec08154e1da} - cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90 - - - {e4ca54c8-e55e-471f-ae10-79841698a78b} - h;hpp;hxx;hm;inl;fi;fd - - - {b9a70540-3bf4-4414-aa60-5b12c7c6e28e} - ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Resource Files - - - \ No newline at end of file diff --git a/code/win32/msvc.2010/renderer.vcxproj b/code/win32/msvc.2010/renderer.vcxproj deleted file mode 100644 index 5adb63a..0000000 --- a/code/win32/msvc.2010/renderer.vcxproj +++ /dev/null @@ -1,626 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {AB424155-FBED-4D8D-B007-5B6CF93EA395} - renderer - - - - StaticLibrary - false - MultiByte - - - StaticLibrary - false - MultiByte - true - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - .\build\renderer_release\ - .\build\renderer_release\ - .\build\renderer_debug\ - .\build\renderer_debug\ - AllRules.ruleset - - - AllRules.ruleset - - - - - - Full - AnySuitable - true - Speed - true - true - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - Sync - MultiThreaded - StreamingSIMDExtensions - false - - - $(IntDir)renderer.pch - $(IntDir) - $(IntDir) - $(IntDir) - Level4 - true - Default - false - true - false - false - false - false - false - Default - false - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)renderer.lib - true - NoErrorReport - false - MachineX86 - Windows - - - - - Disabled - %(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;_BIND_TO_CURRENT_VCLIBS_VERSION=1;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - - - $(IntDir)renderer.pch - $(IntDir) - $(IntDir) - $(IntDir) - true - Level4 - true - EditAndContinue - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)renderer.lib - true - - - - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - ../../freetype/include;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - ../../freetype/include;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsC - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {78b079bd-9fc7-4b9e-b4a6-96da0f00248b} - false - - - - - - \ No newline at end of file diff --git a/code/win32/msvc.2010/renderer.vcxproj.filters b/code/win32/msvc.2010/renderer.vcxproj.filters deleted file mode 100644 index 28f6b52..0000000 --- a/code/win32/msvc.2010/renderer.vcxproj.filters +++ /dev/null @@ -1,278 +0,0 @@ - - - - - {94bb50c8-177b-479c-ad08-4586b64927e6} - cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - - - {f306030e-d010-494b-b46f-4c87693bb06f} - h;hpp;hxx;hm;inl - - - {f3018e97-c9a9-4c50-b4a6-3c42a18ffbb0} - - - {5764582d-13ca-4145-9c16-d06a82ca8da2} - - - {7c8bd4f7-7de8-4822-9162-da2dd391702d} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - \ No newline at end of file diff --git a/code/win32/msvc.2013/botlib.vcxproj b/code/win32/msvc.2013/botlib.vcxproj deleted file mode 100644 index e931ac3..0000000 --- a/code/win32/msvc.2013/botlib.vcxproj +++ /dev/null @@ -1,431 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {A410161F-AE9F-485D-A01F-5294891430A6} - botlib - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - true - v120 - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - .\build\botlib_release\ - .\build\botlib_release\ - .\build\botlib_debug\ - .\build\botlib_debug\ - AllRules.ruleset - - - AllRules.ruleset - - - - - - - - - - - - Full - OnlyExplicitInline - true - Speed - true - true - WIN32;NDEBUG;_LIB;BOTLIB;%(PreprocessorDefinitions) - true - Sync - MultiThreaded - StreamingSIMDExtensions - false - - - $(IntDir)botlib.pch - $(IntDir) - $(IntDir) - $(IntDir) - Level4 - true - CompileAsCpp - OldStyle - false - false - false - false - Default - false - false - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)botlib.lib - true - false - NoErrorReport - MachineX86 - Windows - - - - - - - - - - - Disabled - %(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;BOTLIB;DEBUG;_BIND_TO_CURRENT_VCLIBS_VERSION=1;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - - - $(IntDir)botlib.pch - $(IntDir) - $(IntDir) - $(IntDir) - true - Level4 - true - EditAndContinue - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)botlib.lib - true - - - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/code/win32/msvc.2013/botlib.vcxproj.filters b/code/win32/msvc.2013/botlib.vcxproj.filters deleted file mode 100644 index df1ccca..0000000 --- a/code/win32/msvc.2013/botlib.vcxproj.filters +++ /dev/null @@ -1,197 +0,0 @@ - - - - - {760b60b7-de31-4439-8002-5b150e56af71} - cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - - - {80dab3b3-a70f-42f5-8d44-9c04cac72cae} - h;hpp;hxx;hm;inl - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/code/win32/msvc.2013/quake3.sln b/code/win32/msvc.2013/quake3.sln deleted file mode 100644 index f93719e..0000000 --- a/code/win32/msvc.2013/quake3.sln +++ /dev/null @@ -1,42 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "botlib", "botlib.vcxproj", "{A410161F-AE9F-485D-A01F-5294891430A6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "quake3", "quake3.vcxproj", "{81CB51C4-B434-4E12-B69B-BAEE102F2852}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "renderer", "renderer.vcxproj", "{AB424155-FBED-4D8D-B007-5B6CF93EA395}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "..\..\freetype\builds\win32\visualc.2010\freetype.vcxproj", "{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{75ED65B0-1FC4-4283-9962-FC5464F27FAD}" - ProjectSection(SolutionItems) = preProject - Performance2.psess = Performance2.psess - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A410161F-AE9F-485D-A01F-5294891430A6}.Debug|Win32.ActiveCfg = Debug|Win32 - {A410161F-AE9F-485D-A01F-5294891430A6}.Debug|Win32.Build.0 = Debug|Win32 - {A410161F-AE9F-485D-A01F-5294891430A6}.Release|Win32.ActiveCfg = Release|Win32 - {A410161F-AE9F-485D-A01F-5294891430A6}.Release|Win32.Build.0 = Release|Win32 - {81CB51C4-B434-4E12-B69B-BAEE102F2852}.Debug|Win32.ActiveCfg = Debug|Win32 - {81CB51C4-B434-4E12-B69B-BAEE102F2852}.Debug|Win32.Build.0 = Debug|Win32 - {81CB51C4-B434-4E12-B69B-BAEE102F2852}.Release|Win32.ActiveCfg = Release|Win32 - {81CB51C4-B434-4E12-B69B-BAEE102F2852}.Release|Win32.Build.0 = Release|Win32 - {AB424155-FBED-4D8D-B007-5B6CF93EA395}.Debug|Win32.ActiveCfg = Debug|Win32 - {AB424155-FBED-4D8D-B007-5B6CF93EA395}.Debug|Win32.Build.0 = Debug|Win32 - {AB424155-FBED-4D8D-B007-5B6CF93EA395}.Release|Win32.ActiveCfg = Release|Win32 - {AB424155-FBED-4D8D-B007-5B6CF93EA395}.Release|Win32.Build.0 = Release|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.ActiveCfg = Debug|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.Build.0 = Debug|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.ActiveCfg = Release|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/code/win32/msvc.2013/quake3.vcxproj b/code/win32/msvc.2013/quake3.vcxproj deleted file mode 100644 index 82de955..0000000 --- a/code/win32/msvc.2013/quake3.vcxproj +++ /dev/null @@ -1,671 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {81CB51C4-B434-4E12-B69B-BAEE102F2852} - quake3 - - - - Application - false - true - MultiByte - v120 - - - Application - false - false - NotSet - v120 - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(QUAKE3DIR)\ - .\build\quake3_debug\ - true - false - $(QUAKE3DIR)\ - .\build\quake3_release\ - false - false - false - AllRules.ruleset - - - AllRules.ruleset - - - cnq3 - cnq3 - - - - - - - - - - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - $(IntDir)quake3.tlb - - - - - Disabled - WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDebug - - - $(IntDir)quake3.pch - $(IntDir) - $(IntDir) - $(IntDir) - true - $(IntDir) - Level4 - true - EditAndContinue - true - false - true - false - false - true - UninitializedLocalUsageCheck - false - false - false - None - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - ..\winquake.res - false - - - winmm.lib;wsock32.lib;gdi32.lib;opengl32.lib;kernel32.lib;user32.lib;ole32.lib;".\build\botlib_debug\botlib.lib";".\build\renderer_debug\renderer.lib";"..\..\freetype\objs\freetype_d.lib";%(AdditionalDependencies) - $(QUAKE3DIR)\cnq3.exe - true - true - $(IntDir)quake3.pdb - true - $(IntDir)quake3.map - Windows - 8388608 - false - - - MachineX86 - Default - - - - - - - - - - - - - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - $(IntDir)quake3.tlb - - - - - Full - AnySuitable - true - Speed - true - true - WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - Sync - MultiThreaded - false - StreamingSIMDExtensions - false - - - $(IntDir)quake3.pch - $(IntDir) - $(IntDir) - $(IntDir) - Level4 - true - Default - 4702;%(DisableSpecificWarnings) - false - true - false - false - false - false - false - Default - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - false - - - winmm.lib;wsock32.lib;gdi32.lib;opengl32.lib;kernel32.lib;user32.lib;ole32.lib;.\build\renderer_release\renderer.lib;.\build\botlib_release\botlib.lib;"..\..\freetype\objs\freetype.lib";%(AdditionalDependencies) - $(QUAKE3DIR)\cnq3.exe - true - false - $(IntDir)quake3.pdb - false - $(IntDir)quake3.map - Windows - true - true - false - false - MachineX86 - false - 0 - 0 - 8388608 - 0 - false - false - NoErrorReport - - - - - CompileAsCpp - Default - - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - CompileAsCpp - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - - CompileAsCpp - Default - - - CompileAsCpp - Default - - - CompileAsCpp - Default - - - CompileAsCpp - Default - - - CompileAsCpp - Default - - - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - CompileAsCpp - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %(PreprocessorDefinitions) - win32;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - win32;%(AdditionalIncludeDirectories) - - - - - {a410161f-ae9f-485d-a01f-5294891430a6} - false - - - {ab424155-fbed-4d8d-b007-5b6cf93ea395} - false - - - - - - \ No newline at end of file diff --git a/code/win32/msvc.2013/quake3.vcxproj.filters b/code/win32/msvc.2013/quake3.vcxproj.filters deleted file mode 100644 index 6979ac5..0000000 --- a/code/win32/msvc.2013/quake3.vcxproj.filters +++ /dev/null @@ -1,275 +0,0 @@ - - - - - {9a6115a8-1d92-4da7-bfd3-0ec08154e1da} - cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90 - - - {e4ca54c8-e55e-471f-ae10-79841698a78b} - h;hpp;hxx;hm;inl;fi;fd - - - {b9a70540-3bf4-4414-aa60-5b12c7c6e28e} - ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Resource Files - - - \ No newline at end of file diff --git a/code/win32/msvc.2013/renderer.vcxproj b/code/win32/msvc.2013/renderer.vcxproj deleted file mode 100644 index f565f2e..0000000 --- a/code/win32/msvc.2013/renderer.vcxproj +++ /dev/null @@ -1,626 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {AB424155-FBED-4D8D-B007-5B6CF93EA395} - renderer - - - - StaticLibrary - false - MultiByte - v120 - - - StaticLibrary - false - MultiByte - true - v120 - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - .\build\renderer_release\ - .\build\renderer_release\ - .\build\renderer_debug\ - .\build\renderer_debug\ - AllRules.ruleset - - - AllRules.ruleset - - - - - - Full - AnySuitable - true - Speed - true - true - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - Sync - MultiThreaded - StreamingSIMDExtensions - false - - - $(IntDir)renderer.pch - $(IntDir) - $(IntDir) - $(IntDir) - Level4 - true - Default - false - true - false - false - false - false - false - Default - false - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)renderer.lib - true - NoErrorReport - false - MachineX86 - Windows - - - - - Disabled - %(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;_BIND_TO_CURRENT_VCLIBS_VERSION=1;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - - - $(IntDir)renderer.pch - $(IntDir) - $(IntDir) - $(IntDir) - true - Level4 - true - EditAndContinue - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)renderer.lib - true - - - - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - ../../freetype/include;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - ../../freetype/include;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsCpp - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - CompileAsC - %(PreprocessorDefinitions) - Default - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - Disabled - %(PreprocessorDefinitions) - EnableFastChecks - true - %(PreprocessorDefinitions) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {78b079bd-9fc7-4b9e-b4a6-96da0f00248b} - false - - - - - - \ No newline at end of file diff --git a/code/win32/msvc.2013/renderer.vcxproj.filters b/code/win32/msvc.2013/renderer.vcxproj.filters deleted file mode 100644 index 912ae46..0000000 --- a/code/win32/msvc.2013/renderer.vcxproj.filters +++ /dev/null @@ -1,272 +0,0 @@ - - - - - {94bb50c8-177b-479c-ad08-4586b64927e6} - cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - - - {f306030e-d010-494b-b46f-4c87693bb06f} - h;hpp;hxx;hm;inl - - - {f3018e97-c9a9-4c50-b4a6-3c42a18ffbb0} - - - {5764582d-13ca-4145-9c16-d06a82ca8da2} - - - {7c8bd4f7-7de8-4822-9162-da2dd391702d} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - jpeg\Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - jpeg\Header Files - - - \ No newline at end of file diff --git a/code/win32/msvc/botlib.vcproj b/code/win32/msvc/botlib.vcproj deleted file mode 100644 index 4ad1271..0000000 --- a/code/win32/msvc/botlib.vcproj +++ /dev/null @@ -1,1008 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/code/win32/msvc/cgame.def b/code/win32/msvc/cgame.def deleted file mode 100644 index 2ee748e..0000000 --- a/code/win32/msvc/cgame.def +++ /dev/null @@ -1,3 +0,0 @@ -EXPORTS - vmMain - dllEntry diff --git a/code/win32/msvc/cgame.vcproj b/code/win32/msvc/cgame.vcproj deleted file mode 100644 index 031270e..0000000 --- a/code/win32/msvc/cgame.vcproj +++ /dev/null @@ -1,1399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/code/win32/msvc/game.def b/code/win32/msvc/game.def deleted file mode 100644 index 290f891..0000000 --- a/code/win32/msvc/game.def +++ /dev/null @@ -1,3 +0,0 @@ -EXPORTS - dllEntry - vmMain diff --git a/code/win32/msvc/game.vcproj b/code/win32/msvc/game.vcproj deleted file mode 100644 index 6f97830..0000000 --- a/code/win32/msvc/game.vcproj +++ /dev/null @@ -1,2561 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/code/win32/msvc/q3_ui.def b/code/win32/msvc/q3_ui.def deleted file mode 100644 index 2ee748e..0000000 --- a/code/win32/msvc/q3_ui.def +++ /dev/null @@ -1,3 +0,0 @@ -EXPORTS - vmMain - dllEntry diff --git a/code/win32/msvc/q3_ui.vcproj b/code/win32/msvc/q3_ui.vcproj deleted file mode 100644 index 7adbeb2..0000000 --- a/code/win32/msvc/q3_ui.vcproj +++ /dev/null @@ -1,2441 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/code/win32/msvc/quake3.sln b/code/win32/msvc/quake3.sln deleted file mode 100644 index df9edf8..0000000 --- a/code/win32/msvc/quake3.sln +++ /dev/null @@ -1,44 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual C++ Express 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "botlib", "botlib.vcproj", "{A410161F-AE9F-485D-A01F-5294891430A6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "quake3", "quake3.vcproj", "{81CB51C4-B434-4E12-B69B-BAEE102F2852}" - ProjectSection(ProjectDependencies) = postProject - {A410161F-AE9F-485D-A01F-5294891430A6} = {A410161F-AE9F-485D-A01F-5294891430A6} - {AB424155-FBED-4D8D-B007-5B6CF93EA395} = {AB424155-FBED-4D8D-B007-5B6CF93EA395} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "renderer", "renderer.vcproj", "{AB424155-FBED-4D8D-B007-5B6CF93EA395}" - ProjectSection(ProjectDependencies) = postProject - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} = {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "..\..\freetype\builds\win32\visualc\freetype.vcproj", "{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A410161F-AE9F-485D-A01F-5294891430A6}.Debug|Win32.ActiveCfg = Debug|Win32 - {A410161F-AE9F-485D-A01F-5294891430A6}.Debug|Win32.Build.0 = Debug|Win32 - {A410161F-AE9F-485D-A01F-5294891430A6}.Release|Win32.ActiveCfg = Release|Win32 - {A410161F-AE9F-485D-A01F-5294891430A6}.Release|Win32.Build.0 = Release|Win32 - {81CB51C4-B434-4E12-B69B-BAEE102F2852}.Debug|Win32.ActiveCfg = Debug|Win32 - {81CB51C4-B434-4E12-B69B-BAEE102F2852}.Debug|Win32.Build.0 = Debug|Win32 - {81CB51C4-B434-4E12-B69B-BAEE102F2852}.Release|Win32.ActiveCfg = Release|Win32 - {81CB51C4-B434-4E12-B69B-BAEE102F2852}.Release|Win32.Build.0 = Release|Win32 - {AB424155-FBED-4D8D-B007-5B6CF93EA395}.Debug|Win32.ActiveCfg = Debug|Win32 - {AB424155-FBED-4D8D-B007-5B6CF93EA395}.Debug|Win32.Build.0 = Debug|Win32 - {AB424155-FBED-4D8D-B007-5B6CF93EA395}.Release|Win32.ActiveCfg = Release|Win32 - {AB424155-FBED-4D8D-B007-5B6CF93EA395}.Release|Win32.Build.0 = Release|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.ActiveCfg = Debug|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.Build.0 = Debug|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.ActiveCfg = Release|Win32 - {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/code/win32/msvc/quake3.vcproj b/code/win32/msvc/quake3.vcproj deleted file mode 100644 index 0ec210f..0000000 --- a/code/win32/msvc/quake3.vcproj +++ /dev/null @@ -1,1639 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/code/win32/msvc/renderer.vcproj b/code/win32/msvc/renderer.vcproj deleted file mode 100644 index 4cdbd3d..0000000 --- a/code/win32/msvc/renderer.vcproj +++ /dev/null @@ -1,1693 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/code/win32/msvc/ui.def b/code/win32/msvc/ui.def deleted file mode 100644 index 2ee748e..0000000 --- a/code/win32/msvc/ui.def +++ /dev/null @@ -1,3 +0,0 @@ -EXPORTS - vmMain - dllEntry diff --git a/code/win32/msvc/ui.vcproj b/code/win32/msvc/ui.vcproj deleted file mode 100644 index 18fcf7d..0000000 --- a/code/win32/msvc/ui.vcproj +++ /dev/null @@ -1,1171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/code/win32/win_glimp.cpp b/code/win32/win_glimp.cpp index 4f709c0..51298f7 100644 --- a/code/win32/win_glimp.cpp +++ b/code/win32/win_glimp.cpp @@ -50,7 +50,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #define TRY_PFD_FAIL_HARD 2 glwstate_t glw_state; -static qbool windowModeLock = qtrue; + /* ** ChoosePFD @@ -231,8 +231,7 @@ static void GLW_CreatePFD( PIXELFORMATDESCRIPTOR *pPFD, int colorbits, int depth 1, // version number PFD_DRAW_TO_WINDOW | // support window PFD_SUPPORT_OPENGL | // support OpenGL - PFD_DOUBLEBUFFER | // double buffered - PFD_SUPPORT_COMPOSITION, // double buffered + PFD_DOUBLEBUFFER, // double buffered PFD_TYPE_RGBA, // RGBA type 24, // 24-bit color depth 0, 0, 0, 0, 0, 0, // color bits ignored @@ -268,13 +267,14 @@ static void GLW_CreatePFD( PIXELFORMATDESCRIPTOR *pPFD, int colorbits, int depth static int GLW_MakeContext( PIXELFORMATDESCRIPTOR *pPFD ) { + int pixelformat; + // // don't putz around with pixelformat if it's already set (e.g. this is a soft // reset of the graphics system) // if ( !glw_state.pixelFormatSet ) { - int pixelformat; // // choose, set, and describe our desired pixel format. If we're // using a minidriver then we need to bypass the GDI functions, @@ -475,15 +475,15 @@ static qbool GLW_CreateWindow( int width, int height, int colorbits ) ri.Printf( PRINT_DEVELOPER, "...registered window class\n" ); } - g_wv.isMinimized = qfalse; + + RECT r; + int x, y, w, h; // // create the HWND if one does not already exist // if ( !g_wv.hWnd ) { - RECT r; - int x, y, w, h; // // compute width and height // @@ -492,18 +492,18 @@ static qbool GLW_CreateWindow( int width, int height, int colorbits ) r.right = width; r.bottom = height; - int style = WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_SYSMENU; + int style = WS_VISIBLE | WS_SYSMENU; int exstyle; if ( glInfo.isFullscreen ) { - style |= WS_POPUP | WS_MAXIMIZE; - exstyle = WS_EX_APPWINDOW | WS_EX_TOPMOST; + style |= WS_POPUP; + exstyle = WS_EX_TOPMOST; } else { - style |= WS_SYSMENU | WS_OVERLAPPED | WS_BORDER | WS_CAPTION | WS_MINIMIZEBOX | WS_MAXIMIZEBOX; - exstyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE; + style |= WS_OVERLAPPED | WS_BORDER | WS_CAPTION; + exstyle = 0; AdjustWindowRect( &r, style, FALSE ); } @@ -517,8 +517,8 @@ static qbool GLW_CreateWindow( int width, int height, int colorbits ) } else { - const cvar_t* vid_xpos = ri.Cvar_Get( "vid_xpos", "", CVAR_ARCHIVE ); - const cvar_t* vid_ypos = ri.Cvar_Get( "vid_ypos", "", CVAR_ARCHIVE ); + const cvar_t* vid_xpos = ri.Cvar_Get( "vid_xpos", "", 0 ); + const cvar_t* vid_ypos = ri.Cvar_Get( "vid_ypos", "", 0 ); x = vid_xpos->integer; y = vid_ypos->integer; } @@ -529,21 +529,15 @@ static qbool GLW_CreateWindow( int width, int height, int colorbits ) if ( !g_wv.hWnd ) ri.Error( ERR_FATAL, "GLW_CreateWindow() - Couldn't create window" ); - //ShowWindow( g_wv.hWnd, SW_SHOW ); - //UpdateWindow( g_wv.hWnd ); + ShowWindow( g_wv.hWnd, SW_SHOW ); + UpdateWindow( g_wv.hWnd ); ri.Printf( PRINT_DEVELOPER, "...created window@%d,%d (%dx%d)\n", x, y, w, h ); } else { ri.Printf( PRINT_DEVELOPER, "...window already present, CreateWindowEx skipped\n" ); - //SetWindowLong( g_wv.hWnd, GWL_STYLE, style ); - //SetWindowLong( g_wv.hWnd, GWL_EXSTYLE, exstyle ); - //SetWindowPos( g_wv.hWnd, glInfo.isFullscreen ? HWND_TOPMOST:HWND_NOTOPMOST, x,y, w,h, SWP_SHOWWINDOW ); } - ShowWindow( g_wv.hWnd, SW_SHOW ); - UpdateWindow( g_wv.hWnd ); - if ( !GLW_InitDriver( colorbits ) ) { ShowWindow( g_wv.hWnd, SW_HIDE ); @@ -558,6 +552,7 @@ static qbool GLW_CreateWindow( int width, int height, int colorbits ) return qtrue; } + static qbool GLW_Fullscreen( DEVMODE& dm ) { int cds = ChangeDisplaySettings( &dm, CDS_FULLSCREEN ); @@ -617,7 +612,7 @@ static void GLW_AttemptFSAA() if (!qwglChoosePixelFormatARB(glw_state.hDC, anAttributes, ar, 1, &iPFD, &cPFD) || !cPFD) return; - // now bounce the ENTIRE fucking subsystem thanks to WGL stupidity + // now bounce the ENTIRE fucking subsytem thanks to WGL stupidity // we can't use GLimp_Shutdown() for this, because that does CDS poking that we don't want assert( glw_state.hGLRC && glw_state.hDC && g_wv.hWnd ); @@ -649,7 +644,7 @@ static void GLW_AttemptFSAA() } -static qbool GLW_ResetMode( qbool cdsFullscreen ) +static qbool GLW_SetMode( qbool cdsFullscreen ) { HDC hDC = GetDC( GetDesktopWindow() ); glw_state.desktopBPP = GetDeviceCaps( hDC, BITSPIXEL ); @@ -659,11 +654,6 @@ static qbool GLW_ResetMode( qbool cdsFullscreen ) glInfo.isFullscreen = cdsFullscreen; if ( !R_GetModeInfo( &glConfig.vidWidth, &glConfig.vidHeight, &glConfig.windowAspect ) ) { - if (!glInfo.isFullscreen) - { - Cvar_SetValue( "vid_xpos", 0 ); - Cvar_SetValue( "vid_ypos", 0 ); - } glConfig.vidWidth = glw_state.desktopWidth; glConfig.vidHeight = glw_state.desktopHeight; glConfig.windowAspect = (float)glConfig.vidWidth / glConfig.vidHeight; @@ -712,22 +702,12 @@ static qbool GLW_ResetMode( qbool cdsFullscreen ) if (EnumDisplaySettings( NULL, ENUM_CURRENT_SETTINGS, &dm )) glInfo.displayFrequency = dm.dmDisplayFrequency; + GLW_AttemptFSAA(); + return qtrue; } -static qbool GLW_SetMode( qbool cdsFullscreen ) -{ - if (GLW_ResetMode(cdsFullscreen)) - { - GLW_AttemptFSAA(); - return qtrue; - } - - return qfalse; -} - - static void GLW_InitExtensions() { ri.Printf( PRINT_DEVELOPER, "Initializing OpenGL extensions\n" ); @@ -797,10 +777,8 @@ static qbool GLW_LoadOpenGL() // load the driver and bind our function pointers to it if ( QGL_Init( OPENGL_DRIVER_NAME ) ) { - windowModeLock = qfalse; // create the window and set up the context if ( GLW_SetMode( (qbool)r_fullscreen->integer ) ) { - windowModeLock = qtrue; return qtrue; } } @@ -885,15 +863,12 @@ static void GLW_RestoreGamma() void GLimp_SetGamma( unsigned char red[256], unsigned char green[256], unsigned char blue[256] ) { - if ( !glConfig.deviceSupportsGamma || r_ignorehwgamma->integer || !glw_state.hDC ) - return; - - if( g_wv.hWnd != GetFocus() ) - return; - unsigned short table[3][256]; int i, j; + if ( !glConfig.deviceSupportsGamma || r_ignorehwgamma->integer || !glw_state.hDC ) + return; + for ( i = 0; i < 256; i++ ) { table[0][i] = ( ( ( unsigned short ) red[i] ) << 8 ) | red[i]; table[1][i] = ( ( ( unsigned short ) green[i] ) << 8 ) | green[i]; @@ -920,121 +895,12 @@ void GLimp_SetGamma( unsigned char red[256], unsigned char green[256], unsigned Com_DPrintf( "skipping W2K gamma clamp.\n" ); } - // enforce constantly increasing - for (int j = 0 ; j < 3 ; j++ ) { - for (int i = 1 ; i < 256 ; i++ ) { - if ( table[j][i] < table[j][i-1] ) { - table[j][i] = table[j][i-1]; - } - } - } - if ( !SetDeviceGammaRamp( glw_state.hDC, table ) ) { Com_Printf( "SetDeviceGammaRamp failed.\n" ); } } -// drakkar -/* -** GLimp_WindowMode -** -** Changes window mode ( minimized, windowed, fullscreen ) without vid_restart. -*/ -void GLimp_WindowMode( windowMode_t wmode ) -{ - if( !windowModeLock ) - return; - - Cvar_Get( "in_keyboardShortcuts", "", 0 )->modified = qtrue; - - switch( wmode ) - { - case WMODE_SET_MINIMIZED: - windowModeLock = qfalse; - glw_state.cdsFullscreen = qfalse; - ChangeDisplaySettings( 0, 0 ); - ShowWindow( g_wv.hWnd, SW_SHOWMINIMIZED ); - g_wv.isMinimized = qtrue; - GLimp_WindowFocus( qfalse ); - windowModeLock = qtrue; - break; - - case WMODE_SET_WINDOWED: - windowModeLock = qfalse; - GLW_ResetMode( qfalse ); - ShowWindow( g_wv.hWnd, SW_SHOWNORMAL ); - g_wv.isMinimized = qfalse; - GLimp_WindowFocus( qtrue ); - windowModeLock = qtrue; - ri.Cvar_Set( "r_fullscreen", "0" ); - if( glInfo.isFullscreen ) - Cbuf_AddText( "vid_restart\n" ); - break; - - case WMODE_SET_FULLSCREEN: - windowModeLock = qfalse; - GLW_SetMode( qtrue ); - ShowWindow( g_wv.hWnd, SW_SHOWMAXIMIZED ); - g_wv.isMinimized = qfalse; - GLimp_WindowFocus( qtrue ); - windowModeLock = qtrue; - ri.Cvar_Set( "r_fullscreen", "1" ); - Cbuf_AddText( "vid_restart\n" ); - break; - - case WMODE_RESTART: - if( r_fullscreen->modified && r_fullscreen->latchedString ) - { - if( !Q_strncmp( r_fullscreen->latchedString, "0", 1 ) ) - GLimp_WindowMode( WMODE_SET_WINDOWED ); - else - GLimp_WindowMode( WMODE_SET_FULLSCREEN ); - } - else - { - GLimp_WindowMode( r_fullscreen->integer ? WMODE_SET_FULLSCREEN : WMODE_SET_WINDOWED ); - } - break; - - case WMODE_SWAP_FULLSCREEN: - GLimp_WindowMode( glInfo.isFullscreen ? WMODE_SET_WINDOWED : WMODE_SET_FULLSCREEN ); - break; - - case WMODE_SWAP_MINIMIZED: - GLimp_WindowMode( g_wv.isMinimized ? WMODE_RESTART : WMODE_SET_MINIMIZED ); - break; - - default: - Com_Printf( "Invalid Window Mode\n" ); - } -} - -void GLimp_WindowFocus(qbool focus) -{ - if( !g_wv.hWnd ) return; - - if( focus ) - { - // Cgg - sets gamma correction, I believe this is not needed when quake hasn't got focus - R_SetColorMappings(); - if( g_wv.isMinimized ) - GLimp_WindowMode( WMODE_SWAP_MINIMIZED ); - } - else - { - GLW_RestoreGamma(); - if( glInfo.isFullscreen ) - GLimp_WindowMode( WMODE_SWAP_MINIMIZED ); - } - - g_wv.activeApp = ( focus && !g_wv.isMinimized ); - - Cvar_Get( "in_keyboardShortcuts", "", 0 )->modified = qtrue; -} -// !drakkar - - /////////////////////////////////////////////////////////////// @@ -1082,6 +948,9 @@ void GLimp_Init() void GLimp_Shutdown() { + const char* success[] = { "failed", "success" }; + int retVal; + // FIXME: Brian, we need better fallbacks from partially initialized failures if ( !qwglMakeCurrent ) { return; @@ -1091,9 +960,6 @@ void GLimp_Shutdown() GLW_RestoreGamma(); - const char* success[] = { "failed", "success" }; - int retVal; - // set current context to NULL if ( qwglMakeCurrent ) { @@ -1188,8 +1054,9 @@ qbool GLimp_SpawnRenderThread( void (*function)( void ) ) static void *smpData; static int wglErrors; -void *GLimp_RendererSleep( void ) -{ +void *GLimp_RendererSleep( void ) { + void *data; + if ( !qwglMakeCurrent( glw_state.hDC, NULL ) ) { wglErrors++; } @@ -1208,7 +1075,7 @@ void *GLimp_RendererSleep( void ) ResetEvent( renderCompletedEvent ); ResetEvent( renderCommandsEvent ); - void *data = smpData; + data = smpData; // after this, the main thread can exit GLimp_WakeRenderer SetEvent( renderActiveEvent ); @@ -1218,8 +1085,8 @@ void *GLimp_RendererSleep( void ) void GLimp_FrontEndSleep( void ) { - WaitForSingleObject( renderCompletedEvent, INFINITE ); + if ( !qwglMakeCurrent( glw_state.hDC, glw_state.hGLRC ) ) { wglErrors++; } @@ -1235,7 +1102,7 @@ void GLimp_WakeRenderer( void *data ) { // after this, the renderer can continue through GLimp_RendererSleep SetEvent( renderCommandsEvent ); - + WaitForSingleObject( renderActiveEvent, INFINITE ); } diff --git a/code/win32/win_input.cpp b/code/win32/win_input.cpp index b309440..74a9de8 100644 --- a/code/win32/win_input.cpp +++ b/code/win32/win_input.cpp @@ -23,24 +23,13 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include "../client/client.h" #include "win_local.h" -#define DIRECTINPUT_VERSION 0x0800 - -#include -#pragma comment( lib, "dinput8" ) -#pragma comment( lib, "dxguid" ) - -cvar_t *in_keyboardShortcuts; // 0: always off, 1: always on, 2: on/off if console is down/up, 3: on/off if windowed/fullscreen - -#define DX_MOUSE_BUFFER_SIZE 64 -#define MAX_MOUSE_BUTTONS 8 struct Mouse { virtual qbool Init() { return qtrue; } virtual qbool Activate( qbool active ); - virtual void Move() {} virtual void Shutdown() {} virtual void Read( int* mx, int* my ) = 0; - virtual qbool ProcessMessage( UINT msg, WPARAM wParam, LPARAM lParam ) { return qfalse; } + virtual qbool ProcessMessage( UINT msg, WPARAM wParam, LPARAM lParam ) { return qfalse; } // returns true if the event was handled Mouse() : active(qfalse), wheel(0) {} void UpdateWheel( int delta ); @@ -84,219 +73,6 @@ void Mouse::UpdateWheel( int delta ) /////////////////////////////////////////////////////////////// -struct dimouse_t :public Mouse { - virtual qbool Init(); - virtual qbool Activate( qbool active ); - virtual void Read( int* mx, int* my ); - virtual void Shutdown(); - -private: - HRESULT (WINAPI *pDirectInputCreate)(HINSTANCE hinst, DWORD dwVersion, LPDIRECTINPUT* lplpDirectInput, LPUNKNOWN punkOuter); - HINSTANCE hInstDI; - LPDIRECTINPUT m_pdi; - LPDIRECTINPUTDEVICE m_pMouse; -}; - -static dimouse_t dimouse; - -qbool dimouse_t::Init() -{ - HRESULT hr; - DIPROPDWORD dipdw = { - { - sizeof(DIPROPDWORD), // diph.dwSize - sizeof(DIPROPHEADER), // diph.dwHeaderSize - 0, // diph.dwObj - DIPH_DEVICE, // diph.dwHow - }, - DX_MOUSE_BUFFER_SIZE, // dwData - }; - - Com_Printf( "Initializing DirectInput...\n" ); - - if (!hInstDI) { - hInstDI = LoadLibrary("dinput.dll"); - if (hInstDI == NULL) { - Com_Printf( "Couldn't load dinput.dll\n" ); - return qfalse; - } - } - - if (!pDirectInputCreate) { - pDirectInputCreate = (HRESULT (WINAPI *)(HINSTANCE, DWORD, LPDIRECTINPUT *, LPUNKNOWN)) - GetProcAddress(hInstDI, "DirectInputCreateA"); - - if (!pDirectInputCreate) { - Com_Printf( "Couldn't get DI proc addr\n" ); - return qfalse; - } - } - - // register with DirectInput and get an IDirectInput to play with. - hr = DirectInput8Create( g_wv.hInstance, DIRECTINPUT_VERSION, IID_IDirectInput8, (LPVOID*)&m_pdi, NULL ); - - if (FAILED(hr)) { - Com_Printf( "DI8Create failed\n" ); - return qfalse; - } - - // obtain an interface to the system mouse device. - hr = IDirectInput_CreateDevice( m_pdi, GUID_SysMouse, &m_pMouse, NULL ); - - if (FAILED(hr)) { - Com_Printf( "Couldn't open DI mouse device\n" ); - return qfalse; - } - - // set the data format to DIv8 mice (8 buttons) - hr = IDirectInputDevice_SetDataFormat( m_pMouse, &c_dfDIMouse2 ); - - if (FAILED(hr)) { - Com_Printf( "Couldn't set DI mouse format\n" ); - return qfalse; - } - - // set the cooperatively level. - hr = IDirectInputDevice_SetCooperativeLevel( m_pMouse, g_wv.hWnd, DISCL_EXCLUSIVE | DISCL_FOREGROUND ); - - // https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=50 - if (FAILED(hr)) { - Com_Printf( "Couldn't set DI coop level\n" ); - return qfalse; - } - - // set the buffer size to DINPUT_BUFFERSIZE elements. - // the buffer size is a DWORD property associated with the device - hr = IDirectInputDevice_SetProperty( m_pMouse, DIPROP_BUFFERSIZE, &dipdw.diph ); - - if (FAILED(hr)) { - Com_Printf( "Couldn't set DI buffer size\n" ); - return qfalse; - } - - // clear any pending samples - int x, y; - Read( &x, &y ); - Read( &x, &y ); - - Com_Printf( "DirectInput initialized.\n" ); - return qtrue; -} - -void dimouse_t::Shutdown() -{ - if (m_pMouse) { - IDirectInputDevice_Release(m_pMouse); - m_pMouse = NULL; - } - - if (m_pdi) { - IDirectInput_Release(m_pdi); - m_pdi = NULL; - } -} - -qbool dimouse_t::Activate( qbool active ) -{ - if (!m_pMouse) { - return qfalse; - } - - if (active) { - - // we may fail to reacquire if the window has been recreated - HRESULT hr = IDirectInputDevice_Acquire( m_pMouse ); - if (FAILED(hr)) { - if ( !Init() ) { - Com_Printf( "Falling back to Win32 mouse support...\n" ); - Cvar_Set( "in_mouse", "-1" ); - return qfalse; - } - } - } else { - IDirectInputDevice_Unacquire( m_pMouse ); - } - - return qtrue; -} - -void dimouse_t::Read( int* mx, int* my ) -{ - DIDEVICEOBJECTDATA od[ DX_MOUSE_BUFFER_SIZE ]; // receives buffered data - HRESULT hr; - int value; - - if ( !m_pMouse ) { - return; - } - - // fetch new events - for (;;) - { - DWORD dwElements = DX_MOUSE_BUFFER_SIZE; - - hr = IDirectInputDevice_GetDeviceData(m_pMouse, sizeof(DIDEVICEOBJECTDATA), od, &dwElements, 0); - if ((hr == DIERR_INPUTLOST) || (hr == DIERR_NOTACQUIRED)) { - // drakkar - vid_restart creates a new window, so we have a new window handle ( hWnd ) - IDirectInputDevice_SetCooperativeLevel( m_pMouse, g_wv.hWnd, DISCL_EXCLUSIVE | DISCL_FOREGROUND ); - // !drakkar - IDirectInputDevice_Acquire(m_pMouse); - return; - } - - // unable to read data or no data available - if ( FAILED(hr) || !dwElements ) { - break; - } - - for (DWORD i = 0; i < dwElements; ++i) - { - switch (od[i].dwOfs) { - case DIMOFS_BUTTON0: - case DIMOFS_BUTTON1: - case DIMOFS_BUTTON2: - case DIMOFS_BUTTON3: - case DIMOFS_BUTTON4: - Sys_QueEvent( od[i].dwTimeStamp, SE_KEY, K_MOUSE1 + od[i].dwOfs - DIMOFS_BUTTON0, (od[i].dwData & 0x80), 0, NULL ); - break; - // the keycodes generated by these DI8 buttons are NOT contiguous with the original ones - case DIMOFS_BUTTON5: - Sys_QueEvent( od[i].dwTimeStamp, SE_KEY, K_MOUSE6, (od[i].dwData & 0x80), 0, NULL ); - break; - case DIMOFS_BUTTON6: - Sys_QueEvent( od[i].dwTimeStamp, SE_KEY, K_MOUSE7, (od[i].dwData & 0x80), 0, NULL ); - break; - case DIMOFS_BUTTON7: - Sys_QueEvent( od[i].dwTimeStamp, SE_KEY, K_MOUSE8, (od[i].dwData & 0x80), 0, NULL ); - break; - - case DIMOFS_Z: - value = (int)od[i].dwData; - if (value < 0) { - Sys_QueEvent( od[i].dwTimeStamp, SE_KEY, K_MWHEELDOWN, qtrue, 0, NULL ); - Sys_QueEvent( od[i].dwTimeStamp, SE_KEY, K_MWHEELDOWN, qfalse, 0, NULL ); - } else if (value > 0) { - Sys_QueEvent( od[i].dwTimeStamp, SE_KEY, K_MWHEELUP, qtrue, 0, NULL ); - Sys_QueEvent( od[i].dwTimeStamp, SE_KEY, K_MWHEELUP, qfalse, 0, NULL ); - } - break; - } - } - } - - // read the raw delta counter and ignore the individual sample time / values - DIMOUSESTATE2 state; - hr = IDirectInputDevice_GetDeviceState( m_pMouse, sizeof(state), &state ); - if ( FAILED(hr) ) { - *mx = *my = 0; - return; - } - - *mx = state.lX; - *my = state.lY; -} - -/////////////////////////////////////////////////////////////// struct rawmouse_t : public Mouse { virtual qbool Init(); @@ -395,7 +171,6 @@ qbool rawmouse_t::ProcessMessage( UINT msg, WPARAM wParam, LPARAM lParam ) struct winmouse_t : public Mouse { virtual qbool Activate( qbool active ); - virtual void Move(); virtual void Read( int* mx, int* my ); virtual qbool ProcessMessage( UINT msg, WPARAM wParam, LPARAM lParam ); @@ -410,33 +185,20 @@ qbool winmouse_t::Activate( qbool active ) if (!active) return qtrue; - Move(); + int sw = GetSystemMetrics(SM_CXSCREEN); + int sh = GetSystemMetrics(SM_CYSCREEN); + + RECT rc; + GetWindowRect( g_wv.hWnd, &rc ); + + window_center_x = ( max(rc.left, 0) + min(rc.right, sw) ) / 2; + window_center_y = ( max(rc.top, 0) + min(rc.bottom, sh) ) / 2; + SetCursorPos( window_center_x, window_center_y ); return qtrue; } -void winmouse_t::Move() -{ - HMONITOR monitor = MonitorFromWindow( g_wv.hWnd, MONITOR_DEFAULTTOPRIMARY ); - MONITORINFO minfo = { sizeof(MONITORINFO) }; - - int sw = GetSystemMetrics(SM_CXSCREEN); - int sh = GetSystemMetrics(SM_CYSCREEN); - - if (GetMonitorInfo(monitor, &minfo)) - { - sw = minfo.rcMonitor.right; - sh = minfo.rcMonitor.bottom; - } - - RECT rc; - GetWindowRect( g_wv.hWnd, &rc ); - - window_center_x = ( max(rc.left, 0) + min(rc.right, sw) ) / 2; - window_center_y = ( max(rc.top, 0) + min(rc.bottom, sh) ) / 2; -} - void winmouse_t::Read( int* mx, int* my ) { @@ -447,6 +209,7 @@ void winmouse_t::Read( int* mx, int* my ) SetCursorPos( window_center_x, window_center_y ); } + qbool winmouse_t::ProcessMessage( UINT msg, WPARAM wParam, LPARAM lParam ) { #define QUEUE_WM_BUTTON( qbutton, mask ) \ @@ -455,7 +218,7 @@ qbool winmouse_t::ProcessMessage( UINT msg, WPARAM wParam, LPARAM lParam ) switch (msg) { case WM_LBUTTONDOWN: case WM_LBUTTONUP: - QUEUE_WM_BUTTON( K_MOUSE1, MK_LBUTTON ); + QUEUE_WM_BUTTON( K_MOUSE1, MK_LBUTTON ); break; case WM_RBUTTONDOWN: case WM_RBUTTONUP: @@ -509,16 +272,7 @@ static void IN_StartupMouse() return; } Com_Printf( "Raw mouse initialization failed\n" ); - } - - if (in_mouse->integer == 2) { - if (dimouse.Init()) { - mouse = &dimouse; - Com_Printf( "Using directInput mouse input\n" ); - return; - } - Com_Printf( "DirectInput mouse initialization failed\n" ); - } + } mouse = &winmouse; mouse->Init(); @@ -530,35 +284,10 @@ qbool IN_ProcessMessage( UINT msg, WPARAM wParam, LPARAM lParam ) { if (!mouse) return qfalse; - + return mouse->ProcessMessage( msg, wParam, lParam ); } -void IN_Move() -{ - if (mouse) - mouse->Move(); -} - -void IN_UpdateKeyboardShortcuts() -{ - int mode, enable = 1; - - mode = in_keyboardShortcuts->integer; - - if ( mode == 0 ) enable = 0; - else if ( mode == 1 ) enable = 1; - else if ( mode == 2 ) enable = ( cls.keyCatchers & KEYCATCH_CONSOLE ? 1 : 0 ); - else if ( mode == 3 ) enable = !Cvar_VariableIntegerValue( "r_fullscreen" ); - else - { - Com_Printf( "Invalid in_keyboardShortcuts value\n" ); - Cvar_Reset( "in_keyboardShortcuts" ); - return; - } - - EnableKeyboardShortcuts( enable ); -} /////////////////////////////////////////////////////////////// @@ -577,11 +306,9 @@ cvar_t* in_midi; static void IN_Startup() { QSUBSYSTEM_INIT_START( "Input" ); - IN_StartupMouse(); IN_StartupJoystick(); IN_StartupMIDI(); - QSUBSYSTEM_INIT_DONE( "Input" ); in_joystick->modified = qfalse; @@ -590,9 +317,8 @@ static void IN_Startup() void IN_Init() { - in_midi = Cvar_Get( "in_midi", "0", CVAR_ARCHIVE ); - in_joystick = Cvar_Get( "in_joystick", "0", CVAR_ARCHIVE|CVAR_LATCH ); - in_keyboardShortcuts = Cvar_Get ("in_keyboardShortcuts", "2", CVAR_ARCHIVE); + in_midi = Cvar_Get( "in_midi", "0", CVAR_ARCHIVE ); + in_joystick = Cvar_Get( "in_joystick", "0", CVAR_ARCHIVE|CVAR_LATCH ); IN_Startup(); } @@ -645,13 +371,6 @@ void IN_Frame() if (!mouse) return; - - // drakkar - if( in_keyboardShortcuts->modified ) { - in_keyboardShortcuts->modified = qfalse; - IN_UpdateKeyboardShortcuts(); - } - // !drakkar if (cls.keyCatchers & KEYCATCH_CONSOLE) { // temporarily deactivate if not in the game and running on the desktop @@ -661,15 +380,11 @@ void IN_Frame() } } - if (!g_wv.activeApp){ - IN_Activate( qfalse ); - return; - } - - // this should really only happen on actual focus changes - // but is needed to compensate for the console+windowed hack - IN_Activate( qtrue ); - + // this should really only happen on actual focus changes + // but is needed to compensate for the console+windowed hack + if (g_wv.activeApp) + IN_Activate( qtrue ); + int mx, my; mouse->Read( &mx, &my ); @@ -782,11 +497,13 @@ static void IN_StartupJoystick() static float JoyToF( int value ) { + float fValue; + // move centerpoint to zero value -= 32768; // convert range from -32768..32767 to -1..1 - float fValue = (float)value / 32768.0; + fValue = (float)value / 32768.0; return Com_Clamp( -1, 1, fValue ); } @@ -813,6 +530,11 @@ static const int joyDirectionKeys[16] = { static void IN_JoyMove() { + float fAxisValue; + UINT i; + DWORD buttonstate, povstate; + int x, y; + // verify joystick is available and that the user wants to use it if ( !joy.avail ) { return; @@ -843,8 +565,8 @@ static void IN_JoyMove() // loop through the joystick buttons // key a joystick event or auxillary event for higher number buttons for each state change - DWORD buttonstate = joy.ji.dwButtons; - for (UINT i=0 ; i < joy.jc.wNumButtons ; i++ ) { + buttonstate = joy.ji.dwButtons; + for ( i=0 ; i < joy.jc.wNumButtons ; i++ ) { if ( (buttonstate & (1<value ) { povstate |= (1<<(i*2)); @@ -883,7 +605,7 @@ static void IN_JoyMove() } // determine which bits have changed and key an auxillary event for each change - for (UINT i=0 ; i < 16 ; i++) { + for (i=0 ; i < 16 ; i++) { if ( (povstate & (1<= 6 ) { - int x = JoyToI( joy.ji.dwUpos ) * in_joyBallScale->value; - int y = JoyToI( joy.ji.dwVpos ) * in_joyBallScale->value; + x = JoyToI( joy.ji.dwUpos ) * in_joyBallScale->value; + y = JoyToI( joy.ji.dwVpos ) * in_joyBallScale->value; if ( x || y ) { Sys_QueEvent( g_wv.sysMsgTime, SE_MOUSE, x, y, 0, NULL ); } @@ -932,7 +654,9 @@ static const cvar_t* in_mididevice; static void MIDI_NoteOff( int note ) { - int qkey = note - 60 + K_AUX1; + int qkey; + + qkey = note - 60 + K_AUX1; if ( qkey > 255 || qkey < K_AUX1 ) return; @@ -942,10 +666,12 @@ static void MIDI_NoteOff( int note ) static void MIDI_NoteOn( int note, int velocity ) { + int qkey; + if ( velocity == 0 ) MIDI_NoteOff( note ); - int qkey = note - 60 + K_AUX1; + qkey = note - 60 + K_AUX1; if ( qkey > 255 || qkey < K_AUX1 ) return; @@ -955,6 +681,8 @@ static void MIDI_NoteOn( int note, int velocity ) static void CALLBACK MidiInProc( HMIDIIN hMidiIn, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2 ) { + int message; + switch ( uMsg ) { case MIM_OPEN: @@ -962,18 +690,16 @@ static void CALLBACK MidiInProc( HMIDIIN hMidiIn, UINT uMsg, DWORD dwInstance, D case MIM_CLOSE: break; case MIM_DATA: - { - int message = dwParam1 & 0xff; - if ( ( message & 0xf0 ) == 0x90 ) - { - if ( ( ( message & 0x0f ) + 1 ) == in_midichannel->integer ) - MIDI_NoteOn( ( dwParam1 & 0xff00 ) >> 8, ( dwParam1 & 0xff0000 ) >> 16 ); - } - else if ( ( message & 0xf0 ) == 0x80 ) - { - if ( ( ( message & 0x0f ) + 1 ) == in_midichannel->integer ) - MIDI_NoteOff( ( dwParam1 & 0xff00 ) >> 8 ); - } + message = dwParam1 & 0xff; + if ( ( message & 0xf0 ) == 0x90 ) + { + if ( ( ( message & 0x0f ) + 1 ) == in_midichannel->integer ) + MIDI_NoteOn( ( dwParam1 & 0xff00 ) >> 8, ( dwParam1 & 0xff0000 ) >> 16 ); + } + else if ( ( message & 0xf0 ) == 0x80 ) + { + if ( ( ( message & 0x0f ) + 1 ) == in_midichannel->integer ) + MIDI_NoteOff( ( dwParam1 & 0xff00 ) >> 8 ); } break; case MIM_LONGDATA: @@ -989,6 +715,8 @@ static void CALLBACK MidiInProc( HMIDIIN hMidiIn, UINT uMsg, DWORD dwInstance, D static void MidiInfo_f( void ) { + int i; + const char *enableStrings[] = { "disabled", "enabled" }; Com_Printf( "\nMIDI control: %s\n", enableStrings[in_midi->integer != 0] ); @@ -997,7 +725,7 @@ static void MidiInfo_f( void ) Com_Printf( "current device: %d\n", in_mididevice->integer ); Com_Printf( "number of devices: %d\n", s_midiInfo.numDevices ); - for (int i = 0; i < s_midiInfo.numDevices; i++ ) + for ( i = 0; i < s_midiInfo.numDevices; i++ ) { if ( i == Cvar_VariableValue( "in_mididevice" ) ) Com_Printf( "***" ); @@ -1012,6 +740,8 @@ static void MidiInfo_f( void ) static void IN_StartupMIDI() { + int i; + if ( !Cvar_VariableValue( "in_midi" ) ) return; @@ -1020,7 +750,7 @@ static void IN_StartupMIDI() // s_midiInfo.numDevices = midiInGetNumDevs(); - for (int i = 0; i < s_midiInfo.numDevices; i++ ) + for ( i = 0; i < s_midiInfo.numDevices; i++ ) { midiInGetDevCaps( i, &s_midiInfo.caps[i], sizeof( s_midiInfo.caps[i] ) ); } diff --git a/code/win32/win_local.h b/code/win32/win_local.h index 07f91d1..212741a 100644 --- a/code/win32/win_local.h +++ b/code/win32/win_local.h @@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ // win_local.h: Win32-specific Quake3 header file -#include +#include "windows.h" void Sys_QueEvent( int time, sysEventType_t type, int value, int value2, int ptrLength, void *ptr ); @@ -34,29 +34,26 @@ void Conbuf_AppendText( const char *msg ); void IN_Init(); void IN_Activate( qbool active ); +qbool IN_ProcessMessage( UINT msg, WPARAM wParam, LPARAM lParam ); // returns true if the event was handled void IN_Frame(); void IN_Shutdown(); -void IN_Move(); -qbool IN_ProcessMessage( UINT msg, WPARAM wParam, LPARAM lParam ); void SNDDMA_Activate(); -void EnableKeyboardShortcuts(qbool enable); LONG WINAPI MainWndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ); typedef struct -{ - OSVERSIONINFO osversion; - +{ HWND hWnd; - HINSTANCE hInstance; + HINSTANCE hInstance; qbool activeApp; qbool isMinimized; + OSVERSIONINFO osversion; - // when we get a windows message, we store off the time + // when we get a windows message, we store the time off // so keyboard processing can know the exact time of an event - unsigned sysMsgTime; + unsigned sysMsgTime; } WinVars_t; extern WinVars_t g_wv; diff --git a/code/win32/win_main.cpp b/code/win32/win_main.cpp index d4775ca..a6f1a8b 100644 --- a/code/win32/win_main.cpp +++ b/code/win32/win_main.cpp @@ -30,8 +30,12 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include #include #include -#include +#include #include +#include + + +WinVars_t g_wv; #define MEM_THRESHOLD 96*1024*1024 @@ -68,7 +72,9 @@ void QDECL Sys_Error( const char *error, ... ) timeEndPeriod( 1 ); +#ifndef DEDICATED IN_Shutdown(); +#endif // wait for the user to quit while (1) { @@ -88,7 +94,9 @@ void QDECL Sys_Error( const char *error, ... ) void Sys_Quit() { timeEndPeriod( 1 ); +#ifndef DEDICATED IN_Shutdown(); +#endif Sys_DestroyConsole(); exit(0); } @@ -275,11 +283,13 @@ char **Sys_ListFiles( const char *directory, const char *extension, const char * void Sys_FreeFileList( char **list ) { + int i; + if ( !list ) { return; } - for (int i = 0 ; list[i] ; i++ ) { + for ( i = 0 ; list[i] ; i++ ) { Z_Free( list[i] ); } @@ -290,13 +300,13 @@ void Sys_FreeFileList( char **list ) char *Sys_GetClipboardData( void ) { char *data = NULL; + char *cliptext; if ( OpenClipboard( NULL ) ) { HANDLE hClipboardData; if ( ( hClipboardData = GetClipboardData( CF_TEXT ) ) != 0 ) { - char *cliptext; - if ( (cliptext = (char*)GlobalLock( hClipboardData ) ) != 0 ) { + if ( ( cliptext = (char*)GlobalLock( hClipboardData ) ) != 0 ) { data = (char*)Z_Malloc( GlobalSize( hClipboardData ) + 1 ); Q_strncpyz( data, cliptext, GlobalSize( hClipboardData ) ); GlobalUnlock( hClipboardData ); @@ -320,13 +330,13 @@ LOAD/UNLOAD DLL */ -void Sys_UnloadDll( void* dllHandle ) +void Sys_UnloadDll( void *dllHandle ) { if ( !dllHandle ) { return; } if ( !FreeLibrary( (HMODULE)dllHandle ) ) { - Com_Error( ERR_FATAL, "Sys_UnloadDll FreeLibrary failed" ); + Com_Error (ERR_FATAL, "Sys_UnloadDll FreeLibrary failed"); } } @@ -372,14 +382,14 @@ void* QDECL Sys_LoadDll( const char* name, return NULL; void (QDECL *dllEntry)( intptr_t (QDECL *syscallptr)(intptr_t, ...) ); - dllEntry = (void (QDECL *)(intptr_t (QDECL *)( intptr_t, ... ) ) )GetProcAddress( libHandle, "dllEntry" ); + dllEntry = ( void (QDECL *)(intptr_t (QDECL *)( intptr_t, ... ) ) )GetProcAddress( libHandle, "dllEntry" ); *entryPoint = (intptr_t (QDECL *)(intptr_t,...))GetProcAddress( libHandle, "vmMain" ); if ( !*entryPoint || !dllEntry ) { FreeLibrary( libHandle ); return NULL; } - dllEntry( systemcalls ); + return libHandle; } @@ -392,7 +402,7 @@ EVENT LOOP ======================================================================== */ -#define MAX_QUED_EVENTS 1024 +#define MAX_QUED_EVENTS 512 #define MASK_QUED_EVENTS ( MAX_QUED_EVENTS - 1 ) static sysEvent_t eventQue[MAX_QUED_EVENTS]; @@ -404,45 +414,22 @@ static int eventHead, eventTail; void Sys_QueEvent( int time, sysEventType_t type, int value, int value2, int ptrLength, void *ptr ) { - sysEvent_t* ev; - - // try to combine all sequential mouse moves in one event - if ( type == SE_MOUSE ) { - // get previous event from queue - ev = &eventQue[ ( eventHead + MAX_QUED_EVENTS - 1 ) & MASK_QUED_EVENTS ]; - if ( ev->evType == SE_MOUSE ) { + sysEvent_t* ev = &eventQue[ eventHead & MASK_QUED_EVENTS ]; - if ( eventTail == eventHead && eventTail ) - { - ev->evValue = 0; - ev->evValue2 = 0; - eventTail--; - } - if ( time == 0 ) { - time = Sys_Milliseconds(); - } - ev->evValue += value; - ev->evValue2 += value2; - ev->evTime = time; - - return; - } - } - - ev = &eventQue[ eventHead & MASK_QUED_EVENTS ]; - if ( eventHead - eventTail >= MAX_QUED_EVENTS ) { Com_Printf("Sys_QueEvent: overflow\n"); // we are discarding an event, but don't leak memory - if ( ev->evPtr ) + if ( ev->evPtr ) { Z_Free( ev->evPtr ); - ++eventTail; + } + eventTail++; } - ++eventHead; + eventHead++; - if ( time == 0 ) + if ( time == 0 ) { time = Sys_Milliseconds(); + } ev->evTime = time; ev->evType = type; @@ -457,7 +444,7 @@ sysEvent_t Sys_GetEvent() { // return if we have data if ( eventHead > eventTail ) { - ++eventTail; + eventTail++; return eventQue[ ( eventTail - 1 ) & MASK_QUED_EVENTS ]; } @@ -490,7 +477,7 @@ sysEvent_t Sys_GetEvent() static byte sys_packetReceived[MAX_MSGLEN]; // static or it'll blow half the stack MSG_Init( &netmsg, sys_packetReceived, sizeof( sys_packetReceived ) ); if ( Sys_GetPacket( &adr, &netmsg ) ) { - // copy out to a separate buffer for queuing + // copy out to a seperate buffer for qeueing // the readcount stepahead is for SOCKS support int len = sizeof( netadr_t ) + netmsg.cursize - netmsg.readcount; netadr_t* buf = (netadr_t*)Z_Malloc( len ); @@ -501,7 +488,7 @@ sysEvent_t Sys_GetEvent() // return if we have data if ( eventHead > eventTail ) { - ++eventTail; + eventTail++; return eventQue[ ( eventTail - 1 ) & MASK_QUED_EVENTS ]; } @@ -516,11 +503,13 @@ sysEvent_t Sys_GetEvent() /////////////////////////////////////////////////////////////// +#ifndef DEDICATED static void Sys_In_Restart_f( void ) { IN_Shutdown(); IN_Init(); } +#endif static void Sys_Net_Restart_f( void ) @@ -530,51 +519,20 @@ static void Sys_Net_Restart_f( void ) // called after the common systems (cvars, files, etc) are initialized - -#define OSR2_BUILD_NUMBER 1111 -#define WIN98_BUILD_NUMBER 1998 - void Sys_Init() { // make sure the timer is high precision, otherwise NT gets 18ms resolution timeBeginPeriod( 1 ); +#ifndef DEDICATED Cmd_AddCommand( "in_restart", Sys_In_Restart_f ); +#endif Cmd_AddCommand( "net_restart", Sys_Net_Restart_f ); - g_wv.osversion.dwOSVersionInfoSize = sizeof( g_wv.osversion ); + if ( !IsWindowsVistaOrGreater() ) + Sys_Error( "%s requires Windows Vista or later", Q3_VERSION ); - if (!GetVersionEx (&g_wv.osversion)) - Sys_Error ("Couldn't get OS info"); - - if (g_wv.osversion.dwMajorVersion < 4) - Sys_Error ("Quake3 requires Windows version 4 or greater"); - if (g_wv.osversion.dwPlatformId == VER_PLATFORM_WIN32s) - Sys_Error ("Quake3 doesn't run on Win32s"); - - if ( g_wv.osversion.dwPlatformId == VER_PLATFORM_WIN32_NT ) - { - Cvar_Set( "arch", "winnt" ); - } - else if ( g_wv.osversion.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS ) - { - if ( LOWORD( g_wv.osversion.dwBuildNumber ) >= WIN98_BUILD_NUMBER ) - { - Cvar_Set( "arch", "win98" ); - } - else if ( LOWORD( g_wv.osversion.dwBuildNumber ) >= OSR2_BUILD_NUMBER ) - { - Cvar_Set( "arch", "win95 osr2.x" ); - } - else - { - Cvar_Set( "arch", "win95" ); - } - } - else - { - Cvar_Set( "arch", "unknown Windows variant" ); - } + Cvar_Set( "arch", "winnt" ); // save out a couple things in rom cvars for the renderer to access Cvar_Get( "win_hinstance", va("%i", (int)g_wv.hInstance), CVAR_ROM ); @@ -601,47 +559,11 @@ void Sys_Init() break; } } - Com_DPrintf( "CPU: %s\n", Cvar_VariableString( "sys_cpustring" ) ); + Com_Printf( "CPU: %s\n", Cvar_VariableString( "sys_cpustring" ) ); //Cvar_Set( "username", Sys_GetCurrentUser() ); } -static int CheckPrivs() -{ - HANDLE hToken; - - // Get a token for this process. - if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) - return 0; - - OSVERSIONINFO vinfo; - vinfo.dwOSVersionInfoSize = sizeof(vinfo); - GetVersionEx( &vinfo ); - - PRIVILEGE_SET priv; - - // Get the LUID for the shutdown privilege. - if ( vinfo.dwMajorVersion == 5 && vinfo.dwPlatformId == VER_PLATFORM_WIN32_NT ) { - LookupPrivilegeValue(NULL, SE_INC_BASE_PRIORITY_NAME, &priv.Privilege[0].Luid); // W2K or XP - } - else if ( vinfo.dwMajorVersion == 6 && vinfo.dwPlatformId == VER_PLATFORM_WIN32_NT ){ - LookupPrivilegeValue(NULL, SE_INC_WORKING_SET_NAME, &priv.Privilege[0].Luid); // Vista - } - else { - //TODO: what SE_* for Win7 ? - return 0; - } - - priv.PrivilegeCount = 1; // one privilege to set - priv.Privilege[0].Attributes = 0; - - BOOL res; - if (!PrivilegeCheck(hToken, &priv, &res)){ - return 0; - } - - return priv.Privilege[0].Attributes == SE_PRIVILEGE_USED_FOR_ACCESS; -} /////////////////////////////////////////////////////////////// @@ -654,12 +576,6 @@ int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin g_wv.hInstance = hInstance; -#ifndef USE_R_SMP - SYSTEM_INFO sysInfo; - GetSystemInfo( &sysInfo ); - SetProcessAffinityMask( GetCurrentProcess(), sysInfo.dwActiveProcessorMask ); -#endif - // done before Com/Sys_Init since we need this for error output Sys_CreateConsole(); @@ -675,25 +591,20 @@ int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin NET_Init(); + char cwd[MAX_OSPATH]; + _getcwd( cwd, sizeof(cwd) ); + Com_Printf( "Working directory: %s\n", cwd ); + // hide the early console since we've reached the point where we // have a working graphics subsystem if ( !com_dedicated->integer && !com_viewlog->integer ) { Sys_ShowConsole( 0, qfalse ); } +#ifndef DEDICATED if (!com_dedicated->integer) - IN_Init(); - - // in some cases (XP SP2, Vista UAC), this can supposedly help trim the working set / VM usage of Q3 - // but it requires admin rights and makes no difference here, so I'm disabling it by default - if (CheckPrivs()) - { - typedef BOOL (WINAPI *SetPWSS)( HANDLE, SIZE_T, SIZE_T ); - SetPWSS spwss = (SetPWSS)GetProcAddress( GetModuleHandle("kernel32"), "SetProcessWorkingSetSize" ); - if (spwss) { - spwss( GetCurrentProcess(), (SIZE_T)-1, (SIZE_T)-1 ); - } - } + IN_Init(); +#endif int totalMsec = 0, countMsec = 0; @@ -701,24 +612,21 @@ int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin while (qtrue) { // if running as a client but not focused, sleep a bit // (servers have their own sleep path) - if ( com_dedicated && !com_dedicated->integer ) - { - if( g_wv.isMinimized || !g_wv.activeApp ) { - Sleep( 200 ); // 5 fps, free CPU - } - //SwitchToThread(); - } + if ( !g_wv.activeApp && com_dedicated && !com_dedicated->integer ) + Sleep( 5 ); int startTime = Sys_Milliseconds(); +#ifndef DEDICATED // make sure mouse and joystick are only called once a frame IN_Frame(); +#endif // run the game Com_Frame(); totalMsec += Sys_Milliseconds() - startTime; - ++countMsec; + countMsec++; } // never gets here diff --git a/code/win32/win_qgl.c b/code/win32/win_qgl.c index 8bb4157..0df5e59 100644 --- a/code/win32/win_qgl.c +++ b/code/win32/win_qgl.c @@ -33,7 +33,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include "../qcommon/q_shared.h" #define WIN32_LEAN_AND_MEAN -#include +#include "../win32/windows.h" #include #include "glext.h" diff --git a/code/win32/win_snd.cpp b/code/win32/win_snd.cpp index 38895d8..3d8d040 100644 --- a/code/win32/win_snd.cpp +++ b/code/win32/win_snd.cpp @@ -26,9 +26,12 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include #pragma comment( lib, "dxguid" ) +HRESULT (WINAPI *pDirectSoundCreate)(GUID FAR *lpGUID, LPDIRECTSOUND FAR *lplpDS, IUnknown FAR *pUnkOuter); +#define iDirectSoundCreate(a,b,c) pDirectSoundCreate(a,b,c) #define SECONDARY_BUFFER_SIZE 0x10000 + static int sample16; static DWORD gSndBufSize; static DWORD locksize; @@ -37,8 +40,7 @@ static LPDIRECTSOUNDBUFFER pDSBuf, pDSPBuf; static HINSTANCE hInstDS; -static const char* DSoundError( int error ) -{ +static const char *DSoundError( int error ) { switch ( error ) { case DSERR_BUFFERLOST: return "DSERR_BUFFERLOST"; @@ -53,9 +55,12 @@ static const char* DSoundError( int error ) return "unknown"; } - -void SNDDMA_Shutdown() -{ +/* +================== +SNDDMA_Shutdown +================== +*/ +void SNDDMA_Shutdown( void ) { Com_DPrintf( "Shutting down sound system\n" ); if ( pDS ) { @@ -97,38 +102,50 @@ void SNDDMA_Shutdown() pDS = NULL; pDSBuf = NULL; pDSPBuf = NULL; - memset( &dma, 0, sizeof(dma) ); - CoUninitialize(); + memset ((void *)&dma, 0, sizeof (dma)); + CoUninitialize( ); } -#define DS_INIT_ABORT_ON_ERROR( DSFN, MSG ) \ - if (DSFN != DS_OK) { Com_Printf( "DirectSound: " MSG " FAILED" ); SNDDMA_Shutdown(); return qfalse; } - static qbool SNDDMA_InitDS() { - HRESULT hresult; + HRESULT hresult; + DSBUFFERDESC dsbuf; + DSBCAPS dsbcaps; + WAVEFORMATEX format; + + Com_Printf( "Initializing DirectSound\n" ); if (SUCCEEDED( hresult = CoCreateInstance( CLSID_DirectSound8, NULL, CLSCTX_INPROC_SERVER, IID_IDirectSound8, (void **)&pDS))) { Com_DPrintf( "Using DS8\n" ); } else if (SUCCEEDED( hresult = CoCreateInstance( CLSID_DirectSound, NULL, CLSCTX_INPROC_SERVER, IID_IDirectSound, (void **)&pDS))) { - Com_DPrintf( "Using Legacy DS\n" ); + Com_DPrintf( "Using legacy DS\n" ); } else { - DS_INIT_ABORT_ON_ERROR( !DS_OK, "Create" ); + Com_Printf("failed\n"); + SNDDMA_Shutdown(); + return qfalse; } - DS_INIT_ABORT_ON_ERROR( pDS->Initialize(NULL), "Init" ); - DS_INIT_ABORT_ON_ERROR( pDS->SetCooperativeLevel( g_wv.hWnd, DSSCL_PRIORITY ), "SetCL" ); + hresult = pDS->Initialize( NULL ); + + Com_DPrintf("...setting DSSCL_PRIORITY coop level: " ); + + if ( DS_OK != pDS->SetCooperativeLevel( g_wv.hWnd, DSSCL_PRIORITY ) ) { + Com_Printf ("failed\n"); + SNDDMA_Shutdown(); + return qfalse; + } + Com_DPrintf("ok\n" ); + // create the secondary buffer we'll actually work with dma.channels = 2; dma.samplebits = 16; dma.speed = 22050; - WAVEFORMATEX format; - memset( &format, 0, sizeof(format) ); + memset (&format, 0, sizeof(format)); format.wFormatTag = WAVE_FORMAT_PCM; format.nChannels = dma.channels; format.wBitsPerSample = dma.samplebits; @@ -137,25 +154,44 @@ static qbool SNDDMA_InitDS() format.cbSize = 0; format.nAvgBytesPerSec = format.nSamplesPerSec*format.nBlockAlign; - DSBUFFERDESC dsbuf; - memset( &dsbuf, 0, sizeof(dsbuf) ); + memset (&dsbuf, 0, sizeof(dsbuf)); dsbuf.dwSize = sizeof(DSBUFFERDESC); + dsbuf.dwBufferBytes = SECONDARY_BUFFER_SIZE; dsbuf.lpwfxFormat = &format; + memset(&dsbcaps, 0, sizeof(dsbcaps)); + dsbcaps.dwSize = sizeof(dsbcaps); + + Com_DPrintf( "...creating secondary buffer: " ); dsbuf.dwFlags = DSBCAPS_LOCHARDWARE | DSBCAPS_GETCURRENTPOSITION2; - if (DS_OK != pDS->CreateSoundBuffer( &dsbuf, &pDSBuf, NULL )) { + if (DS_OK == pDS->CreateSoundBuffer( &dsbuf, &pDSBuf, NULL )) { + Com_Printf( "locked hardware. ok\n" ); + } + else { + // Couldn't get hardware, fallback to software. dsbuf.dwFlags = DSBCAPS_LOCSOFTWARE | DSBCAPS_GETCURRENTPOSITION2; - DS_INIT_ABORT_ON_ERROR( pDS->CreateSoundBuffer( &dsbuf, &pDSBuf, NULL ), "SW" ); - Com_Printf( "DirectSound: Using SW Buffers" ); + if (DS_OK != pDS->CreateSoundBuffer( &dsbuf, &pDSBuf, NULL )) { + Com_Printf( "failed\n" ); + SNDDMA_Shutdown(); + return qfalse; + } + Com_DPrintf( "forced to software. ok\n" ); } - DS_INIT_ABORT_ON_ERROR( pDSBuf->Play( 0, 0, DSBPLAY_LOOPING ), "Play" ); + // Make sure mixer is active + if ( DS_OK != pDSBuf->Play( 0, 0, DSBPLAY_LOOPING ) ) { + Com_Printf ("*** Looped sound play failed ***\n"); + SNDDMA_Shutdown (); + return qfalse; + } - DSBCAPS dsbcaps; - memset( &dsbcaps, 0, sizeof(dsbcaps) ); - dsbcaps.dwSize = sizeof(dsbcaps); - DS_INIT_ABORT_ON_ERROR( pDSBuf->GetCaps(&dsbcaps), "GetCaps" ); + // get the returned buffer size + if ( DS_OK != pDSBuf->GetCaps(&dsbcaps) ) { + Com_Printf ("*** GetCaps failed ***\n"); + SNDDMA_Shutdown (); + return qfalse; + } gSndBufSize = dsbcaps.dwBufferBytes; @@ -170,64 +206,78 @@ static qbool SNDDMA_InitDS() SNDDMA_BeginPainting(); if (dma.buffer) - memset( dma.buffer, 0, dma.samples * dma.samplebits/8 ); + memset(dma.buffer, 0, dma.samples * dma.samplebits/8); SNDDMA_Submit(); return qtrue; } -#undef DS_INIT_ABORT_ON_ERROR - -qbool SNDDMA_Init() +qbool SNDDMA_Init(void) { - memset( &dma, 0, sizeof(dma) ); - CoInitialize(NULL); + memset ((void *)&dma, 0, sizeof (dma)); if (!SNDDMA_InitDS()) { assert(!pDSBuf); return qfalse; } assert(pDSBuf); + Com_DPrintf("Completed successfully\n" ); + return qtrue; } /* +============== +SNDDMA_GetDMAPos + return the current sample position (in mono samples read) inside the recirculating dma buffer, so the mixing code will know how many sample are required to fill it up. +=============== */ -int SNDDMA_GetDMAPos() -{ +int SNDDMA_GetDMAPos( void ) { MMTIME mmtime; + int s; DWORD dwWrite; mmtime.wType = TIME_SAMPLES; pDSBuf->GetCurrentPosition( &mmtime.u.sample, &dwWrite ); - int s = mmtime.u.sample >> sample16; - return (s & (dma.samples-1)); + s = mmtime.u.sample; + + s >>= sample16; + + s &= (dma.samples-1); + + return s; } +/* +============== +SNDDMA_BeginPainting -// makes sure dma.buffer is valid - -void SNDDMA_BeginPainting() -{ +Makes sure dma.buffer is valid +=============== +*/ +void SNDDMA_BeginPainting( void ) { int reps; DWORD dwSize2; DWORD *pbuf, *pbuf2; HRESULT hresult; DWORD dwStatus; - if ( !pDSBuf ) + if ( !pDSBuf ) { return; + } // if the buffer was lost or stopped, restore it and/or restart it - pDSBuf->GetStatus(&dwStatus); + if ( pDSBuf->GetStatus(&dwStatus) != DS_OK ) { + Com_Printf ("Couldn't get sound buffer status\n"); + } if (dwStatus & DSBSTATUS_BUFFERLOST) pDSBuf->Restore(); @@ -245,7 +295,7 @@ void SNDDMA_BeginPainting() if (hresult != DSERR_BUFFERLOST) { Com_Printf( "SNDDMA_BeginPainting: Lock failed with error '%s'\n", DSoundError( hresult ) ); - S_Shutdown(); + S_Shutdown (); return; } else @@ -259,11 +309,15 @@ void SNDDMA_BeginPainting() dma.buffer = (unsigned char *)pbuf; } +/* +============== +SNDDMA_Submit -// send sound to the device if our buffer isn't really the dma buffer -// for DS, that just means signalling it with an unlock - -void SNDDMA_Submit() +Send sound to device if buffer isn't really the dma buffer +Also unlocks the dsound buffer +=============== +*/ +void SNDDMA_Submit( void ) { if ( pDSBuf ) { pDSBuf->Unlock( dma.buffer, locksize, NULL, 0 ); @@ -271,15 +325,21 @@ void SNDDMA_Submit() } -// reset the DS coop level if we lost focus but have now regained it +/* +================= +SNDDMA_Activate +When we change windows we need to do this +================= +*/ void SNDDMA_Activate() { - if ( !pDS ) + if ( !pDS ) { return; + } if ( DS_OK != pDS->SetCooperativeLevel( g_wv.hWnd, DSSCL_PRIORITY ) ) { - Com_Printf( "DirectSound SetCL FAILED\n" ); + Com_Printf ("sound SetCooperativeLevel failed\n"); SNDDMA_Shutdown(); } } diff --git a/code/win32/win_wndproc.cpp b/code/win32/win_wndproc.cpp index a6b15bc..f9b8033 100644 --- a/code/win32/win_wndproc.cpp +++ b/code/win32/win_wndproc.cpp @@ -23,8 +23,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include "../client/client.h" #include "win_local.h" -WinVars_t g_wv; - // Console variables that we need to access from this module cvar_t *vid_xpos; // X coordinate of window position @@ -38,7 +36,7 @@ static qbool s_alttab_disabled; static void WIN_DisableAltTab() { - if ( s_alttab_disabled ) + //if ( s_alttab_disabled ) return; if ( !Q_stricmp( Cvar_VariableString( "arch" ), "winnt" ) ) @@ -57,17 +55,17 @@ static void WIN_DisableAltTab() static void WIN_EnableAltTab() { - if ( s_alttab_disabled ) + if ( !s_alttab_disabled ) + return; + + if ( !Q_stricmp( Cvar_VariableString( "arch" ), "winnt" ) ) { - if ( !Q_stricmp( Cvar_VariableString( "arch" ), "winnt" ) ) - { - UnregisterHotKey( 0, 0 ); - } - else - { - BOOL old; - SystemParametersInfo( SPI_SCREENSAVERRUNNING, 0, &old, 0 ); - } + UnregisterHotKey( 0, 0 ); + } + else + { + BOOL old; + SystemParametersInfo( SPI_SCREENSAVERRUNNING, 0, &old, 0 ); } s_alttab_disabled = qfalse; @@ -81,7 +79,7 @@ static void VID_AppActivate( BOOL fActive, BOOL minimize ) g_wv.isMinimized = (minimize == TRUE); - Com_DPrintf( "VID_AppActivate: %i\n", fActive ); + Com_DPrintf("VID_AppActivate: %i\n", fActive ); Key_ClearStates(); // FIXME!!! @@ -89,34 +87,33 @@ static void VID_AppActivate( BOOL fActive, BOOL minimize ) g_wv.activeApp = (fActive && !g_wv.isMinimized); // minimize/restore mouse-capture on demand - if (!g_wv.activeApp) - IN_Activate( qfalse ); + IN_Activate( g_wv.activeApp ); } /////////////////////////////////////////////////////////////// -static const byte s_scantokey[128] = +static byte s_scantokey[128] = { -// 0 1 2 3 4 5 6 7 -// 8 9 A B C D E F - 0, 27, '1', '2', '3', '4', '5', '6', - '7', '8', '9', '0', '-', '=', K_BACKSPACE, 9, // 0 - 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', - 'o', 'p', '[', ']', 13 , K_CTRL, 'a', 's', // 1 - 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';', - '\'', '`', K_SHIFT, '\\', 'z', 'x', 'c', 'v', // 2 - 'b', 'n', 'm', ',', '.', '/', K_SHIFT, '*', - K_ALT, ' ', K_CAPSLOCK, K_F1, K_F2, K_F3, K_F4, K_F5, // 3 - K_F6, K_F7, K_F8, K_F9, K_F10, K_PAUSE, 0, K_HOME, - K_UPARROW,K_PGUP, K_KP_MINUS,K_LEFTARROW,K_KP_5,K_RIGHTARROW,K_KP_PLUS,K_END, //4 - K_DOWNARROW,K_PGDN, K_INS, K_DEL, 0, 0, 0, K_F11, - K_F12,0 , 0 , 0 , 0 , K_MENU , 0 , 0, // 5 - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, // 6 - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, // 7 +// 0 1 2 3 4 5 6 7 +// 8 9 A B C D E F + 0 , 27, '1', '2', '3', '4', '5', '6', + '7', '8', '9', '0', '-', '=', K_BACKSPACE, 9, // 0 + 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', + 'o', 'p', '[', ']', 13 , K_CTRL,'a', 's', // 1 + 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';', + '\'' , '`', K_SHIFT,'\\', 'z', 'x', 'c', 'v', // 2 + 'b', 'n', 'm', ',', '.', '/', K_SHIFT,'*', + K_ALT,' ', K_CAPSLOCK , K_F1, K_F2, K_F3, K_F4, K_F5, // 3 + K_F6, K_F7, K_F8, K_F9, K_F10, K_PAUSE, 0 , K_HOME, + K_UPARROW,K_PGUP,K_KP_MINUS,K_LEFTARROW,K_KP_5,K_RIGHTARROW, K_KP_PLUS,K_END, //4 + K_DOWNARROW,K_PGDN,K_INS,K_DEL,0,0, 0, K_F11, + K_F12,0 , 0 , 0 , 0 , 0 , 0 , 0, // 5 + 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, + 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, // 6 + 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, + 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 // 7 }; /* @@ -193,170 +190,104 @@ static int MapKey (int key) } return result; } - if( result >= ' ' && result < 128 ) { // drakkar - do not use extended keys as normal chars - return 0; - } } -// drakkar -// http://support.microsoft.com/kb/226359 -LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) -{ - int vkCode, isDown; - if( nCode == HC_ACTION ) - { - vkCode = ((KBDLLHOOKSTRUCT *)lParam)->vkCode; - isDown = ( wParam == WM_SYSKEYDOWN || wParam == WM_KEYDOWN ); +/* +==================== +MainWndProc - switch( vkCode ) - { - // Disable Windows key - case VK_LWIN: - case VK_RWIN: - Sys_QueEvent( g_wv.sysMsgTime, SE_KEY, K_WIN, isDown, 0, NULL ); - return 1; - break; +main window procedure +==================== +*/ - // Disable XXX+TAB : ALT+TAB, SHIFT+TAB - case VK_TAB: - Sys_QueEvent( g_wv.sysMsgTime, SE_KEY, K_TAB, isDown, 0, NULL ); - return 1; - break; - - // Disable ALT+XXX : ALT+F4, ALT+TAB - case VK_LMENU: - Sys_QueEvent( g_wv.sysMsgTime, SE_KEY, K_ALT, isDown, 0, NULL ); - return 1; - break; - - // Disable XXX+ESC : CTRL+ESC, ALT+ESC, SHIFT+ESC - case VK_ESCAPE: - Sys_QueEvent( g_wv.sysMsgTime, SE_KEY, K_ESCAPE, isDown, 0, NULL ); - return 1; - break; - } - } - - return CallNextHookEx( 0, nCode, wParam, lParam ); -} -// !drakkar - - -// drakkar -static HHOOK hHook = NULL; -void EnableLowLevelKeyboard(qbool enable) -{ - if( enable ) - { - if( !hHook ) - { - // WH_KEYBOARD_LL -> Windows NT/2000/XP - hHook = SetWindowsHookEx( WH_KEYBOARD_LL, LowLevelKeyboardProc, g_wv.hInstance, 0 ); - if( !hHook ) - { - Com_Printf("Could not create key hook ( LowLevelKeyboard )\n"); - } - } - } - else - { - if( hHook ) - { - UnhookWindowsHookEx( hHook ); - hHook = NULL; - } - } -} -// !drakkar - - -// drakkar -void EnableKeyboardShortcuts(qbool enable) -{ - if( !g_wv.hWnd || !g_wv.activeApp ) - enable = qtrue; // prevent possible bug - - if( enable ) - { - EnableLowLevelKeyboard( qfalse ); - WIN_EnableAltTab(); - } - else - { - EnableLowLevelKeyboard( qtrue ); - WIN_DisableAltTab(); - } -} -// !drakkar - - - -LONG WINAPI MainWndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) +LONG WINAPI MainWndProc ( + HWND hWnd, + UINT uMsg, + WPARAM wParam, + LPARAM lParam) { switch (uMsg) { + + case WM_MOUSEWHEEL: + { + int i = (short)HIWORD(wParam); + // note: apparently the vista mouse driver often returns < WHEEL_DELTA + // but anyone running vista is a moron anyway, so fkit :P + if (i > 0) { + while (i >= WHEEL_DELTA) { + Sys_QueEvent( g_wv.sysMsgTime, SE_KEY, K_MWHEELUP, qtrue, 0, NULL ); + Sys_QueEvent( g_wv.sysMsgTime, SE_KEY, K_MWHEELUP, qfalse, 0, NULL ); + i -= WHEEL_DELTA; + } + } else { + while (i <= -WHEEL_DELTA) { + Sys_QueEvent( g_wv.sysMsgTime, SE_KEY, K_MWHEELDOWN, qtrue, 0, NULL ); + Sys_QueEvent( g_wv.sysMsgTime, SE_KEY, K_MWHEELDOWN, qfalse, 0, NULL ); + i += WHEEL_DELTA; + } + } + // when an application processes the WM_MOUSEWHEEL message, it must return zero + return 0; + } + break; + case WM_CREATE: + g_wv.hWnd = hWnd; + vid_xpos = Cvar_Get( "vid_xpos", "3", CVAR_ARCHIVE ); vid_ypos = Cvar_Get( "vid_ypos", "22", CVAR_ARCHIVE ); r_fullscreen = Cvar_Get( "r_fullscreen", "1", CVAR_ARCHIVE | CVAR_LATCH ); - + if ( r_fullscreen->integer ) WIN_DisableAltTab(); else WIN_EnableAltTab(); + break; case WM_DESTROY: // let sound and input know about this? g_wv.hWnd = NULL; - // drakkar - EnableKeyboardShortcuts( qtrue ); - // !drakkar if ( r_fullscreen->integer ) WIN_EnableAltTab(); break; - // drakkar - case WM_SETFOCUS: - Key_ClearStates(); - re.WindowFocus( qtrue ); - SNDDMA_Activate(); + case WM_CLOSE: + Cbuf_AddText( "quit\n" ); break; - case WM_KILLFOCUS: - Key_ClearStates(); - re.WindowFocus( qfalse ); - SNDDMA_Activate(); - break; - - case WM_SIZE: - if( wParam == SIZE_MINIMIZED ) Cmd_ExecuteString( "windowMode minimized\n" ); - if( wParam == SIZE_MAXIMIZED ) Cmd_ExecuteString( "windowMode fullscreen\n" ); - if( wParam == SIZE_RESTORED ) Cmd_ExecuteString( "windowMode windowed\n" ); - break; - // !drakkar - case WM_ACTIVATE: VID_AppActivate( (LOWORD(wParam) != WA_INACTIVE), (BOOL)HIWORD(wParam) ); SNDDMA_Activate(); break; - case WM_CLOSE: - Cbuf_AddText( "quit\n" ); - //break; case WM_MOVE: - if (!r_fullscreen->integer) { - RECT rc; - SetRectEmpty( &rc ); - AdjustWindowRect( &rc, GetWindowLong( hWnd, GWL_STYLE ), FALSE ); - Cvar_SetValue( "vid_xpos", (short)LOWORD(lParam) + rc.left ); - Cvar_SetValue( "vid_ypos", (short)HIWORD(lParam) + rc.top ); - vid_xpos->modified = qfalse; - vid_ypos->modified = qfalse; - IN_Move(); + if (!r_fullscreen->integer ) + { + int xPos = (short)LOWORD(lParam); // horizontal position + int yPos = (short)HIWORD(lParam); // vertical position + + RECT r; + r.left = 0; + r.top = 0; + r.right = 1; + r.bottom = 1; + + AdjustWindowRect( &r, GetWindowLong( hWnd, GWL_STYLE ), FALSE ); + + Cvar_SetValue( "vid_xpos", xPos + r.left ); + Cvar_SetValue( "vid_ypos", yPos + r.top ); + vid_xpos->modified = qfalse; + vid_ypos->modified = qfalse; + if ( g_wv.activeApp ) + { + IN_Activate (qtrue); + } + } } break; @@ -390,11 +321,11 @@ LONG WINAPI MainWndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) break; default: - if (uMsg == WM_INPUT || (uMsg>=WM_MOUSEFIRST && uMsg<=WM_MOUSELAST)) - IN_Activate( g_wv.activeApp ); - - if (IN_ProcessMessage( uMsg, wParam, lParam )) - return 0; + // this is complicated because Win32 seems to pack multiple mouse events into + // one update sometimes, so we always check all states and look for events + if ( uMsg == WM_INPUT || (uMsg >= WM_MOUSEFIRST && uMsg <= WM_MOUSELAST) ) + if ( IN_ProcessMessage(uMsg, wParam, lParam) ) + return 0; break; } diff --git a/code/win32/windows.h b/code/win32/windows.h new file mode 100644 index 0000000..e3659aa --- /dev/null +++ b/code/win32/windows.h @@ -0,0 +1,20 @@ +#pragma once + + +#if defined(WINVER) +#undef WINVER +#endif +#if defined(_WIN32_WINNT) +#undef _WIN32_WINNT +#endif +#define WINVER _WIN32_WINNT_VISTA +#define _WIN32_WINNT _WIN32_WINNT_VISTA + +#if defined(UNICODE) +#undef UNICODE +#endif +#if defined(_UNICODE) +#undef _UNICODE +#endif + +#include diff --git a/sys/premake5.lua b/sys/premake5.lua new file mode 100644 index 0000000..39d676b --- /dev/null +++ b/sys/premake5.lua @@ -0,0 +1,531 @@ +--[[ + +There are only 2 build toolchains supported: +- Visual C++ on Windows +- GCC on Linux + +@TODO: prevent UNICODE and _UNICODE from being #define'd with premake +@TODO: enable Minimal Rebuild from premake (instead of adding /Gm) + +--]] + +newoption +{ + trigger = "quake3dir", + description = "Quake 3 directory path, used for copying the binaries and running the debugger" +} + +if not _OPTIONS["quake3dir"] then + error "quake3dir must be specified on the command-line" +end + +path_root = "../.." +path_src = path_root.."/cnq3/code" +path_build = path_root.."/.build" +path_bin = path_root.."/.bin" +os.mkdir(path_bin) + +abs_path_cnq3_repo = os.realpath(path_root.."/cnq3") +abs_path_git_scripts = os.realpath(path_root.."/cnq3tools/git") +abs_path_git_header = path.getabsolute(path_root.."/cnq3/code/qcommon/git.h") -- may not exist yet +abs_path_q3 = os.realpath(_OPTIONS["quake3dir"]) +abs_path_bin = os.realpath(path_bin) + +local function LIN_CreateGitPreBuildCommand() + + -- os.realpath is problematic on Linux + local abs_path_script = path.getabsolute(string.format("%s/create_git_header.sh", abs_path_git_scripts)) + + return string.format("cd \"%s\" && \"%s\" \"%s\"", abs_path_cnq3_repo, abs_path_script, abs_path_git_header) + +end + +local function WIN_CreateGitPreBuildCommand() + + local abs_path_script = os.realpath(string.format("%s/create_git_header.cmd", abs_path_git_scripts)) + + return string.format("cd \"%s\" && \"%s\" \"%s\"", abs_path_cnq3_repo, abs_path_script, abs_path_git_header) + +end + +local function LIN_CreateExeCopyPostBuildCommand(exeName) + + -- os.realpath fails on Linux due to the %{cfg.buildcfg} token + local abs_path_exe = path.getabsolute(string.format("%s/%s/%s", abs_path_bin, "%{cfg.buildcfg}", exeName)) + + return string.format("cp \"%s\" \"%s\"", abs_path_exe, abs_path_q3) + +end + +local function WIN_CreateExeCopyPostBuildCommand(exeName) + + local abs_path_exe = os.realpath(string.format("%s/%s/%s.exe", abs_path_bin, "%{cfg.buildcfg}", exeName)) + + return string.format("copy \"%s\" \"%s\"", abs_path_exe, abs_path_q3) + +end + +local function WIN_CreatePdbCopyPostBuildCommand(exeName) + + local abs_path_pdb = string.format("%s\\%s\\%s.pdb", abs_path_bin, "%{cfg.buildcfg}", exeName) + + return string.format("copy \"%s\" \"%s\"", abs_path_pdb, abs_path_q3) + +end + +local function SetTargetAndLink(dirPath) + + targetdir(dirPath) + libdirs(dirPath) + +end + +local function AddSourcesAndHeaders(dirPath) + + files + { + path_src.."/"..dirPath.."/*.cpp", + path_src.."/"..dirPath.."/*.c", + path_src.."/"..dirPath.."/*.h", + } + +end + +local function AddSources(dirPath) + + files + { + path_src.."/"..dirPath.."/*.cpp", + path_src.."/"..dirPath.."/*.c" + } + +end + +local function AddHeaders(dirPath) + + files { path_src.."/"..dirPath.."/*.h" } + +end + +local function AddSourcesFromArray(sourceFiles) + + for idx,path in pairs(sourceFiles) do + files { string.format("%s/%s", path_src, path) } + end + +end + +local function ApplyProjectSettings() + + -- + -- General + -- + + filter { } + + location ( path_build.."/".._ACTION ) + + rtti "Off" + exceptionhandling "Off" + flags { "NoPCH", "StaticRuntime", "NoManifest", "NoNativeWChar" } + + filter "configurations:debug" + defines { "DEBUG", "_DEBUG" } + flags { } + + filter "configurations:release" + defines { "NDEBUG" } + flags -- others: NoIncrementalLink NoCopyLocal NoImplicitLink NoBufferSecurityChecks + { + "NoMinimalRebuild", + "OptimizeSize", + "NoFramePointer", + "EnableSSE2", + "FloatFast", + "MultiProcessorCompile", + "NoRuntimeChecks" + } + + -- Build directories + filter "configurations:debug" + SetTargetAndLink ( path_bin.."/debug" ) + filter "configurations:release" + SetTargetAndLink ( path_bin.."/release" ) + + -- + -- Visual C++ + -- + + -- Some build options: + -- /GT => Support Fiber-Safe Thread-Local Storage + -- /GS- => Buffer Security Check disabled + -- /GL => Whole Program Optimization + -- /Zi => Debug info, but not for edit and continue + -- /Os => Favor size over speed + -- /Gm => Enable Minimal Rebuild + + filter "action:vs*" + symbols "On" + editandcontinue "Off" + defines { "_CRT_SECURE_NO_WARNINGS", "WIN32", "_WIN32" } + flags { "ExtraWarnings" } + + filter { "action:vs*", "kind:WindowedApp" } + flags { "WinMain" } + + filter { "action:vs*", "configurations:debug" } + buildoptions { "/Gm" } + linkoptions { "" } + + filter { "action:vs*", "configurations:release" } + flags { "LinkTimeOptimization" } -- I had no success with GCC's -flto + buildoptions { "/GL" } + linkoptions { "" } + + -- + -- GCC + -- + + -- "-g1" is the minimum amount of debug information + -- it should be just enough to get a symbolic stack trace + + filter "action:gmake" + symbols "On" + buildoptions { "-Wno-unused-parameter -Wno-write-strings" } + linkoptions { "" } + + filter { "action:gmake", "configurations:rebug" } + buildoptions { "" } + linkoptions { "" } + + filter { "action:gmake", "configurations:release" } + buildoptions { "-g1" } + linkoptions { "" } + +end + +local function ApplyLibProjectSettings() + + ApplyProjectSettings() + +end + +local function ApplyExeProjectSettings(exeName, server) + + ApplyProjectSettings() + + filter { } + + local server_sources = + { + "qcommon/cmd.cpp", + "qcommon/cm_load.cpp", + "qcommon/cm_patch.cpp", + "qcommon/cm_polylib.cpp", + "qcommon/cm_test.cpp", + "qcommon/cm_trace.cpp", + "qcommon/common.cpp", + "qcommon/cvar.cpp", + "qcommon/files.cpp", + "qcommon/huffman.cpp", + "qcommon/md4.cpp", + "qcommon/md5.cpp", + "qcommon/msg.cpp", + "qcommon/net_chan.cpp", + "qcommon/net_ip.cpp", + "qcommon/q_math.c", + "qcommon/q_shared.c", + "qcommon/unzip.cpp", + "qcommon/vm.cpp", + "qcommon/vm_interpreted.cpp", + "qcommon/vm_x86.cpp", + "server/sv_bot.cpp", + "server/sv_ccmds.cpp", + "server/sv_client.cpp", + "server/sv_game.cpp", + "server/sv_init.cpp", + "server/sv_main.cpp", + "server/sv_net_chan.cpp", + "server/sv_snapshot.cpp", + "server/sv_world.cpp" + } + + local server_sources_windows = + { + "win32/win_main.cpp", + "win32/win_shared.cpp", + "win32/win_syscon.cpp" + } + + local server_sources_unix = + { + "unix/unix_main.cpp", + "unix/unix_shared.cpp", + "unix/linux_signals.cpp" + } + + local client_sources = + { + "client/cl_avi.cpp", + "client/cl_browser.cpp", + "client/cl_cgame.cpp", + "client/cl_cin.cpp", + "client/cl_console.cpp", + "client/cl_curl.cpp", + "client/cl_input.cpp", + "client/cl_keys.cpp", + "client/cl_main.cpp", + "client/cl_net_chan.cpp", + "client/cl_parse.cpp", + "client/cl_scrn.cpp", + "client/cl_ui.cpp", + "client/snd_codec.cpp", + "client/snd_codec_wav.cpp", + "client/snd_dma.cpp", + "client/snd_main.cpp", + "client/snd_mem.cpp", + "client/snd_mix.cpp", + "qcommon/cmd.cpp", + "qcommon/cm_load.cpp", + "qcommon/cm_patch.cpp", + "qcommon/cm_polylib.cpp", + "qcommon/cm_test.cpp", + "qcommon/cm_trace.cpp", + "qcommon/common.cpp", + "qcommon/cvar.cpp", + "qcommon/files.cpp", + "qcommon/huffman.cpp", + "qcommon/md4.cpp", + "qcommon/md5.cpp", + "qcommon/msg.cpp", + "qcommon/net_chan.cpp", + "qcommon/net_ip.cpp", + "qcommon/q_math.c", + "qcommon/q_shared.c", + "qcommon/unzip.cpp", + "qcommon/vm.cpp", + "qcommon/vm_interpreted.cpp", + "qcommon/vm_x86.cpp", + "server/sv_bot.cpp", + "server/sv_ccmds.cpp", + "server/sv_client.cpp", + "server/sv_game.cpp", + "server/sv_init.cpp", + "server/sv_main.cpp", + "server/sv_net_chan.cpp", + "server/sv_snapshot.cpp", + "server/sv_world.cpp" + } + + local client_sources_windows = + { + "win32/win_input.cpp", + "win32/win_main.cpp", + "win32/win_shared.cpp", + "win32/win_snd.cpp", + "win32/win_syscon.cpp", + "win32/win_wndproc.cpp", + "win32/win_glimp.cpp", + "win32/win_qgl.c" + } + + local client_sources_unix = + { + "unix/unix_main.cpp", + "unix/unix_shared.cpp", + "unix/linux_joystick.c", + "unix/linux_signals.cpp", + "unix/linux_qgl.c", + "unix/linux_snd.c", + "unix/linux_glimp.c" + } + + AddHeaders("botlib") + AddHeaders("qcommon") + AddHeaders("server") + AddHeaders("client") + AddHeaders("cgame") + AddHeaders("game") + AddHeaders("ui") + + links { "botlib" } + + if (server == 1) then + AddSourcesFromArray(server_sources) + else + AddSourcesFromArray(client_sources) + includedirs { path_src.."/freetype/include" } + AddHeaders("renderer") + AddHeaders("jpeg-6") + links { "renderer", "freetype" } + end + + filter { "system:windows" } + if (server == 1) then + AddSourcesFromArray(server_sources_windows) + else + AddSourcesFromArray(client_sources_windows) + end + + filter { "system:not windows" } + if (server == 1) then + AddSourcesFromArray(server_sources_unix) + else + AddSourcesFromArray(client_sources_unix) + end + + -- create git info header + -- copy the binaries over to the test q3 install + -- it seems that "filter" doesn't work with "prebuildcommands", "postbuildcommands" + filter { } + if os.is("windows") then + postbuildcommands { WIN_CreateExeCopyPostBuildCommand(exeName) } + postbuildcommands { WIN_CreatePdbCopyPostBuildCommand(exeName) } + prebuildcommands { WIN_CreateGitPreBuildCommand() } + else + postbuildcommands { LIN_CreateExeCopyPostBuildCommand(exeName) } + prebuildcommands { LIN_CreateGitPreBuildCommand() } + end + + -- create VC++ debug settings + filter "action:vs*" + local abs_path_exe = string.format("%s\\%s.exe", abs_path_q3, exeName) + debugcommand(abs_path_exe) + if (server == 1) then + debugargs { "+set sv_pure 2 +set r_fullscreen 0" } + else + debugargs { "+set sv_pure 0 +set r_fullscreen 0" } + end + debugdir(abs_path_q3) + + filter "system:windows" + links { "Winmm", "ws2_32" } + if (server == 0) then + links { "opengl32" } + end + + filter "system:not windows" + buildoptions { "-pthread" } + links { "dl", "m", "pthread" } + if (server == 0) then + --links { "X11", "Xxf86dga", "Xxf86vm" } + links { "X11" } + end + + -- RC will compile the .rc into a .res + -- LINK accepts .res files directly + filter "action:vs*" + linkoptions { path_src.."/win32/winquake.res", "/STACK:8388608" } + + filter { "action:vs*", "configurations:release" } + linkoptions { "/OPT:REF", "/OPT:ICF" } + + -- force everything to be compiled as C++ for now + -- otherwise, we run into problems (that should really be fixed) + filter "action:gmake" + buildoptions { "-x c++" } + +end + +solution "cnq3" + + location ( path_build.."/".._ACTION ) + platforms { "x32" } + configurations { "debug", "release" } + + project "cnq3" + + kind "WindowedApp" + language "C++" + ApplyExeProjectSettings("cnq3", 0) + + project "cnq3-server" + + kind "WindowedApp" + language "C++" + defines { "DEDICATED" } + ApplyExeProjectSettings("cnq3-server", 1) + + project "botlib" + + kind "StaticLib" + language "C++" + defines { "BOTLIB" } + AddSourcesAndHeaders("botlib") + ApplyLibProjectSettings() + + project "renderer" + + local jpeg_sources = + { + "jpeg-6/jcapimin.c", + "jpeg-6/jccoefct.c", + "jpeg-6/jccolor.c", + "jpeg-6/jcdctmgr.c", + "jpeg-6/jchuff.c", + "jpeg-6/jcinit.c", + "jpeg-6/jcmainct.c", + "jpeg-6/jcmarker.c", + "jpeg-6/jcmaster.c", + "jpeg-6/jcomapi.c", + "jpeg-6/jcparam.c", + "jpeg-6/jcphuff.c", + "jpeg-6/jcprepct.c", + "jpeg-6/jcsample.c", + "jpeg-6/jctrans.c", + "jpeg-6/jdapimin.c", + "jpeg-6/jdapistd.c", + "jpeg-6/jdatadst.c", + "jpeg-6/jdatasrc.c", + "jpeg-6/jdcoefct.c", + "jpeg-6/jdcolor.c", + "jpeg-6/jddctmgr.c", + "jpeg-6/jdhuff.c", + "jpeg-6/jdinput.c", + "jpeg-6/jdmainct.c", + "jpeg-6/jdmarker.c", + "jpeg-6/jdmaster.c", + "jpeg-6/jdpostct.c", + "jpeg-6/jdsample.c", + "jpeg-6/jdtrans.c", + "jpeg-6/jerror.c", + "jpeg-6/jfdctflt.c", + "jpeg-6/jidctflt.c", + "jpeg-6/jmemmgr.c", + "jpeg-6/jmemnobs.c", + "jpeg-6/jutils.c" + } + + kind "StaticLib" + language "C++" + AddSourcesAndHeaders("renderer") + AddSourcesFromArray(jpeg_sources) + includedirs { path_src.."/freetype/include" } + ApplyLibProjectSettings() + + filter "action:gmake" + -- We force libjpeg files to be compiled as C++. + buildoptions { "-x c++" } + + project "freetype" + + local ft_sources = + { + "freetype/src/base/ftbbox.c", + "freetype/src/base/ftsynth.c", + "freetype/src/base/ftbase.c", + "freetype/src/base/ftglyph.c", + "freetype/src/base/ftinit.c", + "freetype/src/base/ftstroke.c", + "freetype/src/base/ftsystem.c", + "freetype/src/sfnt/sfnt.c", + "freetype/src/smooth/smooth.c", + "freetype/src/truetype/truetype.c" + } + + kind "StaticLib" + language "C" + AddSourcesFromArray(ft_sources) + includedirs { path_src.."/freetype/include" } + defines { "_LIB", "FT2_BUILD_LIBRARY", "_BIND_TO_CURRENT_VCLIBS_VERSION=1" } + ApplyLibProjectSettings()