Commit graph

334 commits

Author SHA1 Message Date
Christoph Oelckers
7d8d69d01b - fixed: The clipper for the main scene may not be initialized before the camera textures have been drawn.
It looks like the memory management at use here is not capable of maintaining multiple instances simultaneously and the camera textures create another scene drawer so the initialization of the main scene drawer has to be delayed until after the camera textures are done.
2017-03-17 19:28:47 +01:00
Christoph Oelckers
9a24771a7d - refactored FDynamicColormap out of sector_t.
This has increasingly become an obstacle with the hardware renderer, so now the values are being stored as plain data in the sector, with the software renderer getting the actual color tables when needed. While this is a bit slower than storing the pregenerated colormap, in realistic situations the added time is mostly negligible in the microseconds range.
2017-03-15 22:04:59 +01:00
Christoph Oelckers
d86bd470e5 - moved two MAPINFO settings that are not exclusively used by the OpenGL renderer to the common code. 2017-03-14 18:31:11 +01:00
Christoph Oelckers
44a087554f - moved the OpenGL fog properties to FLevelLocals to simplify their handling.
- added access to the glow properties for ZSCript and ACS.
2017-03-14 13:54:24 +01:00
Christoph Oelckers
d72623b9b5 - eliminated global in_area variable.
Removing this made me realize that calling the renderers' FakeFlat functions from the automap is inherently unsafe with the recent refactorings because there is absolutely no guarantee that the data may actually still be defined when the automap is being drawn.
So the best approach here is to give the automap its own FakeFlat function that runs independently of render data and assumptions of data preservation. This one can also be a lot simpler because it only needs the floor, not the ceiling info.
2017-03-12 23:13:07 +01:00
Christoph Oelckers
4c61048278 - moved gl_fixedcolormap into GLSceneDrawer.
This means that one of the most extensively used global variables is gone.
2017-03-12 21:57:39 +01:00
Christoph Oelckers
ef3421eee5 - moved dynamic lights out of the GL code into the common game code.
Since the true color software renderer also handles them there is no point keeping them on the GL side.
This also optimized how they are stored, because we no longer need to be aware of a base engine which doesn't have them.
2017-03-12 19:57:06 +01:00
Christoph Oelckers
e7330cfa03 - all main functions in gl_scene.cpp now belong to the new GLSceneDrawer class. 2017-03-12 12:51:26 +01:00
Christoph Oelckers
e4d7d9de8b - moved several more functions from FGLRenderer to GLSceneDrawer. 2017-03-12 12:03:54 +01:00
Magnus Norddahl
c79051126e Fix ssao being applied to skybox portals 2017-03-12 00:22:58 +01:00
Christoph Oelckers
0aa0db637c - started adding a SceneDrawer class to the OpenGL renderer.
This will eventually hold all the global variables for the rendering.
2017-03-12 00:19:20 +01:00
Christoph Oelckers
9eae422dab Merge branch 'shadowmaps' of https://github.com/raa-eruanna/qzdoom into 3.0_work
# Conflicts:
#	src/CMakeLists.txt
#	wadsrc/static/language.enu
2017-03-11 19:55:43 +01:00
Christoph Oelckers
921abc404d - fixed GCC warnings and errors
(Is there anyway to tone down GCC's warning level? It outputs too many false positives for potentially uninitialized variables in which the genuine errors get drowned.)
2017-03-11 19:02:35 +01:00
Christoph Oelckers
a4710bcdb0 - did a bit of header cleanup to reduce the dependency on dobject.h. 2017-03-09 23:30:42 +01:00
Christoph Oelckers
d2beacfc5f - except for DWORD, all homegrown integer types are gone - a handful were left where they represent genuine Windows types. 2017-03-09 19:54:41 +01:00
Christoph Oelckers
c008ddaf66 - replaced homegrown SWORD, SBYTE and uint32_t types. 2017-03-09 19:31:45 +01:00
Magnus Norddahl
6df3b3fbca Changed the light collision structure uploaded to the GPU to be a binary tree using AABBs for the nodes instead of a BSP plane 2017-03-07 15:58:22 +01:00
Magnus Norddahl
62c285f7b3 Create a shadowmap texture and upload light list 2017-03-02 16:19:06 +01:00
Magnus Norddahl
7a4b01471d Add class updating and managing the shadow map texture 2017-03-02 16:19:06 +01:00
Magnus Norddahl
6363c6cf58 Add a shadowmap shader 2017-03-02 16:19:06 +01:00
Magnus Norddahl
58c7c3c902 Upload BSP tree to the GPU 2017-03-02 16:19:06 +01:00
Rachael Alexanderson
2a71ec89de Merge https://github.com/coelckers/gzdoom 2017-02-13 17:02:56 -05:00
Christoph Oelckers
cb758f6dab - added a 'nolightfade' MAPINFO option which disables light diminishing in OpenGL. Note that this only works for light modes 0-3. Modes 4 and 8 use special light math that would not work if such a setting was forced. 2017-02-13 22:17:15 +01:00
Rachael Alexanderson
a52f79055d Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/menu/playerdisplay.cpp
2017-02-11 05:05:24 -05:00
Christoph Oelckers
8c780ab7ff - exported the drawer function of the colorpicker menu. 2017-02-10 13:21:35 +01:00
Rachael Alexanderson
226e5238fc Merge https://github.com/coelckers/gzdoom 2017-02-01 21:57:37 -05:00
Christoph Oelckers
6d28aa3541 - do not use strtol for parsing critical values that can get large.
This function will truncate everything that is larger than LONG_MAX or smaller than LONG_MIN to fit into a long variable, but longs are 32 bit on Windows and 64 bit elsewhere, so to ensure consistency and the ability to parse larger values better use strtoll which does not truncate 32 bit values.
2017-02-01 11:19:55 +01:00
Rachael Alexanderson
0af86efb17 Merge https://github.com/coelckers/gzdoom 2017-01-29 18:17:09 -05:00
Christoph Oelckers
a2a1d214c0 - extended give and take cheat's arguments to full integers. 2017-01-29 11:45:28 +01:00
Rachael Alexanderson
0c101102dc Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/r_bsp.cpp
#	src/r_main.cpp
#	src/r_segs.cpp
#	src/r_things.cpp
#	wadsrc/static/language.enu
#	wadsrc/static/menudef.txt
2017-01-28 17:39:55 -05:00
Christoph Oelckers
4f5d5d5de7 - this should have been in the last commit. 2017-01-28 21:49:52 +01:00
Christoph Oelckers
ee22a9371b - use Doom64 colors on sectors and linedefs. 2017-01-28 20:44:46 +01:00
Christoph Oelckers
12d073a27d - objectcolor stuff.
# Conflicts:
#	src/gl/renderer/gl_renderstate.cpp
2017-01-28 19:06:21 +01:00
Christoph Oelckers
1d2ae53ecb Revert "- made r_fullbrightignoresectorcolor a MAPINFO option, so far only working on the software renderer. GL still needs a few changes to handle it correctly."
This reverts commit dd03bb1fcb.

Turns out that making this work in GL will create a complete mess so better remove the option as it would only cause problems.
2017-01-28 18:26:52 +01:00
Rachael Alexanderson
d27a152d9b Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/r_bsp.cpp
#	src/r_main.cpp
#	src/r_segs.cpp
#	src/r_things.cpp
#	wadsrc/static/language.enu
#	wadsrc/static/menudef.txt
2017-01-28 09:38:10 -05:00
Christoph Oelckers
dd03bb1fcb - made r_fullbrightignoresectorcolor a MAPINFO option, so far only working on the software renderer. GL still needs a few changes to handle it correctly. 2017-01-28 12:20:18 +01:00
Rachael Alexanderson
c923f8c5e1 - fixed: If GLRenderer is uninitialized (i.e. using software renderer, or during startup), gl_paltonemap_* CVARs would crash the game. 2017-01-28 10:04:22 +01:00
Rachael Alexanderson
f9eb06a22e - fixed: If GLRenderer is uninitialized (i.e. using software renderer, or during startup), gl_paltonemap_* CVARs would crash the game. 2017-01-28 00:13:27 -05:00
Rachael Alexanderson
a04699ec1c Merge https://github.com/coelckers/gzdoom 2017-01-24 18:15:39 -05:00
Rachael Alexanderson
c1ff1c6336 - Set banded light to "false" to not impact GZDoom defaults. 2017-01-24 22:24:53 +01:00
Rachael Alexanderson
9a777f719b - Added "gl_bandedswlight" to reduce the software light emulation gradient to 32 levels. 2017-01-24 22:24:53 +01:00
Rachael Alexanderson
84d2a89f49 Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	wadsrc/static/language.enu
2017-01-24 12:03:57 -05:00
Rachael Alexanderson
eb3f83f908 - Since tonemap tweaks are on the menu now, make their changes affect instantly. 2017-01-24 17:57:03 +01:00
Rachael Alexanderson
494be00ce5 - Made default values for gl_paltonemap_powtable and gl_paltonemap_reverselookup more "id-like". 2017-01-24 17:57:03 +01:00
Rachael Alexanderson
6e47bf9bbc - Added gl_paltonemap_powtable and gl_paltonemap_reverselookup for tweaking palette tonemap generation. 2017-01-24 17:57:03 +01:00
Rachael Alexanderson
82ee9e7399 Merge https://github.com/coelckers/gzdoom 2017-01-11 07:48:45 -05:00
Christoph Oelckers
72101473d0 - fixed: The texture for legacy dynamic light handling was always allocated, even if not needed, and it was never freed. 2017-01-11 10:47:45 +01:00
Rachael Alexanderson
05662e5c4d Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/r_bsp.cpp
#	src/r_plane.cpp
#	src/r_things.cpp
2017-01-09 09:51:06 -05:00
Christoph Oelckers
cd7986b1b1 - refactored global sides array to be more VM friendly.
- moved FLevelLocals to its own header to resolve some circular include conflicts.
2017-01-08 18:46:17 +01:00
Rachael Alexanderson
de5f5a1221 Merge https://github.com/coelckers/gzdoom 2017-01-06 22:06:25 -05:00