Commit Graph

4476 Commits

Author SHA1 Message Date
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 dd05e564cf - this needed more fixes... 2014-06-29 14:32:50 +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
Christoph Oelckers 5944894138 - create vertex buffer data for MD2/DMD models. 2014-06-19 17:06:26 +02:00
Christoph Oelckers 3e9b9c280b - initialize model data at engine start, not at level start. 2014-06-19 15:22:00 +02:00
Christoph Oelckers 412d6499d9 - removed the voxel vertex buffer because it needs to be gone before implementing a model vertex buffer. 2014-06-19 14:46:55 +02:00
Christoph Oelckers 03916d75de - cleaned up MD3 rendering and merged RenderFrame and RenderFrameInterpolated into one function. 2014-06-19 13:58:49 +02:00
Christoph Oelckers 59522f7065 - simplified MD2 drawing code as preparation for a buffer based implementation. 2014-06-19 13:37:30 +02:00
Christoph Oelckers 6457ced53f Merge branch 'master' into Glew_Version_For_Real 2014-06-19 11:57:36 +02:00
Christoph Oelckers 7374cd34cf Merge branch 'master' of https://github.com/darealshinji/gzdoom 2014-06-19 11:20:47 +02:00
Christoph Oelckers d30bf6768e Merge branch 'master' of https://github.com/rheit/zdoom 2014-06-19 11:20:38 +02:00