Commit graph

28 commits

Author SHA1 Message Date
Christoph Oelckers
69d724ae73 - moved lightbuffers and flatvertices to 'common'. 2020-04-26 12:41:13 +02:00
Christoph Oelckers
cf41a0b1fb - moved hw_cvars to 'common'. 2020-04-26 11:38:38 +02:00
Christoph Oelckers
0c63f5c832 - moved FRenderState to 'common' and removed some game-dependent parts from it. 2020-04-25 23:29:38 +02:00
Christoph Oelckers
59360f2d77 - started cleanup of dependencies of the framebuffer class.
* made the portal state global, outside the framebuffer, because it is pure logic state without dependencies on the backend.
* took the setup functions out of FDynLightData - there is no need to have them as members and they age game dependent.
2020-04-25 21:08:07 +02:00
Christoph Oelckers
4da2351671 - fixed compile errors in POSIX platform code. 2020-04-22 20:42:13 +02:00
Christoph Oelckers
70ec20c137 - optimization of texture scaling checks.
The texture dimension checks can be performed up front when the texture is inserted into the texture manager.
2020-04-19 10:57:51 +02:00
Christoph Oelckers
8505c7ee7d - major refactor of texture upscaling control.
All decisions were done deep inside the texture creation code, leaving zero options to the higher level code for controlling the feature.
Changed this so that the option to upscale must be passed as a parameter to FRenderState::SetMaterial and extended all needed variables to manage the added texture variants.
Still not solved: Material layers need explicit control, not only for scaling but also for filtering.
2020-04-19 10:57:51 +02:00
Christoph Oelckers
c5e81c54a2 - Moved the raw texture handling into the texture manager as well. 2020-04-19 10:57:50 +02:00
Christoph Oelckers
cca3f878f5 - removed FMaterial references from other high level renderer data like HWFlat and HWSprite. 2020-04-19 10:57:47 +02:00
Christoph Oelckers
1146cf9e08 - use FGameTexture instead of FMaterial for texture tracking in HWWall.
The FMaterial object is only needed when finally binding the texture to the render state.
2020-04-19 10:57:47 +02:00
Christoph Oelckers
0ce0099e29 - moved the sprite positioning info out of FMaterial back into FTexture.
This cleans out half of FMaterial and brings it closer to being a texture binding descriptor, which is all it really should be.
2020-04-19 10:57:47 +02:00
Christoph Oelckers
9099bc8420 - reworking some lower level texture code. 2020-04-19 10:57:46 +02:00
Christoph Oelckers
aeba304715 - texture code refactoring to consolidate multiple textures referencing the same backing image. 2020-04-19 10:57:44 +02:00
Christoph Oelckers
b18faacab0 - 2D drawer cleanup. 2020-04-11 20:20:58 +02:00
Christoph Oelckers
d586ffa79c - const-ified the palette pointers in the texture creation code.
- fixed includes.
2020-04-11 20:20:39 +02:00
Christoph Oelckers
f8e9cb8fbc - major dependency reduction of the texture system. 2020-04-11 20:20:37 +02:00
Kevin Caccamo
91589d9799 Attempt to optimize check for ML_DRAWFULLHEIGHT
It is less likely that a line will have the ML_DRAWFULLHEIGHT flag than its' ceiling will be above the neighbouring sector's ceiling and vice versa.
2020-01-11 13:24:02 +01:00
Kevin Caccamo
2ff92e91d2 Fix ML_DRAWFULLHEIGHT flag check 2020-01-11 13:24:02 +01:00
Kevin Caccamo
7ca6e7e5c1 Add handling for drawfullheight flag
Parse drawfullheight flag in UDMF
Draw full height for walls if the linedef has this flag
2020-01-11 13:24:02 +01:00
Christoph Oelckers
f9d2dc51d0 - cleanup of new colorization code.
- profiling shows that running the code for applying the colorization and the gradients is extremely expensive, apparently this always causes a cache miss, so now the entire thing is enabled by a sidedef flag.
2019-12-29 11:30:36 +01:00
Christoph Oelckers
bb8db9422f - scaled down the texture colorization feature for easier usability.
It makes little sense exposing every minute detail of this through UDMF.
Setting it up that way is far too complicated. Using virtual textures that map to a real texture plus a colorization record should be far easier to use by mappers.
This also doesn't piggyback on the Doom64 color feature anymore and is completely separate, despite some redundancies.
This is still missing the texture definition part, though.
2019-12-20 22:25:10 +01:00
Christoph Oelckers
03537e90ff - linked new properties with the renderer.
Support for the softpoly renderer still missing.
2019-12-20 18:56:03 +01:00
Christoph Oelckers
3a249cb06f - added high level interface to the new properties, i.e. UDMF and ZScript. 2019-12-20 18:02:42 +01:00
Christoph Oelckers
3209d4ed23 - added a few more texture coloring options to the shader.
Aside from adding an additive component it can now also do:

- desaturation (not limited to the range of 0..1 so it can also be used for oversaturation by applying a negative number or negative saturation by going above 1.0.
- invert the texture
- apply a blend, including 3 special mode taken from EDuke32.

Currently only the implementation is done, it is not exposed to UDMF yet.
2019-12-20 16:05:00 +01:00
alexey.lysiuk
d1e4b86b9e - fixed compilation with GCC and Clang
src/rendering/hwrenderer/scene/hw_walls.cpp:176:44: error: conditional expression is ambiguous; 'PalEntry' can be converted to 'int' and vice versa
2019-04-20 12:20:32 +03:00
Magnus Norddahl
6699cd5462 - change FRenderState to store directly to the StreamData struct. This simplifies the vulkan backend and also allows the OpenGL backend to use the same uniform block transfer strategy in the future. 2019-04-20 04:16:01 +02:00
Christoph Oelckers
24a52d65a5 - renamed several data types in the hardware renderer that still had a GL prefix, although they are now generic. 2019-03-22 19:54:19 +01:00
Christoph Oelckers
89d607c9a6 - moved all rendering code into a common subdirectory.
No changes to the files themselves was made.
2019-01-31 19:58:17 +01:00
Renamed from src/hwrenderer/scene/hw_walls.cpp (Browse further)