Christoph Oelckers
69d724ae73
- moved lightbuffers and flatvertices to 'common'.
2020-04-26 12:41:13 +02:00
Christoph Oelckers
c5dca89e66
- clean separation of vertex creation from map data and the buffer object.
...
This was yet another object with too broad scope, the vertex creation has been offloaded into out-of-class functions now.
2020-04-26 12:12:07 +02:00
Christoph Oelckers
cf41a0b1fb
- moved hw_cvars to 'common'.
2020-04-26 11:38:38 +02:00
Christoph Oelckers
61c94c25ed
- more hw_cvars cleanup.
...
Copied several range checks from Raze, moved vid_gamma to hw_cvars.cpp and removed some old and no longer necessary gamma setup code.
2020-04-26 10:58:44 +02:00
Christoph Oelckers
1ad2f30e0d
- moved sprite CVARs out of the global CVAR storage file.
...
They are local to hw_sprites.cpp now, as they aren't used anywhere else.
2020-04-26 10:47:57 +02:00
Christoph Oelckers
686aa9779d
- moved VR code and IntRect to 'common'
2020-04-26 10:26:29 +02:00
Christoph Oelckers
4b56714199
- made hw_postprocess.cpp compatible.
...
The shadowmap is not universal, it depends on Doom's map format.
2020-04-26 00:03:08 +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
21f32834b2
- moved the postprocessing code to 'common', except for the game-dependent script exports.
2020-04-25 22:37:27 +02:00
Christoph Oelckers
b6cc31eb0d
- moved around a few more files.
2020-04-25 22:17:41 +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
9872065fc6
- moved file to its proper place.
2020-04-25 18:38:17 +02:00
Christoph Oelckers
10bc37b37e
- moved RenderView out of the framebuffer classes to complete the consolidation of the renderer's entry points.
2020-04-25 17:58:26 +02:00
Christoph Oelckers
44d39ef63e
- consolidated the savegame picture code.
2020-04-25 13:18:57 +02:00
Christoph Oelckers
6177ed153d
- consolidated the 3 RenderViewpoint variants and took the function out of the framebuffer class.
2020-04-25 10:51:45 +02:00
Christoph Oelckers
c203df5edb
- consolidated the 3 virtually identical instances of DrawScene and moved the function to HWDrawInfo.
...
The only backend dependent call in there, ambient occlusion, has been made a virtual of DFrameBuffer.
2020-04-24 21:47:18 +02:00
Christoph Oelckers
4da2351671
- fixed compile errors in POSIX platform code.
2020-04-22 20:42:13 +02:00
Christoph Oelckers
a40578a0a4
- changed more license headers to BSD.
2020-04-21 22:11:59 +02:00
Christoph Oelckers
0eb68177ca
Merge branch 'master' into texture_rework
2020-04-19 18:07:16 +02:00
Christoph Oelckers
a21d3ae106
- fixed incorrect value range for particle's depth value, used for sorting.
2020-04-19 13:46:00 +02:00
Christoph Oelckers
d4cc217d42
- fixed a few things that slipped through
2020-04-19 12:40:30 +02:00
Christoph Oelckers
b2281c38e1
- fixed texture layer management so that each material layer can decide for itself if it wants to allow upscaling.
...
- rewrote the hardware texture precacher to use the new texture management to properly track the data to delete.
2020-04-19 10:57:56 +02:00
Christoph Oelckers
cedc95c2a5
- split out FGameTexture into its own files.
2020-04-19 10:57:56 +02:00
Christoph Oelckers
5a2a72fc95
- store the Vulkan descriptor sets in the material - where they belong!
...
Having them in the base texture object was a major maintenance issue.
2020-04-19 10:57:56 +02:00
Christoph Oelckers
46e75e8107
- fixed crash with particles checking a non-existent actor.
2020-04-19 10:57:56 +02:00
Christoph Oelckers
59cd049b77
- added missing handling for Rotations to the hardware renderer.
...
Untested due to lack of material.
2020-04-19 10:57:55 +02:00
Christoph Oelckers
f7dd16ba16
- test skyboxes with dynamic_cast and scale them properly.
2020-04-19 10:57:55 +02:00
Christoph Oelckers
e60d758287
- made all member variables of FTexture protected. Also temorarily disabled the CleanUnused call of the precacher - this needs some reworking, now that the texture system is better equipped for it.
2020-04-19 10:57:54 +02:00
Christoph Oelckers
c563f4993f
- took the sky cap color getter out of the texture system.
...
# Conflicts:
# src/common/textures/textures.h
2020-04-19 10:57:52 +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
0b990f0dcb
- moved the decision whether to upscale textures up one level in the function chain. Still not the perfect place, this should be decided before creating the texture, not in the middle of the process.
...
- disabled the selective texture cleaning in the precacher. The logic here turned out to be a serious blocker and needs to be rethought.
2020-04-19 10:57:50 +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
5352682697
- moved the front layer hack for Hexen's skies to the texture manager.
2020-04-19 10:57:50 +02:00
Christoph Oelckers
662fa6e667
- removed the conversion helper code and fixed a few places where FMaterial was only used to access the hardware textures in the FTexture class.
2020-04-19 10:57:49 +02:00
Christoph Oelckers
83817080bb
- more texture cleanup.
...
It is now in a state where FTexture really needs to be separated from FGameTexture.
2020-04-19 10:57:48 +02:00
Christoph Oelckers
c178313da5
- got rid of the last remaining FMaterial references in the high level renderer.
2020-04-19 10:57:47 +02:00
Christoph Oelckers
4cbd20e822
- transitioned sky and decal code away from FMaterial.
2020-04-19 10:57:47 +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
72835c5462
- transitioned the GLDEFS parser to FGameTexture.
2020-04-19 10:57:46 +02:00
Christoph Oelckers
54f4267597
- use FGameTexture in the model rendering code.
2020-04-19 10:57:46 +02:00
Christoph Oelckers
b9b6a354c7
- changed all texture access in the play code to use FGameTexture and redid Hexen's front sky layer by adding a new texture instead of hacking the existing one.
2020-04-19 10:57:46 +02:00
Christoph Oelckers
9e7094848c
- transitioned the 2D drawer to FGameTexture.
2020-04-19 10:57:45 +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
7c46dace03
- this still doesn't work on Vulkan. :(
2020-04-19 10:57:44 +02:00
Christoph Oelckers
8381092cce
- major shader rework
...
* handle brightmaps in the main shader instead of keeping separate instances around.
* added detail and glow layers from Raze.
* fixed material setup which could not guarantee that everything was initialized correctly.
* for warped textures, warp all layers. With this brightmaps finally work on warped textures.
Note: Vulkan reports a "device lost" error with this which still needs to be investigated.
2020-04-19 10:57:43 +02:00
Christoph Oelckers
ce4c2be3c7
- use the 2d drawer's size where appropriate.
2020-04-11 20:20:58 +02:00