Commit graph

291 commits

Author SHA1 Message Date
Christoph Oelckers
ef98757c7c - replaced finesine for texture warping with a smaller custom table, based on the old 2005 FP code, but fixes the generation of the sine table.
- removed all remnants of finesine and deleted tables.c and tables.h.
2016-04-28 15:59:37 +02:00
Christoph Oelckers
fe973ba442 - tried to add precompiled headers to fastmath sources as well, but VC++ doesn't seem to want to play along. So I left this stuff in but disabled the precompilation until a solution can be found. 2016-04-10 13:54:42 +02:00
Christoph Oelckers
9cc873ecdd - enable use of precompiled headers for MSVC. Thanks to a small CMake script I recently found this could be done non-invasively.
Due to the VC++ 2015 headers being rather bloated (the average include size per source is 400-500kb) this provides a noticable compile speedup, although right now this only covers the game code, so there should be more room for improvement.
2016-04-10 13:08:54 +02:00
Christoph Oelckers
dc72e7f3c2 - removed the check for VA_COPY from CMakeLists.txt.
This is because nothing uses va_copy anymore and it's a mandatory part of C++11, therefore always available.
2016-04-09 22:07:14 +02:00
alexey.lysiuk
daa112e2ac Fixed OS X compilation after floating point merge
Header files from Carbon framework caused a few symbol conflicts
2016-04-09 20:54:04 +02:00
Christoph Oelckers
d87f861e87 Merge branch 'master' into floatcvt
# Conflicts:
#	src/p_spec.cpp
#	src/p_spec.h
2016-03-28 22:23:41 +02:00
Christoph Oelckers
59920095af - separated pushers into their own file. 2016-03-28 21:57:22 +02:00
Christoph Oelckers
a46a4c81b1 Merge branch 'master' into floatcvt
# Conflicts:
#	src/p_lnspec.cpp
#	src/p_spec.cpp
#	src/p_spec.h
2016-03-28 17:46:19 +02:00
Christoph Oelckers
b5f333798e - moved all scroller related code into its own file, including the DScroller class definition. 2016-03-28 17:27:55 +02:00
Christoph Oelckers
11e613f578 Merge branch 'master' into floatcvt
# Conflicts:
#	src/g_doom/a_revenant.cpp
2016-03-21 01:28:50 +01:00
Randy Heit
baa6dc0568 Add zcc-parse.c and .h to the ZScript project folder 2016-03-20 15:57:00 -05:00
Randy Heit
2a394d0cb8 Do not copy lemon grammars to the output directory
- Having my edits to the grammar disappear because Visual Studio had
  opened the copy instead of the original was super annoying. Using the -C
  option with Lemon, this problem is avoided because there are no copies
  to worry about.
2016-03-20 14:34:44 -05:00
Christoph Oelckers
51b05d331d - replaced AActor::vel and player_t::Vel with a floating point version.
- Converted P_MovePlayer and all associated variables to floating point because this wasn't working well with a mixture between float and fixed.

Like the angle commit this has just been patched up to compile, the bulk of work is yet to be done.
2016-03-20 00:54:18 +01:00
Christoph Oelckers
c64eee5b15 Merge branch 'master' into float
# Conflicts:
#	src/g_heretic/a_hereticweaps.cpp
#	src/p_map.cpp
#	src/p_mobj.cpp
#	src/p_things.cpp
#	src/portal.cpp
2016-03-15 00:16:13 +01:00
Braden Obrzut
93be5aca05 - Fixed: Modern versions of GCC on PowerPC inserted padding to the end of pragma packed structures.
- Worked aorund modern GCC bug where C++ exceptions in Objective-C++ code would result in an ICE (bug is already on their tracker, but I doubt it will be fixed unless I decide to dig into the issue myself).
- Turn off fused floating point instructions since these can cause slight deviations in floating point code.
- Use -static-libgcc when compiling on the Mac with GCC since we need to use a custom version of GCC to do so now.
- Note: ZDoom will currently still crash on exit on PowerPC since it seems to be deciding that NameManager needs to be destructed before the console commands.
2016-03-13 01:14:08 -05:00
Christoph Oelckers
161d03231a - added custom math routines for reliability. 2016-03-11 15:45:47 +01:00
Edoardo Prezioso
cd85f6768c - Improve Mac GCC errors fix to work only for GCC.
This fixes Clang complaining about unknown command option '-Wno-unused-but-set-variable' when compiling dumb.
Also I got no new warnings on Clang by excluding '-Wno-unused-result'.
2016-02-27 23:49:02 +01:00
Braden Obrzut
6baa1b0674 - Compile with -std=c++14 or -std=c++11 on GCC/Clang.
- Fixed initialization crossing goto.
2016-02-27 02:20:34 -05:00
Edoardo Prezioso
d1502b1086 - Simplify expressions inside some else/endif.
We aren't bound to old cmake anymore.
2016-02-20 11:38:30 +01:00
Edoardo Prezioso
3dcc6d0330 [fmod] Improve the checks for fmod 4.44.
- The FMOD 4.44 linux package contains both 32 and 64-bit versions, with the folder name without the '64' suffix for 64-bit.
- Add minor version '61' so that the latest FMOD package (at the time of this commit) can be detected and compiled successfully.
2016-02-20 11:38:29 +01:00
Edoardo Prezioso
f338e5f1c4 - Apply the fast math flags for non-MSVC, too.
Move the fast flags string creation in the main cmake file and use it where needed.
2016-02-18 23:13:02 +01:00
Christoph Oelckers
45108e9bb8 - added two missing files to CMakeLists.txt. 2016-02-16 12:52:45 +01:00
Randy Heit
01bed05275 Do not use fast math for the node builder
- The node builder generates data used by the playsim, so should be as
  consistant as we can manage across compilers and architectures.
2016-02-12 16:27:47 -06:00
Christoph Oelckers
b818624f58 - enabled fast math for all known non-playsim files in the CMake project. 2016-02-12 12:51:09 +01:00
Braden Obrzut
f33993dcb5 - Load OpenAL at runtime for all platforms because I can't think of a good reason not to handle them all the same right now. 2016-02-09 22:40:19 -05:00
Christoph Oelckers
f625be61a2 - fixed: CMake should not disable OpenAL on Windows if it can't find the library (which is neither needed nor requested anymore.) 2016-02-07 13:30:28 +01:00
coelckers
1480fa7579 Merge pull request #542 from alexey-lysiuk/fix_openal_nonwin
Fixed build with OpenAL on non-Windows systems
2016-02-06 20:11:48 +01:00
Braden Obrzut
1101546e9c - Fixed: Possible CMake wrong number of parameters configuration error. 2016-02-06 13:06:25 -05:00
alexey.lysiuk
46267f52d6 Fixed build with OpenAL on non-Windows systems
We still need to link with OpenAL library on OSes other than Windows
2016-02-06 10:58:25 +02:00
Christoph Oelckers
34216ddd8e Merge branch 'master' of https://github.com/rheit/zdoom
# Conflicts:
#	src/CMakeLists.txt
2016-02-06 05:28:53 +01:00
Christoph Oelckers
275ced288b - we no longer link to the OpenAL import library so the respective handling can be removed from CMakeLists.txt. 2016-02-06 05:26:37 +01:00
Randy Heit
0892650465 Don't add /delayload for OpenAL stuff if OpenAL is disabled
- Also, I believe openal32.dll no longer needs a /delayload flag since
  it's dynamically loaded now.
2016-02-05 22:18:53 -06:00
Braden Obrzut
dce3f0f757 - Bump CMake version requirement to 2.8.7. This means that generator expressions must be supported as well as empty else and endif expressions (like most sane languages). ZDoom probably didn't work with 2.4 anymore anyway. 2016-02-05 21:19:29 -05:00
Christoph Oelckers
e88901f4b7 - added the EE-Extradata parser I wrote for GZDoom so I can use the Vaporware demo map for testing portal stuff. 2016-02-05 23:51:28 +01:00
Braden Obrzut
ba54d73e07 Merge branch 'portals2_visual' 2016-02-05 00:10:46 -05:00
Randy Heit
b3b0886b64 Merge branch 'scripting'
Conflicts:
	src/actor.h
	src/g_doom/a_doomweaps.cpp
	src/g_hexen/a_blastradius.cpp
	src/p_enemy.cpp
	src/p_enemy.h
	src/thingdef/thingdef.h
	src/thingdef/thingdef_codeptr.cpp
	wadsrc/static/actors/constants.txt
2016-02-04 15:17:22 -06:00
Braden Obrzut
4d225e7a00 - Fixed: Mac GCC errors due to not recognizing the newly disabled warnings. 2016-01-24 23:03:59 -05:00
Braden Obrzut
20f7f524ca - Don't link against sndfile and mpg123 if not compiling with OpenAL support. 2016-01-23 20:09:39 -05:00
Braden Obrzut
88a616da75 - Removed what appears to be a debug breakpoint.
- Cleared some GCC and Clang warnings. Mostly static analysis false positives, but one of them generated a pretty massive warning in a release build.
- Use -Wno-unused-result since I doubt we're going to address those unless they actually prove to be a problem (and they only appear in release builds).
2016-01-23 19:36:13 -05:00
Braden Obrzut
f3f77a1ba0 Merge branch 'master' into portals2_visual 2016-01-18 09:45:42 -05:00
Christoph Oelckers
bf747075e8 Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/g_hexen/a_clericstaff.cpp
	src/p_enemy.cpp
	src/p_interaction.cpp
	src/p_local.h
	src/p_mobj.cpp
	src/thingdef/thingdef_codeptr.cpp
2016-01-17 20:57:55 +01:00
Christoph Oelckers
cfcd2668cc Merge commit '772a5724313f2ad0bd6828fcc28545a9ee5e6068' into scripting
Conflicts:
	src/p_pspr.cpp
	src/thingdef/thingdef_codeptr.cpp
2016-01-17 20:00:45 +01:00
Braden Obrzut
0c3b468e42 Merge branch 'osx_start_wnd' 2016-01-11 20:47:06 -05:00
Randy Heit
bf31d66d31 Use a better packing algorithm for the texture atlases
- The old algorithm is something I threw together that produced decent,
  but not spectacular results since it had a tendency to waste space by
  forcing everything onto "shelves".
  The new packer is the Skyline-MinWaste-WasteMap-BestFirstFit algorithm
  described by Jukka Jylanki in his paper *A Thousand Ways to Pack the Bin - A
  Practical Approach to Two-Dimensional Rectangle Bin Packing*, which can
  currently be read at http://clb.demon.fi/files/RectangleBinPack.pdf
  This is minus the optimization to rotate rectangles to make better fits.
2016-01-08 22:37:06 -06:00
Braden Obrzut
a1e0ac0b71 Merge branch 'osx_start_wnd' of git://github.com/alexey-lysiuk/gzdoom into osx_start_wnd 2016-01-04 22:11:46 -05:00
Randy Heit
900937929e Use critical sections for WildMidi locking
...because when you're trying to be thread-safe, it's generally a good
idea to use mechanisms that work across multiple processor cores.
2015-12-29 17:55:19 -06:00
Christoph Oelckers
fe2dcfd588 - refactored the GUS/Timidity player's path building code so that it can also be used by WildMidi.
- fixed crash during sound reset - in this case I_ShutdownMusic should not close the WildMidi player.
2015-12-29 20:38:08 +01:00
alexey.lysiuk
3af95e0aea Added native startup window for OS X 2015-12-29 15:19:42 +02:00
alexey.lysiuk
0efdccd942 Separated POSIX's i_system.cpp from native OS X implementation 2015-12-29 14:52:18 +02:00
Randy Heit
afc36544b7 Add a WildMidi softsynth device
- This removes the preceding psuedo MIDI device for WildMidi.
2015-12-28 22:16:35 -06:00