Commit graph

8652 commits

Author SHA1 Message Date
Randy Heit
0aa67c68ab Redo lighting for each wall sprite
- Because previously it just reused whatever the most recently drawn wall
  used.
2014-08-07 17:23:06 -05:00
Randy Heit
e1ee80661e Make FWallCoords' members lowercase
because they're kind of a pain to type when all uppercase.
- Also, make its sx1 and sx2 members shorts, so it takes less space, since
  it's getting crammed into a vissprite now.
2014-08-07 17:12:04 -05:00
Leonard2
8c4c011ca2 MTHRUSPECIES on puffs
You were right it's cleaner that way
2014-08-07 18:05:39 +02:00
Leonard2
5400ce1a21 +MTHRUSPECIES on puffs 2014-08-07 15:50:21 +02:00
Christoph Oelckers
b9ffb51d0c - small but important optimization: Two-sided lines with both sides in the same sector don't really require vertex splitting for precise rendering. 2014-08-04 23:00:40 +02:00
Christoph Oelckers
00e4d4e2df Merge branch 'master' into v2.x
Conflicts:
	src/gl/shaders/gl_shader.cpp
2014-08-03 18:16:15 +02:00
Christoph Oelckers
09a68e8c93 - fixed incorrect function call in shader compiler. 2014-08-03 18:14:19 +02:00
Christoph Oelckers
370582d2fa - corrected versioning info for development branch. 2014-08-03 12:25:59 +02:00
Christoph Oelckers
19cfffebb3 - fixed: the WallTypes enum contained a value that no longer was valid. This was fixed orignally last week but it seems to have gotten lost. 2014-08-03 12:21:05 +02:00
alexey.lysiuk
313173aa32 Added support for clipboard operations on OS X 2014-08-03 12:40:14 +03:00
alexey.lysiuk
4fb1e7517c Added support for VSync option in Cocoa back-end 2014-08-03 12:39:42 +03:00
Braden Obrzut
177112603d Added support for Cocoa back-end in CMake build system 2014-08-03 12:38:56 +03:00
alexey.lysiuk
e12f860f1b Added native Cocoa back-end implementation 2014-08-03 12:36:02 +03:00
alexey.lysiuk
fecd1b6401 Moved cursor and timer implementations into separate files 2014-08-03 12:33:29 +03:00
alexey.lysiuk
d6cc6ee452 Added notification dialog in case of fatal error 2014-08-03 12:26:17 +03:00
alexey.lysiuk
906102c3b6 Added HID Utilities source code
https://developer.apple.com/library/mac/samplecode/HID_Utilities/Introduction/Intro.html
https://developer.apple.com/library/mac/samplecode/HID_Utilities/HID_Utilities.zip
2014-08-03 12:23:08 +03:00
alexey.lysiuk
2efb62e8ef Added work-around for vectorization issue in Apple's GCC 4.x 2014-08-03 12:21:00 +03:00
alexey.lysiuk
0a5dd94072 Fixed whole program (link-time) optimization build with Clang 2014-08-03 12:20:30 +03:00
alexey.lysiuk
39e2ebe425 Fixed GNU inline assembly for Clang 2014-08-03 12:19:07 +03:00
alexey.lysiuk
32af6cb0cf Added support for Command/Meta key 2014-08-03 12:18:15 +03:00
Christoph Oelckers
c98e3ca99d Merge branch 'master' into v2.x 2014-08-03 10:58:41 +02:00
Christoph Oelckers
b3e0d93385 - implemented rendering of wall sprites. 2014-08-03 10:57:58 +02:00
Christoph Oelckers
398d902e7e - split off sprite clipping adjustment code into its own function. 2014-08-03 10:22:12 +02:00
Christoph Oelckers
1b55c17379 Merge branch 'master' of https://github.com/rheit/zdoom 2014-08-03 10:08:05 +02:00
Randy Heit
1d02ad3aa2 Merge branch 'master' of github.com:rheit/zdoom 2014-08-02 22:40:02 -05:00
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
a1b579e5fc - added menu entry for newly added hud_showweapons CVAR. 2014-08-03 01:20:12 +02: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