Commit graph

437 commits

Author SHA1 Message Date
Christoph Oelckers
5fbc723842 - live switching of the renderer works. 2018-04-07 12:59:04 +02:00
Christoph Oelckers
221beec979 - added palette shader and fixed a few things. 2018-04-07 12:17:23 +02:00
Christoph Oelckers
211a7f2569 - made the screen blend work for the software renderer.
It may use the same calculations as the hardware renderer but must use the 2D drawer for display.
It should be investigated if the hardware renderer can do this as well.
2018-04-07 10:53:20 +02:00
Christoph Oelckers
b34d7f9e08 - added a software scene drawer to the GL renderer.
It still looks like shit and only works on the modern render path but at least the basics are working.
2018-04-07 10:20:59 +02:00
Christoph Oelckers
d474b849a5 - removed the remaining calls from the FRenderer interface from the main game code.
This does not work with a setup where the same backend is driving both renderers.
Most of this is now routed through 'screen', and the decision between renderers has to be made inside the actual render functions.
The software renderer is still driven by a thin opaque interface to keep it mostly an isolated module.
2018-04-04 00:21:25 +02:00
Christoph Oelckers
60aebff4a1 - starting separation of hardware dependent and hardware independent code, starting with aabbtree, because it was easy. 2018-04-02 15:58:28 +02:00
Christoph Oelckers
d01bc452ba - moved all variables not related to the hardware renderer's texture state out of gl_info. 2018-04-02 13:00:33 +02:00
Christoph Oelckers
1fc4c9801b - moved all GLDEFS parsing into a dedicated source file.
- split gl_postprocessshader.h in two so that the hardware independent part can be used by GLDEFS without pulling in all of OpenGL.
2018-04-02 12:28:20 +02:00
Christoph Oelckers
248a29bf06 - resorted portal render data.
Compiles but does not work...
2018-04-01 22:26:57 +02:00
Christoph Oelckers
65e7b6dfaa - moved the code in gl_data.cpp to better fitting places
* the MAPINFO options now get handled in g_mapinfo.cpp and g_level.cpp, just like the rest of them as members of level_info_t and FLevelLocals.
* RecalcVertexHeights has been made a member of vertex_t and been moved to p_sectors.cpp.
* the dumpgeometry CCMD has been moved to p_setup.cpp
2018-04-01 18:45:27 +02:00
Christoph Oelckers
0127a71974 - fixed last commit. 2018-04-01 17:16:53 +02:00
Christoph Oelckers
8b79eedfea - moved CreateTexBuffer out of the GL code.
This is merely a buffer creation function with no dependencies on the renderer.
2018-04-01 14:38:48 +02:00
Christoph Oelckers
1461059dae - moved contents of gl_templates.h to files outside of gl/ 2018-04-01 11:59:12 +02:00
Christoph Oelckers
e49cd2cb83 - moved the hires replacement and upscaling code out of the GL classes into FTexture.
This theoretically means that the software renderer could access this data as well - if it just had been written with a more flexible texture interface.
However, as things stand, this may require quite a bit of work to achieve.
2018-04-01 10:41:04 +02:00
Christoph Oelckers
a9d5533603 - integrated GL parts of translation handling into the main module.
Now that this doesn't have to share assets with HW2D it could be simplified a lot.
2018-04-01 00:59:49 +02:00
Christoph Oelckers
a001a5304d - removed the old software renderer framebuffers for Windows
This cannot be refactored with the old code still present and done properly both renderers should share what they can.
2018-03-30 23:18:25 +02:00
Christoph Oelckers
00c66f42d3 - made DTA_SpecialColormap work, both for GL3+ and GL2 render paths.
This will only be used for HUD sprites. At the moment it will ignore sprite translations, though, when running in OpenGL 2 legacy mode.
2018-03-30 21:14:49 +02:00
Christoph Oelckers
832df6d43a - implemented desaturation for the legacy GL renderer's 2D.
A lot of work that's only needed to be able to use the hardware renderer's 2D code with the software renderer.
2018-03-30 18:14:42 +02:00
Christoph Oelckers
811d96e07e D3D 2D code refactored but not tested yet. 2018-03-29 23:21:25 +02:00
Christoph Oelckers
a40e085a46 - 2D drawer implementation complete for hardware renderer.
This also replaces DTA_ColormapStyle with proper implementations of its components. As implemented it was a very awkward mixture of various effects that already existed in a separate form. As a result of its implementation it required additional but completely redundant shader support which could be removed now. As a side effect of this change a new DTA_Desaturate option was added.
2018-03-29 16:21:21 +02:00
Christoph Oelckers
077df87704 - 2D code works in GL legacy mode.
Not tested yet with shaders.
2018-03-29 11:58:28 +02:00
Christoph Oelckers
fa6ba84094 - fixed untextured vertex order and removed some test code. 2018-03-29 00:38:31 +02:00
Christoph Oelckers
a253b15334 - more fixes. 2018-03-28 23:57:50 +02:00
Christoph Oelckers
3ca3193379 - fixed a few things, but still not working. 2018-03-28 23:42:06 +02:00
Christoph Oelckers
b194f2c466 - game starts, but no 2D visible yet. 2018-03-28 22:04:28 +02:00
Christoph Oelckers
70b6754299 - implemented the 2D drawer for the hardware renderer. Not tested yet. 2018-03-28 21:38:00 +02:00
Christoph Oelckers
16480a3f4b - it compiles again.
This won't work, though, because no backend for the new 2D code exists yet.
2018-03-28 16:40:09 +02:00
Christoph Oelckers
33289ade49 - renamed the 2D drawer in the GL renderer so that the same name can be used for the device-independent replacement. 2018-03-27 21:44:58 +02:00
Christoph Oelckers
e89a598b31 - renamed FTexture's UseType flags and gave them a dedicated type.
This was done mainly to reduce the amount of occurences of the word FTexture but it immediately helped detect two small and mostly harmless bugs that were found due to the stricter type checks.
2018-03-25 20:26:16 +02:00
Christoph Oelckers
0a07f4c144 - fixed alpha texture generation for OpenGL rendering.
The old logic used a translation table that does not work with color images, it was designed to handle 8 bit grayscale images.
So now, it creates a true color buffer and then turns it into a texture with R,G,B = 255 and the alpha channel set to the grayscale value.

This was also the reason why crosshairs made from 32 bit PNGs did not show correctly.
2018-03-22 23:57:14 +01:00
Christoph Oelckers
d586d774cf - adjusted GL renderer to the new rules for alpha textures. This means that the translation fallback is only needed for the legacy renderer now. Modern GL can use the regular texture and will apply a grayscale mapping instead of merely using the red channel. 2018-03-22 20:42:17 +01:00
Christoph Oelckers
b327aa737a Merge remote-tracking branch 'remotes/origin/materials' 2018-03-03 08:54:04 +01:00
Christoph Oelckers
685e5c1e95 - fixed: Camera textures must always be drawn with texture mode opaque, because the contents of their alpha channels are undefined. 2018-03-01 13:52:23 +01:00
Magnus Norddahl
4e7ca68bd6 Merge remote-tracking branch 'gzdoom/master' into materials 2018-02-20 00:22:06 +01:00
Christoph Oelckers
6a02eaa595 - second part of texture fix. 2018-02-15 18:40:23 +01:00
Christoph Oelckers
ef55386d9f - let the texture manager handle the special OpenGL textures so that they get deleted and recreated when needed. 2018-02-15 17:56:04 +01:00
Magnus Norddahl
30af6d38b3 - fix automap render bug 2018-01-25 20:22:51 +01:00
Magnus Norddahl
7a59bcde4c - move glossiness and specular level to GLDEFS 2018-01-25 19:53:55 +01:00
Magnus Norddahl
a46bbc81a0 Merge branch 'bloom_psprite_fix' into gzdoom 2018-01-25 19:01:46 +01:00
Magnus Norddahl
a23e5f49f6 - Add "fuzz software" to GL that renders fuzz like the scaled fuzz mode in the software renderer 2018-01-07 02:29:55 +01:00
Magnus Norddahl
f88d9a02df Remove bloom effect on psprites 2018-01-06 05:11:12 +01:00
Rachael Alexanderson
1559d74c2c - repaired the video scaling code 2017-12-10 04:22:28 -05:00
Rachael Alexanderson
505c99b0a8 - fixed: doublize more internal structures, even if they still get converted to float later 2017-12-04 17:39:57 -05:00
Christoph Oelckers
836970f012 - moved the matrix code out of 'gl' because the model code also needs it. 2017-11-25 13:51:09 +01:00
Rachael Alexanderson
505da5bf4f Merge branch 'master' of https://github.com/coelckers/gzdoom into newtimercode4 2017-11-21 05:23:00 -05:00
Rachael Alexanderson
47e9975e90 - fixed a couple of fixes from the previous commit 2017-11-21 05:20:02 -05:00
Rachael Alexanderson
2bc86b52c8 - fixed a few of the more obvious logic errors 2017-11-21 04:06:24 -05:00
Rachael Alexanderson
351de94311 - fixed: Accidentally committed in-progress work... again
Partial Revert "- fixed: Made shader targets not case sensitive"

This reverts commit 2c24d2e047.
2017-11-19 04:46:52 -05:00
Rachael Alexanderson
2c24d2e047 - fixed: Made shader targets not case sensitive 2017-11-19 04:41:07 -05:00
Christoph Oelckers
16fa0cba21 - fixed comparison.
The timer reset must also occur when the values are equal, meaning they got set during the same millisecond.
2017-11-15 18:02:41 +01:00