Commit graph

265 commits

Author SHA1 Message Date
dhewg
3d692b58de Prevent assert() while saving and restoring events
The argument size of each event is checked in debug builds
and this change was missing from the x86_64 commits.

Surprisingly this didn't trigger yet with the original game,
only with the mod 'Classic Doom 3'.
2012-01-12 19:05:52 +01:00
dhewg
91bca094c0 Fix out of bounds access for buggy UIs
Seen with the main menu on the mod 'Classic Doom 3'.
2012-01-12 19:05:51 +01:00
dhewg
3e07208cae New CVar s_device to choose the audio device to use 2012-01-11 22:52:05 +01:00
dhewg
35bd70ea46 Improve environment suit sfx
Set AL_LOWPASS_GAIN like EAX did under the hood.
Set the same filter via AL_DIRECT_FILTER on sources.

This should bring the overall sfx closer to EAX:
<kaan_> it sounds awesome

All infos provided by KittyCat from #openal.
2012-01-11 19:29:35 +01:00
dhewg
ad48afdbd7 Fix compilation via scons
SConscript.core was missing jpeg_memory_src.cpp.
Reported by ameyp.

Fixes #2.
2012-01-11 18:56:38 +01:00
dhewg
16958d070b Fix [record|play|time]Demo for x86_64
These are still fragile due to restored stale pointers (!).
But at least the vanilla demos can now be used to check for
performance regressions.
2012-01-10 22:54:01 +01:00
dhewg
d8acc43aca Port the D3XP environment suit effect to EFX
Use a AL_LOWPASS_GAINHF filter to muffle sfx.
2012-01-10 17:45:37 +01:00
dhewg
8ea0f8f0d5 Clamp EFX reverb effect values
The values might be slightly out of range due to the scale
conversion. Clamp them so OpenAL doesn't refuse them.
2012-01-10 17:45:37 +01:00
dhewg
bdbee3543c Cleanup EFX code
Add error checking.
Add debug printf()s, enable via EFX_VERBOSE.
2012-01-10 17:45:37 +01:00
dhewg
b8f9829255 Use the correct unit when passing values for EFX
The gain values are expressed as millibels in the .efx files
and need to be converted to normalized floating points.
Get the EAX4 EAXREVERBFLAGS_DECAYHFLIMIT from the "flags" token
and set AL_EAXREVERB_DECAY_HFLIMIT accordingly.

All infos provided by KittyCat from #openal, many thanks!
2012-01-09 00:52:30 +01:00
dhewg
ece2adbdcd Port EAX to EFX
First attempt at porting the EAX reverb code to EFX.
This only works when the ALC_EXT_EFX extension is supported by
the OpenAL vendor (which is not the case for the OSX supplied
framework, use OpenAL soft instead).

The current stable version of OpenAL Soft (v1.13 as of this
writing) can barely handle this additional workload, current
master is highly recommended when using this feature.
2012-01-08 22:04:56 +01:00
dhewg
1ce658e835 Get rid of memory status functions
Unused.
2012-01-08 12:24:58 +01:00
dhewg
fe7b32d47e Get rid of dead prototype 2012-01-08 12:24:58 +01:00
dhewg
6a1d6cb842 Always allow multiple instances 2012-01-08 12:24:58 +01:00
dhewg
438685e6e6 Get rid of Sys_FlushCacheMemory()
Stub on all platforms.
2012-01-08 12:24:58 +01:00
dhewg
9542663097 Get rid of Sys_DefaultCDPath()
Stub on all platforms.
2012-01-08 12:24:58 +01:00
dhewg
79fa35d0ec Get rid of ID_MCHECK
mcheck() is not thread safe, use MALLOC_CHECK_ or TCMalloc
instead.
2012-01-08 12:24:57 +01:00
dhewg
5f8712902c Return at least 64MB VRAM in case the detection fails 2012-01-08 12:24:57 +01:00
dhewg
a35d8c08b6 Fix usage of wrong define in sys/cpu.cpp 2012-01-08 12:24:57 +01:00
spiral
468b266860 Remove hard-wired -framework OpenAL
We already link to OPENAL_LIBRARY further down.

Log some debug OpenAL info, mainly so OSX users can check they are not
using Apple's OpenAL. OpenAL Soft is recommended as it fixes many
issues.

I specify it as follows:

cmake -DOPENAL_LIBRARY=/usr/local/lib/libopenal.dylib -DOPENAL_INCLUDE_DIR=/usr/local/include -GXcode ../neo/

(because FindOpenAL.cmake prefers the /System frameworks)
2012-01-08 12:24:45 +01:00
dhewg
496095139b README: Describe the compiling process for this tree 2012-01-07 21:45:20 +01:00
dhewg
daf48501ce README: Get rid of "improved version" paragraph
This _is_ an improved version ;)
2012-01-07 21:00:46 +01:00
dhewg
1602057e67 README: Fix whitespace errors 2012-01-07 21:00:04 +01:00
dhewg
baa81ed956 README: glext.h is not part of this tree anymore 2012-01-07 20:58:32 +01:00
dhewg
8a1c7ca915 README: OSS headers are not part of this tree anymore 2012-01-07 20:58:32 +01:00
dhewg
135a25c816 README: libXNVCtrl is not part of this tree anymore
Neither is extutil.h, which was used by libXNVCtrl.
2012-01-07 20:58:32 +01:00
dhewg
59ecd7b163 README: OpenAL is not part of this tree anymore 2012-01-07 20:58:32 +01:00
dhewg
f30c87ecdb README: lib[ogg|vorbis] are not part of this tree anymore 2012-01-07 20:58:31 +01:00
dhewg
035dcbcd46 Move jpeg_memory_src()
Found another copy in renderer/Cinematic.cpp. Move the
newer implementation from renderer/Image_files.cpp in its
own file and use the libjpeg v8c license blob (which is where
this code comes from).

Adapt README too with the v8c license.
2012-01-07 20:57:07 +01:00
dhewg
672f7cf58e README: libcurl is not part of this tree anymore 2012-01-07 20:17:25 +01:00
dhewg
fcc947433b Disable a few MSVC warnings
These just spam the console. Some are useless, some need to be
looked at at some point.
2012-01-07 19:01:54 +01:00
dhewg
47e486b62a Add SDL_win32_main.c
Don't link against SDLmain.[a|lib], always compile it.
We can use pure C MinGW cross compiled libraries with MSVC, and
this is the only static library used.
2012-01-07 19:01:53 +01:00
dhewg
eb2ecfa22a Add support for the doom3-libs repo
Single CMake variable "DOOM3LIBS" to point to the repo of
binaries to make CMake find libraries from there.
2012-01-07 19:00:44 +01:00
dhewg
b3085e03b4 Fix sys/win32/* for x86_64 2012-01-07 19:00:43 +01:00
dhewg
4927299cb9 Include malloc.h for alloca for MinGW
Newer versions of MinGW do not seem to require this, but older
ones do.
2012-01-07 15:40:22 +01:00
dhewg
82a87863ff Rename FILE_[EXEC|OPEN] due to conflict
Some MinGW versions already define it.
2012-01-07 15:40:18 +01:00
dhewg
989b812a6e Cleanup DOOMController.mm
Cleanup headers and use MAXPATHLEN.
2012-01-05 00:24:16 +01:00
dhewg
6fa12c3a44 Get rid of the NSObject in DOOMController.mm
SDLmain.m does the bulk of the work for us, so get rid of
the DOOMController NSObject, move the quakeMain() contents to
main() and let SDL do its thing.
2012-01-05 00:24:16 +01:00
dhewg
532b642222 Get rid of checkOS() and checkDVD()
Former is already handled by cmake via -mmacosx-version-min=
and the latter is just a stub.
2012-01-05 00:24:15 +01:00
dhewg
8e5702ef36 Get rid of applicationShouldTerminate()
Redundant, already handled by SDL_QUIT event.
2012-01-05 00:24:15 +01:00
dhewg
23752a2cd2 Get rid of applicationDidFinishLaunching()
SDL already implements this for us and the assert()s are
already part of idlib.
2012-01-05 00:24:15 +01:00
spiral
ec0f836f41 Generate an .app bundle for OSX
Add missing SDLMain and icon/resource files to generated .xcodeproj

Now builds on Lion in XCode4 with the 10.6 SDK using LLVM-GCC4.2.

Also tested on WinXP in VS 9 2008 Professional, I don't appear to have
broken anything there, stuff like MACOSX_BUNDLE_INFO_PLIST is
effectively ignored.
2012-01-05 00:24:15 +01:00
spiral
6453bce10c We don't need XOPEN_SOURCE deprecated content
Just what's in sys/ucontext.h specifically.
2012-01-05 00:24:15 +01:00
scottWakeling
c08249b9db Fix semi-colons being inserted into ldflags
It is causing clang++ to error when linking game{cpu}.dylib
2012-01-05 00:24:14 +01:00
dhewg
d4ec9cc87f OSX .dylib's do not get a CPU suffix 2012-01-05 00:24:14 +01:00
dhewg
bf1f05bd87 Rename game${cpu}-d3xp to d3xp${cpu} 2012-01-05 00:24:14 +01:00
dhewg
7f0b7b54ec Drop the cpu suffix on binaries 2012-01-05 00:24:14 +01:00
dhewg
522c5bbccf R_GetModeInfo() doesn't need to be public on OSX
Remove redundant special case.
2012-01-05 00:24:14 +01:00
dhewg
1fed72fbb4 Get rid of Sys_DoPreferences()
The OSX backend was the only one utilizing this to set CVars
for the video mode.
Not required anymore since its now based on SDL.
2012-01-05 00:24:13 +01:00
dhewg
3c90c12605 Don't link against X11 libraries
Not required anymore. All backends use SDL based implementations
now.
2012-01-05 00:24:13 +01:00