Commit Graph

4212 Commits

Author SHA1 Message Date
Christoph Oelckers 993b6c3066 - fixed typo in FraggleScript item class list 2014-07-28 17:13:42 +02:00
Christoph Oelckers 192daf1d5a Merge branch 'master' into Glew_Version_For_Real 2014-07-27 21:57:38 +02:00
Christoph Oelckers ece10bb57f - fixed several incorrect uses of abs instead of fabs. 2014-07-27 21:57:05 +02:00
Christoph Oelckers c9c93a58a2 - fixed bad constant and potential use of uninitialized variable. 2014-07-27 21:55:25 +02:00
Christoph Oelckers 3d24f58bf0 - fixed conditions for disabling the flat vertex buffer. 2014-07-27 20:18:32 +02:00
Christoph Oelckers 29a56fe01c Merge branch 'master' into Glew_Version_For_Real 2014-07-27 17:59:50 +02:00
Christoph Oelckers 925305aa05 - fixed: The code for updating vertex dirty state had been completely missing. I have no idea when it disappeared... 2014-07-27 17:58:51 +02:00
Christoph Oelckers 4904abfc1c - forgot test stuff. 2014-07-27 13:47:37 +02:00
Christoph Oelckers 97341fcb31 - reenabled the flat vertex buffer for GL 3.x NVidia hardware. On AMD and Intel it'll stay off because past tests have shown that it won't improve performance at all. 2014-07-27 13:46:35 +02:00
Christoph Oelckers c1d8f235c2 - renamed some stuff that clashed with gl function names. 2014-07-27 12:33:54 +02:00
Christoph Oelckers 77d9d9b2a5 - fixed: For updating the model VAO's attribute pointers it is necessary to first bind the vertex buffer we need to refer to, because this is not part of the VAO's state. 2014-07-27 11:53:18 +02:00
Christoph Oelckers 6d4eb7f62d - changed handling of DF_NO_COOP_WEAPON_SPAWN dmflag so that weapons are not determined by class type but by a newly added flag WEAPONSPAWN, to allow CustomInventory replacements to act like weapons when being spawned. 2014-07-27 10:07:37 +02:00
Christoph Oelckers e07d06fa2a Merge branch 'master' into Glew_Version_For_Real 2014-07-26 22:26:58 +02:00
Christoph Oelckers 7ae25906fd - fixed: fog must be disabled before drawing the HUD model, not after it. 2014-07-26 22:26:17 +02:00
Christoph Oelckers bdf5bbd34e - make the shader timer part of the render state. 2014-07-26 20:56:10 +02:00
Christoph Oelckers 637aa9d77e - some adjustments to allow testing the different rendering methods. 2014-07-26 18:43:54 +02:00
Christoph Oelckers 0e647e0f2b Merge branch 'master' into Glew_Version_For_Real 2014-07-26 10:37:00 +02:00
Christoph Oelckers 8465a5f5d7 Merge branch 'master' of https://github.com/rheit/zdoom 2014-07-26 10:23:41 +02:00
Christoph Oelckers 6c9a818220 - allow different render modes if persistent buffers are not available (untested!) 2014-07-26 10:23:07 +02:00
Christoph Oelckers 79f3984346 Merge branch 'upstream' of https://github.com/Edward850/zdoom 2014-07-26 10:17:47 +02:00
Christoph Oelckers 5576892c01 Merge branch 'redundant_offsetof_macro' of https://github.com/edward-san/zdoom 2014-07-26 10:17:25 +02:00
Christoph Oelckers a21f01bc5f - added jpalomo's submission to make freelook a 3-state setting, like crouch and jump. This required moving around the flags a bit so demo compatibility had to be bumped. It may also require adjustment for launchers that can set the dmflags. 2014-07-26 10:15:07 +02:00
Edward Richardson 0276760a2d Animate switches when bumped 2014-07-19 21:00:12 +12:00
Edoardo Prezioso ae2f7b8707 - Remove a duplicate of a custom offsetof macro.
It's already defined in cmdlib.h .
2014-07-19 00:53:18 +02:00
Edoardo Prezioso 484eb347ca - Fixed: wrong FString empty string check.
Even when '+logfile' argument was omitted, the console would print 'Could not start log', because 'logfile != NULL' was used as a check for the presence of '+logfile' argument, but the internal buffer of FString is never NULL, so the right check is 'logfile.isNotEmpty()'.
While I'm at it, I fixed another bad check for 'pagename'.
2014-07-18 01:15:41 +02:00
Christoph Oelckers e0b756e511 - fixed: The cubemapped skybox renderer did not set up the model matrix properly. 2014-07-17 10:04:20 +02:00
Christoph Oelckers f64428dd2a Merge branch 'master' into Glew_Version_For_Real 2014-07-17 09:31:18 +02:00
Christoph Oelckers b78b566b0a Merge branch 'master' of https://github.com/rheit/zdoom 2014-07-17 09:30:50 +02:00
Christoph Oelckers eb9d2d9917 - reactivate compatibility profile so that immediate mode drawing can be used on older hardware not supporting persistently mapped buffers.
- reactivate alpha testing per fixed function pipeline
- use the 'modern' way to define clip planes (GL_CLIP_DISTANCE). This is far more portable than the old glClipPlane method and a lot more robust than checking this in the fragment shader.
2014-07-17 02:37:18 +02:00
Edward Richardson f99a84b498 Changes to maketic/menu/console updates
- Console and Menu will now update cleanly during stalls.
- Moved net adaption so uncapped framerate will always use it.
2014-07-17 11:29:30 +12:00
Braden Obrzut 84cb49b074 - Fixed: Legacy render style array was in the wrong order. 2014-07-16 19:19:20 -04:00
Braden Obrzut b6bbdf6195 - Call C_DeinitConsole in I_Quit so that we can be sure that Printf will work for as long as possible. Otherwise ZDoom will crash when ending a demo recording. 2014-07-16 18:59:49 -04:00
Braden Obrzut bd5bf2a40a - Expand environment variables for autoload paths.
- Forgot to save the French translation file for the last commit, so a few more corrections there.
2014-07-15 21:26:26 -04:00
Braden Obrzut fa5dfe79ae - Disable cubic and spline resamplers on 64-bit with fmod 4.26 since they crash. 2014-07-15 21:07:07 -04:00
Braden Obrzut 2020769967 - Fixed: Player turned into a zombie if exiting telefragged in buddha mode.
- Fixed: Players could drop their inventory after dying.
2014-07-15 20:16:28 -04:00
Christoph Oelckers 6b9d6787d9 - move models into their own draw list to avoid frequent buffer changes.
- same for SKYHACK walls. Although rare, they would get in the way of optimizing the draw calls if not being separated out.
2014-07-15 21:16:59 +02:00
Christoph Oelckers b8bcbe819b - removed texture based dynamic lighting. For GL 3.x the shader approach is always better.
- fixed: sky fog was not unset.
2014-07-15 20:49:21 +02:00
Christoph Oelckers fb6b4238ed - fixed: glProgramUniform is only present from GL 4.1 or a specific extension so it may not be used on systems not supporting it. 2014-07-15 02:48:59 +02:00
Christoph Oelckers fc0cf4f998 - GZDoom now runs on an OpenGL core profile. :)
It's probably still necessary to replace GLEW with another loader library. GLEW is pretty much broken on core OpenGL without some hacky workarounds...
2014-07-15 02:26:23 +02:00
Christoph Oelckers 6046b11b4f - all shaders now compile in core profile. 2014-07-15 01:05:53 +02:00
Christoph Oelckers eedc5a69be - replaced builtin position vertex attribute. 2014-07-15 01:02:48 +02:00
Christoph Oelckers 1b7f5a2e6a - replaced builtin texture coordinate vertex attribute. 2014-07-15 00:59:01 +02:00
Christoph Oelckers 5a322742c3 - remove use of builtin and deprecated color vertex attribute. 2014-07-15 00:37:13 +02:00
Christoph Oelckers ed8a21fd86 - replaced deprecated alpha testing with shader code. 2014-07-14 21:14:43 +02:00
Christoph Oelckers 84a49e37ee - handle normals for spheremapped mirror surfaces using non-deprecated features.
- move all WGL references out of global header files so that global wgl header include is no longer necessary
2014-07-14 19:54:07 +02:00
Christoph Oelckers ed5ee4e8d1 - removed some obsolete init stuff and some deprecated constants. 2014-07-14 18:48:46 +02:00
Christoph Oelckers 4df25d951b Merge branch 'master' into Glew_Version_For_Real 2014-07-14 16:51:41 +02:00
Christoph Oelckers 4297bd9a51 Merge branch 'master' of https://github.com/rheit/zdoom 2014-07-14 00:32:16 +02:00
Christoph Oelckers 1f2f7616e1 - remove timing of matrix application method 2014-07-14 00:31:10 +02:00
Christoph Oelckers 150135a07d - reinstate drawcall timing. 2014-07-13 23:14:28 +02:00
Christoph Oelckers ce3653f6e1 - remove all uses of builtin matrices. 2014-07-13 23:13:40 +02:00
Christoph Oelckers 2214c0ac06 - remove all uses of builtin matrix manipulation. Only glLoadMatrix for view and projection matrix are left. 2014-07-13 22:37:34 +02:00
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 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 004cf5748c - fixed: FraggleScript's SpawnedThings array must always be checked for owned inventory items. The 'mapthingnumexist' function forgot to do that. 2014-07-13 09:43:28 +02:00
Christoph Oelckers 400a573e65 - fixed: ACS's LineAttack function with a valid tid still used the activator as the attack's source. 2014-07-13 09:12:46 +02:00
Edward Richardson e1130b860e Serialize FriendPlayer 2014-07-13 14:44:22 +12: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 e691341541 Merge branch 'master' of https://github.com/rheit/zdoom 2014-07-09 09:16:30 +02:00
Christoph Oelckers e1729a9ec2 - fixed compilation with VC++2005 solution.
hu_stuff.h defined some callbacks for qsort without STACK_ARGS which causes problems with this solution's Release setting which uses __fastcall calling convention.
2014-07-09 09:15:51 +02:00
Edoardo Prezioso d83f048858 - Miscellaneous CMakeLists.txt fixes.
- fixed a CMake warning about uninitialized use of the variable CROSS_EXPORTS in the tools subfolder when CMAKE_CROSSCOMPILING is off;
- fixed a variable typo: CMAKE_CURRENTY_BINARY_DIR instead of CMAKE_CURRENT_BINARY_DIR;
- in src/CMakeLists.txt, fixed a missing merge of a portion of code from maint branch to master.
2014-07-01 19:13:05 +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 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
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
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
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
darealshinji 7757755e40 fix detection of libglew library on GNU/Linux 2014-06-19 10:43:37 +02:00
Edward Richardson 2d896d2b47 Added wi_autoadvance
- Prevents an absent player from stopping the intermission
2014-06-17 20:26:49 +12:00
Edward Richardson a3a7ee569f Multi-intermission waits for all players + changes
- Added a segment of code that now makes the intermission wait for all
players before advancing, instead of continuing on any player. A "ready
icon" shows to reflect this.

- The Deathmatch intermisson couldn't show the ready icon (because it
just used the ingame scoreboard), so a proper intermission was added,
which reflects the same design as the coop scoreboard.

- The colour column wasted more space then it should have needed, so it
was replaced with player colour backgrounds.

- Slight y offset adjustments to make everything fit in 320x200
properly.
2014-06-17 19:46:10 +12:00
Christoph Oelckers 13c4e993ba Merge branch 'master' into Glew_Version_For_Real 2014-06-15 21:57:59 +02:00
Christoph Oelckers 5a0f1a882a Merge branch 'master' of https://github.com/rheit/zdoom 2014-06-15 21:57:06 +02:00
Christoph Oelckers 965a2a2d79 definition for model vertex buffer. 2014-06-15 21:56:37 +02:00
Christoph Oelckers e6f14b055a - use buffer based rendering for dynamic light pass and horizon portals. 2014-06-15 20:28:23 +02:00
Edward Richardson 2838c4b25b Prediction was rebuilding too much thinglist data
- Stopped player prediction from rebuilding more sector list data then
the player originally had.
2014-06-16 03:34:33 +12:00
Christoph Oelckers 1aaa1b7bad - removed gl_usevbo CVAR because with recent code changes it has become useless. If GL_ARB_buffer_storage is present, buffers will always be used. 2014-06-15 12:12:24 +02:00
Christoph Oelckers ea332383a8 - convert skybox rendering to use the buffer interface. 2014-06-15 11:50:54 +02:00
Christoph Oelckers 6b038a5dae - fixed: GLPortal::DrawPortalStencil must apply the render state before drawing anything. 2014-06-15 10:30:03 +02:00
Christoph Oelckers 2abf1644a4 - fixed: Plane height changes only updated the first buffered vertex for the respective plane. 2014-06-15 10:18:46 +02:00
Christoph Oelckers 1b91a8f88c - removed old immediate mode path for generating stencils. 2014-06-15 10:15:44 +02:00
Christoph Oelckers 3644073bbd - use a software buffer for immediate mode rendering. This allows using the regular buffer code to collect data for both render modes and allows removal of a lot of duplicated code. 2014-06-15 01:14:41 +02:00
Christoph Oelckers 5b302ed3a6 - added benchmarking calls for glDrawArrays to see how well issunig draw calls performs on different hardware. 2014-06-14 15:16:33 +02:00
Christoph Oelckers 0ce6b40672 - fixed compile error in gl_skydome.cpp
- disable GL_ARB_buffer_storage when a -glversion parameter less than 4.0 is given. According to the spec this extension requires 4.0 so if emulating something lower it should not be used.
2014-06-14 14:58:17 +02:00
Christoph Oelckers 5e22c82e79 - use buffer for rendering the sky on all GL versions since the differences for making GL2.0 work are rather small. 2014-06-14 10:38:30 +02:00
Christoph Oelckers 4ad1e0b4cb Merge branch 'master' into Glew_Version_For_Real 2014-06-14 01:24:45 +02:00
Christoph Oelckers 8d9a90cd22 - rewrote sky dome rendering to use a static vertex buffer if not on OpenGL 2.x. 2014-06-14 01:24:28 +02:00
WChrisK 67c6690689 Added a check that doesn't print empty obituary strings, as wad's that hide obituary strings in multiplayer games end up spamming a lot of empty lines. 2014-06-11 23:30:25 -04:00
Christoph Oelckers 3c0ba494f9 Merge branch 'master' of https://github.com/rheit/zdoom 2014-06-11 18:58:42 +02:00
Edward Richardson 842ef86e73 Don't reset the inventory of dead players 2014-06-09 19:54:40 +12:00
alexey.lysiuk 20adcecb1d Remove redundant saving of GL nodes if they were loaded from cache 2014-06-02 10:54:52 +02:00
alexey.lysiuk 3e7b0c2916 Fix crash when GL nodes file cannot be opened for writing
Report errors to console if nodes file cannot be opened or written
2014-06-02 10:53:29 +02:00
Christoph Oelckers 9cd074ddf3 - fixed: plane equation vectors must be normalized when being loaded from UDMF. 2014-06-02 10:51:17 +02:00
alexey.lysiuk 96e4cb90b7 Fix crash on attempt to save cached OpenGL nodes on OS X
Root permissions are required to be able to create directories inside /Library/Application Support
So user's ~/Library/Application Support is used to store cached nodes
2014-06-01 15:12:41 +03:00
Christoph Oelckers 2ad47935ef Merge branch 'master' into Glew_Version_For_Real 2014-06-01 12:43:17 +02:00
Christoph Oelckers 7fedaf9221 Merge branch 'master' of https://github.com/rheit/zdoom 2014-06-01 12:39:13 +02:00
alexey.lysiuk a26fbc74f0 Fix compilation errors in latest texture-related changes
GCC and Clang complain about non-POD type passed to variadic function.
2014-06-01 10:27:16 +03:00
Edward Richardson 3817bed0b3 Weap scroll could sometimes miss sameslot weapons
In rear cases, when using next/prevweap, defined weapons in the same
slot couldn't cycle when looping to another when you only had weapons in
1 slot.
2014-06-01 18:13:47 +12:00
Christoph Oelckers d925279bef - fixed texture name handling in GL related texture classes for recent changes in ZDoom to eliminate the 8 character name limit. 2014-06-01 00:04:28 +02:00
Christoph Oelckers 3c5d07e9c6 Merge branch 'master' of https://github.com/rheit/zdoom 2014-05-31 11:05:44 +02:00
Christoph Oelckers c39318f406 - use vertex buffer and reuse of data for stencil drawing. A stencil needs to be drawn multiple times with the same polygons so this is a good place to optimize. 2014-05-31 09:32:17 +02:00
Christoph Oelckers 8f5683e23d - moved secret found message to string table and removed the CVAR crutch that dates from a time when modifying string table content wasn't as easy as it is now.
- added 'showsecretsector' CVAR to show the sector number with the secret found message.
2014-05-29 17:50:14 +02:00
Christoph Oelckers 75cde0b221 - allow locks to check for a key's species so that newly defined keys can open previously defined locks without the need to redefine them. 2014-05-29 17:30:01 +02:00
Edoardo Prezioso 72bbb19cc7 - Shut up GCC aggressive optimizer warnings.
From what I can see, GCC would miscompile the involved loops, because the index variable is 'signed int' and the multiplication with an unsigned would cause signed overflow (undefined behavior). Change the index variable type to 'unsigned int' to expect unsigned overflow (conformant to standard).
2014-05-25 10:11:09 +02:00
Edoardo Prezioso b285cbebe4 - Fixed compiler errors in latest TEXTURES code. 2014-05-25 01:12:16 +02:00
Christoph Oelckers 9d846395bc - replaced console buffer with a significantly more efficient new version that also can hold a lot more data. 2014-05-24 21:05:00 +02:00
Christoph Oelckers a1ec6ab1ba - fixed some Linux warnings. 2014-05-24 16:53:57 +02:00
Christoph Oelckers e813ddf251 - fixed bad comparison. 2014-05-24 16:47:34 +02:00
Shawn Walker 01e909070a Merge branch 'master' of https://github.com/rheit/zdoom 2014-05-23 19:08:56 -07:00
Christoph Oelckers 12c038a234 Merge branch 'master' into Glew_Version_For_Real 2014-05-21 15:26:22 +02:00
Christoph Oelckers 360e7d17f2 Merge branch 'master' of https://github.com/rheit/zdoom 2014-05-21 15:25:56 +02:00
Christoph Oelckers 54425ee2ef - fixed: Desaturation factor was applied incorrectly.
- Also fixed some very strange thing in the shader's desaturate function. For unknown reasons using the 'mix' function there did not work.
- fixed: The fog boundary special shader could not be used.
2014-05-21 13:40:46 +02:00
Christoph Oelckers 0cf37f2e51 - fixed problem with selecting special shaders. 2014-05-21 12:36:29 +02:00
Christoph Oelckers f5ea31b518 - use vertex buffer for all the common 2D rendering functions. 2014-05-21 00:36:04 +02:00
Christoph Oelckers 09ba62fbef - put all the common part of buffer based drawing into a separate method of the vertex buffer. 2014-05-20 22:37:38 +02:00
Christoph Oelckers 23fbd69963 - 4 more places where immediate mode drawing has been substituted with a buffer-based alternative. 2014-05-20 22:20:15 +02:00
Christoph Oelckers 261bc77846 - fixed: when bringing up a new weapon the current flash state needs to be removed.
Especially when dropping the current weapon it can still be active, this is most easily observed with Strife's crossbow which loops the flash state, but it also can happen with other weapons, right after shooting.
2014-05-20 10:29:27 +02:00
Christoph Oelckers 8ec95dc58e - fixed a few places in the savegame code where map names were still truncated to 8 characters. 2014-05-20 10:14:44 +02:00
Shawn Walker 582b1990b7 - restore original line endings 2014-05-18 16:00:31 -07:00
Shawn Walker d2b0596cd4 Merge branch 'master' of https://github.com/rheit/zdoom 2014-05-18 15:39:41 -07:00
Shawn Walker 59885b856d - remove texture name length limits for udmf maps 2014-05-18 15:38:46 -07:00
Christoph Oelckers 6e6be8ed5b Merge branch 'master' into Glew_Version_For_Real 2014-05-18 12:47:48 +02:00
Christoph Oelckers e84dc99475 Merge branch 'master' of https://github.com/rheit/zdoom 2014-05-18 12:46:28 +02:00
Christoph Oelckers 4acc04ce68 - don't truncate map names stored in demos. 2014-05-18 10:05:35 +02:00
Christoph Oelckers cfef894867 This can be done better... 2014-05-18 09:41:13 +02:00
Edward Richardson 26b1abe3da Fix netgame arbitration with long map lump names 2014-05-18 18:38:54 +12:00
Christoph Oelckers ff7913ace8 - fixed: When a level gets loaded the renderer's sky variables need to be set. 2014-05-17 09:46:58 +02:00
Shawn Walker ae8995e65b Merge branch 'master' of https://github.com/rheit/zdoom
# By Christoph Oelckers (2) and Edward Richardson (1)
# Via Christoph Oelckers
* 'master' of https://github.com/rheit/zdoom:
  - fixed: The map setup code was still truncating texture names in several places.
  Fix nettic run-out at end of demo playback
  - fixed: ACS's check...Texture functions must use the same search flags as the texture initialization code in p_setup.cpp and p_udmf.cpp. It also should not create textures that don't exist yet. We are only doing a comparison so it's not relevant if the texture exists or not.
2014-05-16 20:27:57 -07:00
Christoph Oelckers 8443de3f33 Merge branch 'master' of https://github.com/rheit/zdoom 2014-05-16 22:50:12 +02:00
Christoph Oelckers e92032e8ff - fixed: The map setup code was still truncating texture names in several places. 2014-05-16 22:48:37 +02:00
Christoph Oelckers 76b4ff143f Merge branch 'upstream' of https://github.com/Edward850/zdoom 2014-05-16 15:56:32 +02:00
Edward Richardson d3dcc04666 Fix nettic run-out at end of demo playback 2014-05-17 00:36:43 +12:00
Christoph Oelckers 25f4af734f - fixed: ACS's check...Texture functions must use the same search flags as the texture initialization code in p_setup.cpp and p_udmf.cpp. It also should not create textures that don't exist yet. We are only doing a comparison so it's not relevant if the texture exists or not. 2014-05-16 10:56:23 +02:00
Shawn Walker 49e0eb03cc Merge branch 'master' of https://github.com/rheit/zdoom 2014-05-15 22:55:35 -07:00
Christoph Oelckers bf6a193e5b - fixed: The episode parser was still truncating its map names to 8 characters. 2014-05-15 20:29:36 +02:00
Christoph Oelckers 03d4f23a6e - made adjustments to the texture loading code to account for the recent changes to handle long texture names. 2014-05-15 19:27:22 +02:00
Christoph Oelckers 4e64ad847b Merge branch 'master' of https://github.com/rheit/zdoom 2014-05-15 09:46:47 +02:00
Shawn Walker bfb5944517 Merge branch 'master' of https://github.com/rheit/zdoom 2014-05-15 00:11:52 -07:00
Christoph Oelckers e3cd144af9 - one last GCC compile problem. 2014-05-14 17:27:22 +02:00
Christoph Oelckers adcdc11360 - GCC compile fix. 2014-05-14 15:44:05 +02:00
Christoph Oelckers 2944e4f6ae - fixed some Linux issues with recent changes. 2014-05-14 14:08:14 +02:00
Christoph Oelckers 85fb8c4326 - fixed: _M_X64 macro was misnamed _M_IX64. 2014-05-14 13:04:47 +02:00
Christoph Oelckers 388f09f786 - fixed: In Heretic corpses do not get crunched to gibs, they just get their size reduced to 0. Handled by a new gameinfo flag. This also gets set for Chex quest which has the gib sprite replaced by something different. Using a Crush state will override this global flag. 2014-05-14 12:54:03 +02:00
Christoph Oelckers 47a9dab56d - allow setting sector planes' plane equations directly from UDMF. 2014-05-14 12:16:33 +02:00
Christoph Oelckers 8c052818b7 - fixed: long texture name lookup did not work with TEXMAN_TryAny. 2014-05-14 10:27:40 +02:00
Shawn Walker fdfcb728a9 - make it easier to spot patch definition errors in console log 2014-05-13 22:50:39 -07:00
Christoph Oelckers a375454474 - removed 8 character limit for map names. 2014-05-14 00:52:16 +02:00
Christoph Oelckers 24886b6734 - removed the last static character arrays from FLevelLocals. 2014-05-13 23:16:13 +02:00
Christoph Oelckers e49e926bd9 - added option to ASectorAction to remove itself upon triggering by setting the STANDSTILL flag on the map thing. 2014-05-13 21:26:51 +02:00
Christoph Oelckers 30f57c0b8e - added new renderstyles AddStencil and AddShaded. 2014-05-13 21:16:06 +02:00
Christoph Oelckers ca4179caa3 - allow texture lookup by full path names. Due to technical limitations this may result in double textures if the same graphics lump is also referenced by its short texture name. 2014-05-13 20:51:16 +02:00
Christoph Oelckers ebd6c18bef - missed one texture name field in level_info_t. 2014-05-13 15:32:54 +02:00
Christoph Oelckers a22670626c - expanded names for view border elements. Also fixed the horribly bad implementation of custom borders which modified the DoomBorder elements without ever checking the game being used. 2014-05-13 13:40:02 +02:00
Christoph Oelckers a05e62f3f7 - changed storage of lump and texture names in gameinfo to allow long names (with the exception of view border elements.) 2014-05-13 12:44:17 +02:00
Christoph Oelckers a05e584b81 Merge branch 'master' of https://github.com/rheit/zdoom 2014-05-13 12:00:37 +02:00
Christoph Oelckers 60f0ab5f1b - fixed Linux warning with type cast. 2014-05-13 12:00:11 +02:00
Christoph Oelckers e718a72b4d fixed: skies should be loaded into the FLevelLocals struct not into the global variables of the renderer. 2014-05-13 11:53:08 +02:00
Christoph Oelckers fedf9c6a5b fixed: if we allow long names for the fade table we must also check for them when the colormap gets loaded. 2014-05-13 11:39:25 +02:00
Christoph Oelckers 65e8563cf4 replaced all character arrays for lump/texture names in the level_info_t and FLevelLocals structures with FStrings as first preparation for allowing long texture names. 2014-05-13 11:33:59 +02:00
Christoph Oelckers 579eff5b96 - add vertex buffer based rendering for decals. 2014-05-12 22:46:30 +02:00
Christoph Oelckers cf45f2d718 - added missing shader files. 2014-05-12 22:24:26 +02:00
Christoph Oelckers b514a815f4 - enable use of vertex buffer for sprite rendering. 2014-05-12 20:23:54 +02:00
Christoph Oelckers 9c659b948c - reactivated texture warping. 2014-05-12 15:13:07 +02:00
Christoph Oelckers 55d4c89753 - fixed: fog density calculation for fixed function was not correct. 2014-05-12 14:58:37 +02:00
Christoph Oelckers 4d005bdfa0 shader rework
All those special shaders have been merged together.
Mostly working but the non-shader lighting seems a bit broken.
2014-05-12 14:45:41 +02:00
Christoph Oelckers 98cc7eeb99 pass softlightlevel through render state. 2014-05-12 00:13:19 +02:00
Christoph Oelckers b9a6fe80a4 Do not use the shader to handle STYLEF_RedIsAlpha.
Turns out that the name doesn't accurately describe what it does.
It is correct for images that come with their own palette or are true color.
But for images using the game palette it doesn't use the red channel to determine translucency but the palette index! Ugh...

This means it cannot be done with a simple operation in the shader because it won't get a proper source image. The only solution is to create a separate texture.
2014-05-11 23:56:53 +02:00
Christoph Oelckers 506798f134 allow brightmaps and fullbright objects in fog. The reasons why they were disabled no longer exist. 2014-05-11 23:12:28 +02:00
Christoph Oelckers c47c7421a3 - route all glColor calls through render state.
- add sector links to dynamic lights.
2014-05-11 22:57:42 +02:00
Christoph Oelckers 978ace241c - removed all code that mixes together the different lighting methods. Now everything goes through the 3 different light parameters in the render state.
- removed cm parameter from many functions.
2014-05-11 21:47:54 +02:00
Christoph Oelckers 887d35d559 - remove colormap from texture generation parameters. The one remaining special case, alpha texture on old hardware is now handled by the currently set texture mode at the time of use.
- use the cleaned up decal lighting code from the first GLEW branch.
2014-05-11 19:44:19 +02:00
Christoph Oelckers 7793bbbcc9 Further cleanup of lighting code.
- remove thing color from lighting calculations.
- implement alpha textures and inverse sprites for infrared as texture modes. This still requires some handling for the alpha texture mode for non-shader rendering because there is no way in the fixed pipeline to do it. The inverted texture effect can be done with a texture combiner.
- fixed: ThingColor for sprites was set in the wrong place. It must be in the Process function, not in the lighting calculation.
- added functions for isolated calculation of sprites' dynlight color.
2014-05-11 17:56:38 +02:00
Christoph Oelckers 607be91c48 - bad copy. 2014-05-11 16:54:11 +02:00
Christoph Oelckers 8ae97bc3e1 -looks like we still need this... 2014-05-11 16:51:33 +02:00
Christoph Oelckers 52056a05bd - changed handling of DynLight in shader to serve as a global dynamic light color for all lighting modes. 2014-05-11 16:49:17 +02:00
Christoph Oelckers 53f4cd0108 - added objectcolor uniform. This will be used to hold the thingcolor for shader based rendering. 2014-05-11 16:06:25 +02:00
Christoph Oelckers f3a9cb0cfa remove special texture creation for fullscreen colormaps.
On GL 3.x+ this isn't needed at all and on older hardware it causes performance issues, in particular with hires textures due to impossibility of precaching.
In addition it forces some really awkward handling of lighting for things that have their own color, like stenciled sprites or particles.

With this special case gone it will be possible to handle this case in a saner manner than it is right now.

As compensation for older hardware a fullscreen blend will be drawn over the entire screen. This won't be 100% accurate but it's preferable to keeping the current method.
2014-05-11 14:46:37 +02:00
Christoph Oelckers 5947584bff Merge branch 'master' into Glew_Version_For_Real 2014-05-11 13:29:37 +02:00
Christoph Oelckers cd6d653b59 - fixed: the delayed state changer for the alpha function called glBlendFunc instead of glAlphaFunc. 2014-05-11 13:29:06 +02:00
Christoph Oelckers 09f4071436 Ok, it had to be done: Removed shader support for pre GLSL 1.3/GL 3.0 hardware. The compromises needed to accomodate these are just too bad and would block any attempt at streamlining the code. 2014-05-11 13:27:51 +02:00
Christoph Oelckers 92b9814460 Merge branch 'master' into Glew_Version_For_Real 2014-05-11 09:17:46 +02:00
Christoph Oelckers a42cde0837 - removed #include of glxew.h because it's not used.
- removed some unused functions from gl_interface.cpp which were causing problems when compiling on Linux.
2014-05-11 09:17:18 +02:00
Christoph Oelckers f7404d20fb - add vertex buffer based drawing for all walls and flats. 2014-05-11 01:23:27 +02:00
Christoph Oelckers 7d3beb665b - rewrote vertex buffer code to require GL_ARB_BUFFER_STORAGE extension.
This means it won't work anymore on anything that doesn't support OpenGL 4.0, but I don't think this is a problem. On older NVidia cards performance gains could not be seen and on older AMDs using the vertex buffer was even worse as long as it got mixed with immediate mode rendering.
2014-05-10 21:47:07 +02:00
Christoph Oelckers b09405a8bd - changed rendering of glowing walls so that it doesn't require an additional vertex attribute, just pass the floor and ceiling planes as uniforms. 2014-05-10 17:09:43 +02:00
Christoph Oelckers 64d991b9b3 Merge branch 'master' into Glew_Version_For_Real 2014-05-10 15:29:06 +02:00
Christoph Oelckers 7c180e5094 Merge branch 'master' of https://github.com/rheit/zdoom 2014-05-08 11:30:12 +02:00
Christoph Oelckers 458e1b1be2 - changed sound lookup for ZSDF dialogues so that it first checks the svox/ namespace before using the global one. 2014-05-08 11:29:45 +02:00
Christoph Oelckers a7f8f7c18b Merge branch 'master' of https://github.com/rheit/zdoom 2014-05-08 10:35:10 +02:00
Christoph Oelckers ea7fb936a8 - fixed: memory allocation for file names in 7z archives was broken. Changing it to use TArray instead of alloca makes it work. 2014-05-08 10:33:32 +02:00
Christoph Oelckers 6988156d0f Merge branch 'master' of https://github.com/rheit/zdoom 2014-05-08 09:49:00 +02:00
Christoph Oelckers 1d4ea9f162 - removed the __asm nop breakpoints for debugging. They not only do not work on non-MSVC but also not on 64 bit. 2014-05-08 09:48:39 +02:00
Christoph Oelckers 2223c12938 - added new ChangeActorAngle/ChangeActorPitch ACS functions because the new required 'interpolate' parameter cannot be added to the existing SetActorAngle/SetActorPitch functions without breaking old scripts. 2014-05-08 09:43:58 +02:00
Christoph Oelckers 63a0e01c6a Merge branch 'interpview_optin' 2014-05-08 09:17:00 +02:00
Christoph Oelckers 67ebbe3ed4 made some changes to turn the CF_INTERPVIEW flag when changing angles into an op-in feature instead of making it automatic. 2014-05-08 09:15:56 +02:00
Christoph Oelckers 890e9ecddd - typo in resurrection code. 2014-05-07 17:18:44 +02:00
Christoph Oelckers fcbb72a4d4 - removed redundant variable. 2014-05-06 09:59:56 +02:00
Edward Richardson 90e9937b71 Stop NetUpdate from corrupting demo playback 2014-05-05 22:47:48 +12:00
Christoph Oelckers 93aa1ea2c4 fixed some issues with reviving monsters
- fixed: Thing_Raise didn't properly set the spawn health.
- fixed: Thing_Raise did not the CanRaise state flag.
- fixed: Reviving a monster must also reset the damage type.
- fixed: Thing_Raise reset the actor after calling the raise state, but it should be before, just as the Archvile code is doing.
- consolidated some common code of Thing_Raise and Archvile resurrection into AActor methods.
2014-05-05 11:24:20 +02:00
Christoph Oelckers a4076ffe38 Merge branch 'master' of https://github.com/rheit/zdoom 2014-05-03 12:29:18 +02:00
Christoph Oelckers a9f1b54d2d - fixed: since A_LightGoesOut alters a sector's floor plane it must also alter the TexZ for that sector's floor. 2014-05-03 10:12:25 +02:00
Christoph Oelckers 34360e7975 Merge branch 'upstream' of https://github.com/Edward850/zdoom 2014-05-02 17:31:02 +02:00
Edward Richardson 104a07d461 Make sure use_staticrng is false if not needed 2014-05-03 03:27:14 +12:00
Edward Richardson 6183f8125f Don't change RNG in demos incase they are static 2014-05-03 03:01:49 +12:00
Edward Richardson d6af8dc352 Added static RNGseed control 2014-05-03 03:01:40 +12:00
Christoph Oelckers 314225f1b0 - don't depend on stdint.h because older MSVC versions do not have it. 2014-05-01 12:30:56 +02:00
Christoph Oelckers cc4305e86c Merge branch 'master' of https://github.com/rheit/zdoom 2014-04-30 01:29:26 +02:00
alexey.lysiuk 3af7d8a245 Added support for LZMA2 compression method in .7z archives
Updated LZMA SDK to version 9.20
http://www.7-zip.org/sdk.html
http://downloads.sourceforge.net/sevenzip/lzma920.tar.bz2
2014-04-27 13:05:40 +03:00