Randy Heit
d0043bed78
Q&D port of decal code to draw generic wall sprites
...
- This still doesn't use all the sprite properties correctly. It also
looks like they're going to need different code to build the clipping
arrays. But at least wall sprites are drawn at the proper angle now!
2014-08-02 22:35:57 -05:00
Christoph Oelckers
eef4d1fac1
Merge branch 'fix_build_nonmsvc' of https://github.com/alexey-lysiuk/gzdoom
2014-08-03 01:17:15 +02:00
Christoph Oelckers
cd5e429d3b
- adjust version number.
2014-08-02 23:12:08 +02:00
Christoph Oelckers
a63871d170
- at least for Intel GMA we need shaders without 'discard' to render non-transparent stuff. The performance penalty is rather hefty here.
2014-08-02 21:06:34 +02:00
Christoph Oelckers
a97b58fa27
- added check for light uniform buffer overflows, because uniform buffers on Intel are rather small.
2014-08-02 20:41:13 +02:00
alexey.lysiuk
6ef67e1d3e
Fixed build on compilers other than MSVC
...
No more "Call to 'LittleShort' is ambiguous" error
2014-08-02 13:14:25 +03:00
Christoph Oelckers
e35fefdc06
- better rebind the active shader after updating the matrices.
2014-08-02 11:59:04 +02:00
Christoph Oelckers
b2860a1d63
- it looks like glProgramUniform is not working correctly with Intel drivers, so better forget about it for setting the view and projection matrices. Even on NVidia the time difference can only be measured in microseconds per frame so it's not a big loss.
2014-08-02 11:57:42 +02:00
Edward Richardson
9716a61219
Add CVar for drawing weapons in the althud
2014-08-02 19:34:16 +12:00
Christoph Oelckers
a8e9c1832f
- decided to restrict the 2.0 beta to OpenGL 4.x with GL_ARB_buffer_storage extension and removed all code for supporting older versions.
...
Sadly, anything else makes no sense.
All the recently made changes live or die, depending on this extension's presence.
Without it, there are major performance issues with the buffer uploads. All of the traditional buffer upload methods are without exception horrendously slow, especially in the context of a Doom engine where frequent small updates are required.
It could be solved with a complete restructuring of the engine, of course, but that's hardly worth the effort, considering it's only for legacy hardware whose market share will inevitably shrink considerably over the next years.
And even then, under the best circumstances I'd still get the same performance as the old immediate mode renderer in GZDoom 1.x and still couldn't implement the additions I'd like to make.
So, since I need to keep GZDoom 1.x around anyway for older GL 2.x hardware, it may as well serve for 3.x hardware, too. It's certainly less work than constantly trying to find workarounds for the older hardware's limitations that cost more time than working on future-proofing the engine.
This new, trimmed down 4.x renderer runs on a core profile configuration and uses persistently mapped buffers for nearly everything that is getting transferred to the GPU. (The global uniforms are still being used as such but they'll be phased out after the first beta release.
2014-08-01 22:42:39 +02:00
Christoph Oelckers
7967082e60
- use the light buffer to handle dynamic lighting.
2014-08-01 20:59:39 +02:00
Randy Heit
15251e7a21
Set face/wall/floor flags from Build sprites
2014-07-31 22:18:08 -05:00
Randy Heit
a600a816c3
Consolidate some common code for texture mapping setup
...
- R_AddLine() and R_RenderDecal() had nearly identical code for setting up
texture mapping. These have now been spun off into methods of
FWallCoords and FWallTmapVals.
2014-07-31 21:02:22 -05:00
Randy Heit
b0b9c57e85
Pass x1 and x2 to Prep(L)Wall as params
2014-07-31 20:32:21 -05:00
Randy Heit
fc63e9db3c
Pass WallC as a parameter to (O)WallMost instead of referencing it globally
2014-07-31 20:23:04 -05:00
Randy Heit
bc450808b2
Consolidate wall texturing vars into two structs
...
- All transformation and clipping values go into FWallCoords.
- All texture mapping values go into FWallTMapVals.
2014-07-31 20:17:23 -05:00
Randy Heit
bbc3b69a7c
Remove polymost stuff
...
- Maybe it will be back someday, but it's been essentially dead for nearly
10 years, so don't hold your breath.
2014-07-31 19:44:41 -05:00
Randy Heit
4cf468452c
Remove slopetype from line_t.
...
- Recomputing it in the only two places where it's used is trivial, so
it's basically a waste of space to precompute it.
2014-07-31 19:15:08 -05:00
Randy Heit
e55e7b9a38
Don't weed out wall and floor sprites when spawning Build sprites
2014-07-31 18:22:33 -05:00
Christoph Oelckers
01a1e10084
Merge branch 'master' into Glew_Version_For_Real
2014-07-31 00:59:56 +02:00
Christoph Oelckers
09ae52e26b
Merge branch 'master' of https://github.com/rheit/zdoom
2014-07-31 00:44:59 +02:00
Christoph Oelckers
1ec58011d2
- start of light buffer implementation so that we don't have to use uniform arrays which appear to be broken on AMD.
2014-07-31 00:44:22 +02:00
Christoph Oelckers
ef8f66c9a1
- removed the code for hardware alpha testing again because it didn't work anymore with how things are set up now.
...
- we need to check all GL versions when trying to get a context because some drivers only give us the version we request, leaving out newer features that are not exposed via extension.
- added some status info about uniform blocks.
2014-07-30 23:13:16 +02:00
Randy Heit
a922ae04cc
Use Blood player starts
...
- Blood's maps use thing types, much like Doom's, so getting its player
starts is easy. There's no need to synthesize a start from the editor
position like with other Build maps.
2014-07-29 21:39:05 -05:00
Randy Heit
449a17c2f4
Correctly assign the sample rate for all Blood SFX formats
...
- Blood can do 44100 Hz sounds!
2014-07-29 21:09:29 -05:00
Randy Heit
e0e00c4f8c
Fixed: None of the Blood ambient sounds were registered correctly
2014-07-29 20:56:20 -05:00
Randy Heit
4296e9caa2
Fix typo in comment
2014-07-29 20:51:23 -05:00
Randy Heit
d602b272b5
Never cache nodes for Build maps
2014-07-29 20:46:20 -05:00
Randy Heit
00854dd09e
Don't reopen the reader for encrypted maps
...
- Fixed: Memory leak when loading Blood maps.
2014-07-29 20:42:17 -05:00
Randy Heit
02e7c56c82
Move SpriteFrames.Clear() from R_InitSprites to FTextureManager::Init
...
- Fixed: Blood sprite rotations were overwritten by the Doom sprite
rotations.
2014-07-29 20:31:53 -05:00
Randy Heit
f3d8edb4d8
Fixed: No sprites were loaded for Build maps
2014-07-29 20:30:50 -05:00
Christoph Oelckers
a1dfdf0fc7
Merge branch 'master' of https://github.com/rheit/zdoom
2014-07-29 15:51:14 +02:00
Randy Heit
ea7ba9dba3
Add per-actor friction
...
- This is multiplied by the sector's friction.
- This is intentionally not serialized yet, while awaiting feedback.
2014-07-28 23:15:50 -05:00
Randy Heit
0f8a0020ed
Merge remote-tracking branch 'origin/master'
2014-07-28 21:08:21 -05:00
Randy Heit
7280d278d9
Fix VC2005 warning in F7ZFile::Open
2014-07-28 21:03:41 -05:00
Randy Heit
4c6edd5e58
Add script array support to ZDoom
2014-07-28 21:02:20 -05:00
Edward Richardson
6af441c4d7
Dup frames shouldn't adapt.
...
Adapting during a dup frame caused jittery network performance
(especially when using high dup values).
The demoplayback check also didn't need to be there anyway.
2014-07-29 11:09:46 +12:00
Christoph Oelckers
beabfad293
Merge branch 'master' into Glew_Version_For_Real
2014-07-28 22:23:56 +02:00
Christoph Oelckers
318aebc4ad
- fixed: the vertex collection code used incorrect indices for checking the checkmap array.
2014-07-28 22:23:17 +02:00
Christoph Oelckers
183d0ba82a
Merge branch 'master' into Glew_Version_For_Real
2014-07-28 19:56:17 +02:00
Christoph Oelckers
355dd1c2f5
- fixed some issues with setting the vertex dirty state. It was also called from several sector init functions and copy code for Boom deep water. The only case where SetPlaneTexZ should call it is from the interpolation code so this is a special case now.
2014-07-28 18:01:01 +02:00
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