Commit graph

4384 commits

Author SHA1 Message Date
Christoph Oelckers
dbb05c5f33 - remove use of builtin texture matrices.
- make matrix class single precision.
2014-07-13 20:41:20 +02:00
Christoph Oelckers
9230a20f18 - added some checks to the wall rendering code that will allow to disable the clip planes in many cases, even when a plane mirror portal is active. This also solves the precision issue with using world coordinates for clip checks. 2014-07-13 17:15:17 +02:00
Christoph Oelckers
00fcf4bc06 - for some reason using world coordinates for clipping in the shader is somewhat imprecise so the clip plane heights have to be adjusted a bit for it. 2014-07-13 13:25:42 +02:00
Christoph Oelckers
60dc2e1122 - some shader fixes. 2014-07-13 13:01:35 +02:00
Christoph Oelckers
d868f60f6c - since the clip planes for plane mirrors did not work anymore I reimplemented them using shader based logic. It still needs to be seen if this affects performance on older hardware. 2014-07-13 12:14:12 +02:00
Christoph Oelckers
7cbffc7c14 - test code removal. 2014-07-10 10:35:02 +02:00
Christoph Oelckers
a936629cec - use default fragment shader for burn and stencil shader, with the time consuming parts disabled by a #define, to avoid code duplication. 2014-07-10 10:33:07 +02:00
Christoph Oelckers
92185f96eb - fixed overflow with storing a sprite's dynamic light color in a PalEntry. 2014-07-01 09:52:41 +02:00
Christoph Oelckers
9a6bc64381 - use vertex array objects to manage vertex buffers. 2014-07-01 00:51:02 +02:00
Christoph Oelckers
5ee626459d - use model vertex buffer to render voxels. 2014-06-30 18:57:24 +02:00
Christoph Oelckers
f710518903 - use a uniform array to store vertex data to render dynamic stuff on GL 3.x hardware without the ARB_buffer_storage extension.
Due to the way the engine works it needs to render a lot of small primitives with frequent state changes.
But due to the performance of buffer uploads it is impossible to upload each primitive's vertices to a buffer separately because buffer uploads nearly always stall the GPU.
On the other hand, in order to reduce the amount of buffer uploads all the necessary state changes would have to be saved in an array until they can finally be used. This method also imposed an unacceptable overhead.
Fortunately, uploading uniform arrays is very fast and doesn't cause GPU stalls, so now the engine puts the vertex data per primitive into a uniform array and uses a static vertex buffer to index the array in the vertex shader.
This method offers the same performance as immediate mode but only uses core profile features.
2014-06-30 18:10:55 +02:00
Christoph Oelckers
6efefd9b7f - use vertex buffer to render MD3 models. 2014-06-30 18:02:52 +02:00
Christoph Oelckers
54297acde4 - removed obsolete gl_lightbuffer code.
This never worked properly and by now far better options are available to solve the problem of dynamic light data uploads.
2014-06-30 13:30:10 +02:00
Christoph Oelckers
9c5cec0056 - draw wipes with buffers
Only two things left that still use immediate mode directly: MD3 models and voxels.
2014-06-30 10:05:15 +02:00
Christoph Oelckers
1efc2938b7 - implement model vertex buffer and draw MD2 models using it instead of using the GLCommands from the model. 2014-06-29 23:24:16 +02:00
Christoph Oelckers
2cd1118aad Merge branch 'master' into Glew_Version_For_Real 2014-06-29 14:11:03 +02:00
Christoph Oelckers
a33b49c2c2 Merge branch 'master' of https://github.com/rheit/zdoom 2014-06-29 14:09:55 +02:00
Christoph Oelckers
9d1dbf4eab - fixed: FBufferedUniform1f didn'T work because it used an int as its buffered value. 2014-06-29 14:08:44 +02:00
Christoph Oelckers
d0e551060d - fixed: When the 3D floor init code was updated 5 years ago for Vavoom's latest changes to its 3D-floor implementation it accidentally set the 3D-floor's alpha as its desaturation. 2014-06-29 12:50:42 +02:00
Christoph Oelckers
ffcb6cb70a - added second vertex coordinate attribute for model interpolation. 2014-06-29 11:00:21 +02:00
Christoph Oelckers
08054ddc34 Merge branch 'master' into Glew_Version_For_Real 2014-06-29 08:53:43 +02:00
Christoph Oelckers
77277f4f75 Merge branch 'master' of https://github.com/rheit/zdoom 2014-06-29 01:10:51 +02:00
Christoph Oelckers
7d7f146ce1 - fixed: transferring a translation to a missile needs to check if the missile was spawned successfully. 2014-06-28 15:21:19 +02:00
Blzut3
c4bc5f7b97 Merge pull request #78 from alexey-lysiuk/fix_osx_build
Fix OS X build
2014-06-28 04:49:37 -04:00
alexey.lysiuk
65203760a8 Fix incorrect actor flag handling on big endian platforms 2014-06-28 11:00:08 +03:00
alexey.lysiuk
7b69c60af1 Use correct 'true' keyword 2014-06-28 11:00:01 +03:00
alexey.lysiuk
e6d468eb38 Use byte swapping functions from <libkern/OSByteOrder.h> on OS X
Remove inclusion of Core Foundation headers to avoid type conflicts with LZMA SDK.
2014-06-28 10:59:56 +03:00
Braden Obrzut
d941203ab0 - Fixed edward-san's typo.
- Cleared a warning.
2014-06-26 20:37:11 -04:00
Christoph Oelckers
28afd04aef Merge branch 'master' of https://github.com/rheit/zdoom
Conflicts:
	src/CMakeLists.txt
2014-06-27 01:10:09 +02:00
Braden Obrzut
19415668ec Merge branch 'gcc_aggressive_optimization' of github.com:edward-san/zdoom into edward-san-gcc_agressive_optimization 2014-06-26 18:11:32 -04:00
Braden Obrzut
1ae53473ff Merge branch 'edward-san-cmake_gcc_compatible' 2014-06-26 17:54:48 -04:00
Braden Obrzut
cb9877e7ff - Using USE_WINDOWS_DWORD on other platforms can cause problems. 2014-06-26 17:52:26 -04:00
Christoph Oelckers
0cb1547890 Merge branch 'master' of https://github.com/rheit/zdoom 2014-06-26 09:45:27 +02:00
Christoph Oelckers
270541f942 fixed compilation with latest LZMA SDK on Windows.
LZMA SDK recently added an #include <windows.h> to its headers, meaning it's no longer safe to include its headers globally in platform independent files.
The following changes were necessary:

- rename DWORD type in zipdir.c
- add USE_WINDOWS_DWORD and reorder includes in file_7z.cpp
- wrap LZMA decoder stream into a local struct that's declared anonymously in files.h and adjust files.cpp for this change.
2014-06-26 09:43:51 +02:00
Edoardo Prezioso
1a3ac9d0b3 - Simplify CMake GCC and Clang checking.
Introduce the variable 'ZD_CMAKE_COMPILER_IS_GNUC(XX)_COMPATIBLE' and replace any occurrence of '"${CMAKE_C(XX)_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C(XX)_COMPILER_ID}" STREQUAL "Clang"' with it. This makes it possible to add more GCC compatible compilers in just one place.
2014-06-26 01:23:41 +02:00
Christoph Oelckers
8aff59e704 Merge branch 'language_sdl' of https://github.com/edward-san/zdoom 2014-06-25 22:06:24 +02:00
alexey.lysiuk
0be30c782c Fix LZMA compilation on GCC with position-independent code (PIC) generation enabled
EBX register is used Global Offset Table in PIC
http://www.greyhat.ch/lab/downloads/pic.html
2014-06-25 20:11:05 +03:00
Christoph Oelckers
f4afc8cf1a Merge branch 'master' of https://github.com/rheit/zdoom 2014-06-24 12:32:29 +02:00
djcj
bdddea541f update lzma to v9.22 beta 2014-06-24 11:22:55 +02:00
Edoardo Prezioso
0e3bee6f30 - Enable 'language' feature on unix targets.
The sdl version of the function 'SetLanguageIDs' is very limited, comparing to the win32 counterpart, as it will try to accept only the language codes (ie 'enu', 'fr', 'ptb', etc). If a different string is provided, zdoom will default its language to English.
2014-06-23 20:02:40 +02:00
Christoph Oelckers
e15f80f640 Merge branch 'master' of https://github.com/rheit/zdoom 2014-06-23 09:27:30 +02:00
Christoph Oelckers
e2e71e072e removed error suppression code from shader compilation.
With GL 2.x support the engine still had something to fall back on, with that removed it needs to abort.
2014-06-23 09:26:29 +02:00
Christoph Oelckers
4f599b7b4d Merge branch 'master' of https://github.com/binarycrusader/zdoom 2014-06-22 09:00:23 +02:00
Christoph Oelckers
e56e525d0f - A_FireCustomMissile transfer tranlsation flag, code submission by jpalomo 2014-06-22 08:55:21 +02:00
Shawn Walker
6164807e97 - fix x64 visual studio linking for common controls 2014-06-21 22:49:42 -07:00
Shawn
640a6156e5 Merge pull request #1 from rheit/master
Sync with zdoom trunk
2014-06-21 20:38:05 -07:00
Christoph Oelckers
1f0c69a0e9 - some cleanup after GL 2.x code removal
- reinstated burn warp with shader based code.
2014-06-21 16:41:45 +02:00
Christoph Oelckers
2925c96b59 removed all GL 2.x code.
After thinking about it for a day or so I believe it's the best option to remove all compatibility code because it's a major obstacle for a transition to a core profile.
2014-06-21 15:50:32 +02:00
Christoph Oelckers
d5dceb6874 - changed alpha texture handling to avoid using the deprecated GL_ALPHA8 texture format unless we have a compatibility context of an older GL version. 2014-06-21 12:52:19 +02:00
Christoph Oelckers
ca76c2525e - more vertex buffer stuff for models, still not tested. 2014-06-19 22:24:33 +02:00