Commit graph

210 commits

Author SHA1 Message Date
dhewg
3e25cc751a Always link the win32 binary against OpenAL
Just as with OSX and Linux.
2011-12-14 18:20:31 +01:00
dhewg
b6bcd0a9cb Fix compilation for MinGW
Just a few minor hiccups.
2011-12-14 18:20:30 +01:00
dhewg
661e8f453b Stub out win32 CPU functions for MinGW
Most of these use MSVC style asm.
Binaries compiled with MinGW will not use any SIMD code for now.
2011-12-14 18:20:30 +01:00
dhewg
ed349d71cc Fix Sys_QueMouseEvents for MinGW
DIMOFS_[X|Y|Z] can't be used in a switch statement.
2011-12-14 18:20:30 +01:00
dhewg
216c83b130 Undef strcasecmp before redefining it 2011-12-14 18:20:30 +01:00
dhewg
b8dc464dc7 Replace one unnecessary afxwin.h
No MFC required in win_taskkeyhook.cpp.
2011-12-14 18:20:30 +01:00
dhewg
f54752c209 Case corrections for includes on case sensitive fs' 2011-12-14 18:20:29 +01:00
dhewg
88d2dc6f33 Only use MSVC style asm with MSVC 2011-12-14 18:20:29 +01:00
dhewg
5c3a28e027 Basic infrastructure to build with MinGW
Add WIN32 support to CMake (core and games, no dedicated for now).
Only use MFC when it is available.
2011-12-14 18:19:38 +01:00
dhewg
36c5b05f1f Remove the unused and ugly HackChkStk() 2011-12-14 02:40:55 +01:00
dhewg
5052f42c9e Add a CMake build system
Tested on FreeBSD, Linux, and a ghetto rigged OSX i686 cross
compiler.

Find[OGG|Vorbis|VorbisFile].cmake borrowed from osgAudio
2011-12-14 02:40:49 +01:00
dhewg
41a1122a82 Remove the unused and useless CallStack code
This was never enabled and only implemented for Windows.
2011-12-14 02:39:42 +01:00
dhewg
758a954c0d Fix -Wdynamic-class-memaccess warning
destination for this 'memset' call is a pointer to dynamic class
'idRenderLightLocal'; vtable pointer will be overwritten

The constructor already initializes everything to zero, get rid
of this dangerous memset().
2011-12-13 19:26:16 +01:00
dhewg
09ea2ca819 Fix -Wsizeof-pointer-memaccess warnings
argument to 'sizeof' in 'memset' call is the same expression as the
destination; did you mean to dereference it?
2011-12-13 19:26:16 +01:00
dhewg
10e9ef2a52 Fix -Wdelete-non-virtual-dtor warnings
delete called on 'idSIMDProcessor' that is abstract but has
non-virtual destructor
2011-12-13 19:26:16 +01:00
dhewg
a3cd1cf54b Get rid of all #pragma mark
Fixes error: stray '\245' in program
2011-12-13 19:26:16 +01:00
dhewg
f81d32918f Implement Sys_GetProcessorId for x86 and x86_64
Detect CPU features at runtime via cpuid - code borrowed from
libavutil.
Availability of cpuid is not checked since pentium3 supports it
and that was the minimum requirement anyway.
Only features enabled at compile time will be available.

Forced MMX/SSE/SSE2/SSE3 and it passed all tests via:
./doom3.x86_64 +disconnect +set s_noSound 1 +testSIMD
2011-12-13 19:26:16 +01:00
dhewg
18762483e6 Change return type of [Sys_]GetProcessorId to int
Fixes compile error: invalid conversion from 'int' to 'cpuid_t'
2011-12-13 18:57:30 +01:00
dhewg
8023bc5d56 Always compile all SIMD code
Protect all SIMD implementations with the according defines and
let the compiler decide if it supports the intructions.

Linux will still use Simd_Generic because CPU feature runtime
detection is missing.
2011-12-13 18:56:38 +01:00
dhewg
c17b80e950 Fix SIMD pointer casts/offsets for x86_64
Get the idDrawVert member offsets directly instead of hardcoding
them and checking them via assert() at runtime.

Fixes compile error:
cast from pointer to smaller type 'int' loses information
2011-12-13 17:26:33 +01:00
dhewg
f751d7e1b8 Protect __m128i intrinsic with __SSE2__ 2011-12-13 16:26:38 +01:00
dhewg
798de99dfb Only include ppc_intrinsics.h when required 2011-12-13 16:26:38 +01:00
dhewg
c15e761bae Get rid of frustum code specialized for gcc
The functions are exactly the same ;)
Maybe splitted into two files because of an ICE on some ancient
gcc?
2011-12-13 16:26:16 +01:00
dhewg
4c38aaae78 Get rid of dmap code specialized for gcc
According to the file this existed because of a gcc 3.5.5
optimization bug, which we do not care anymore about.
2011-12-13 16:25:08 +01:00
dhewg
f6fa194044 Don't load EAX sound effects when EAX is disabled 2011-12-11 18:28:18 +01:00
dhewg
74acc03147 Enable OpenAL for all platforms
New scons variable 'OPENAL' (defaults to '1') to toggle the
OpenAL sound backend.

Enable via "s_useOpenAL 1".
2011-12-11 17:07:13 +01:00
dhewg
db65f7a61d Use system OpenAL 2011-12-11 17:07:13 +01:00
dhewg
690967c276 Split EAX usage off OpenAL
New define ID_OPENAL_EAX to enable the deprecated EAX on top
of OpenAL.
OpenAL Soft can now be used.
2011-12-11 16:56:11 +01:00
dhewg
f4406290d1 Move efxlib.h to sound/ 2011-12-11 16:07:56 +01:00
dhewg
b54bc73532 Move Windows only OpenAL files to sys/win32/ 2011-12-11 16:00:31 +01:00
dhewg
bd1fe41b0e Move the OpenAL stub to sys/stub/ 2011-12-11 14:44:30 +01:00
dhewg
26f7a392a8 Add sanity checks for scripting 2011-12-11 12:13:04 +01:00
dhewg
bc07d06307 Use __builtin_trap() for assertions on GCC and derivates 2011-12-11 11:48:51 +01:00
dhewg
1d7d57d1f5 Cleanup endian swap functions
There's no need to detect the endianess at runtime.
2011-12-11 11:41:41 +01:00
dhewg
4378246a3a Check pointer before accessing it
Not the other way around.
2011-12-10 20:02:07 +01:00
dhewg
a8b1d3a364 Fix POSIX net code for x86_64
Multiplayer working from 32bit dedicated server on FreeBSD with a
64bit Linux client.
2011-12-10 19:24:30 +01:00
dhewg
30850f8d9c Fix FS hashing for x86_64 2011-12-10 18:51:34 +01:00
dhewg
a957b75bc3 Fix MD5 hashing for x86_64 2011-12-10 18:51:01 +01:00
dhewg
b9435a432d Fix CRC32 hashing for x86_64 2011-12-10 18:48:09 +01:00
dhewg
d0198cc8b6 Fix R_ClipLineToLight signature 2011-12-10 15:36:17 +01:00
dhewg
bdb21d20c8 Fix wrong usage of memset() 2011-12-10 15:36:17 +01:00
dhewg
8d12d9af4f Fix wrong usage of loop variables 2011-12-10 15:36:17 +01:00
dhewg
6d03fac378 Fix binary op fail in idTarget_WaitForButton::Think 2011-12-10 15:36:17 +01:00
dhewg
670daf7dd6 Exclude default stdio libvorbisfile callbacks
Prevents warnings about those being usused.
2011-12-10 15:36:16 +01:00
dhewg
82aaccc1ad Use the local OSS headers 2011-12-10 15:36:16 +01:00
dhewg
1b8777a008 Get rid of GL_HARDLINK, always link against libGL
This kills the funky GL logging stubs, which unnecessarily
complicates the build process (think future cmake).
As for logging GL calls: Use apitrace for that
https://github.com/apitrace/apitrace
2011-12-10 15:36:16 +01:00
dhewg
9678020677 Fix compilation for *BSD
Change most __linux__ defines to __unix__ for all UNIX like systems.
2011-12-10 15:36:16 +01:00
dhewg
56bd47ac43 Fix Sys_FileTimeStamp return type
Sync with its header.
2011-12-10 15:36:15 +01:00
dhewg
5ee2e5b564 Fix and cleanup endianess defines
Use various defines set by the compiler to determine the
endianess of the target arch.
2011-12-10 15:36:15 +01:00
dhewg
04832863e8 Basic infrastructure to build on *BSD 2011-12-10 15:36:15 +01:00