Commit graph

440 commits

Author SHA1 Message Date
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
7bdef7fe9a - cleaned the texture manager's method interface from FTexture references. 2020-04-19 10:57:49 +02:00
Christoph Oelckers
f5d5888c22 - thinned out the Texturemanager interface. 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
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
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
8f8aed5ee3 - moved bitmap.cpp to 'common' and remove the duplicate IceRemap. 2020-04-11 20:23:26 +02:00
Christoph Oelckers
def123823b - cleanup of 2D code. 2020-04-11 20:20:58 +02:00
Christoph Oelckers
b18faacab0 - 2D drawer cleanup. 2020-04-11 20:20:58 +02:00
Christoph Oelckers
7b292cca57 - split the serializer in two to keep the Doom specific parts out of the main file. 2020-04-11 20:20:53 +02:00
Christoph Oelckers
f74efcf721 - split the TObjPtr serializers into a separate file to avoid polluting everything that needs to use the serializer.
To use these it is necessary to include dobject.h and all its dependencies, so this should not be done unless necessary.
2020-04-11 20:20:53 +02:00
Christoph Oelckers
32300f7d26 - use translation slot 0 for reserved content, like font translations. 2020-04-11 20:20:39 +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
580e463498 - moved texture code to 'common'. 2020-04-11 20:20:38 +02:00
Christoph Oelckers
3e285d2261 - moved renderstyle and colortables code to 'common'. 2020-04-11 20:20:37 +02:00
Christoph Oelckers
f8e9cb8fbc - major dependency reduction of the texture system. 2020-04-11 20:20:37 +02:00
Christoph Oelckers
ab77416ddc - set transparent color 0 in the proper place. 2020-04-11 20:20:36 +02:00
Christoph Oelckers
1ed170d955 - moved some data needed by the texture system into palettecontainer.cpp. 2020-04-11 20:20:36 +02:00
Christoph Oelckers
7d192decc7 - some cleanup of the texture code
* removed unneeded includes
* moved global brightmap to GPalette
* took Build tile init code out of the FTextureManager class, because this code is not compatible with how real Build games need to go about it, making the texture manager not shareable.
* removed dependency on higher level info from the Image class.
2020-04-11 20:20:35 +02:00
Christoph Oelckers
56f2b2ac56 - reduce backend's dependency on game state by using callbacks. 2020-04-11 20:19:53 +02:00
Christoph Oelckers
721b857e5e - minor FTexture cleanup. 2020-04-11 20:19:53 +02:00
Christoph Oelckers
b4e9c3f20d - missed two things that need to be 'common'. 2020-04-11 20:19:53 +02:00
Christoph Oelckers
ac610d87e5 - merged FPalette and PaletteContainer. 2020-04-11 20:19:53 +02:00
Christoph Oelckers
7243495b16 - moved special color maps to utilities.
The default tables are needed by the texture compositor which should be universal, so this needs to be, too.
2020-04-11 20:19:52 +02:00
Christoph Oelckers
05239c63f9 - moved some palette related code into the 'common' folder. 2020-04-11 14:00:22 +02:00
Christoph Oelckers
05d8856fe0 - moved file system implementation to 'common'. 2020-04-11 14:00:20 +02:00
Christoph Oelckers
80c6d5b276 - renamed more stuff and also moved the Strife teaser voice handling out of the file system. 2020-04-11 14:00:19 +02:00
Christoph Oelckers
c1bb7de23a - more file system refactoring.
* moved the sprite renaming out of the file system entirely into a caller-provided callback.
* renamed several functions to closer match the terms of a file system.
* moved the VM interface out of the implementation.
2020-04-11 14:00:19 +02:00
Christoph Oelckers
6bccde3b51 - renamed the file system related classes to actually use the term "FileSystem". 2020-04-11 14:00:18 +02:00
Christoph Oelckers
76352dd9b3 - moved the last remaining utilities. 2020-04-11 14:00:14 +02:00
Christoph Oelckers
ace3e29473 - removed the implicit conversion operators from FName.
These were creating dangerous interdependencies. It is better to do explicit conversions when needed.
As an added plus, this means that zstring.h no longer depends on name.h which was very annoying.
2020-04-11 14:00:13 +02:00
Christoph Oelckers
6996d54a23 - moved more code to 'common'.
This is all low level utilities with no dependencies on game logic. Having this in a separate directory makes sharing with Raze a lot easier.
2020-04-11 14:00:12 +02:00
Christoph Oelckers
820fe8b3f9 - split off the container for the translation data into its own file. 2020-04-11 14:00:11 +02:00
Christoph Oelckers
66a837f983 - took the translation slot definition out of the container and use a dynamic array to store the data. 2020-04-11 14:00:11 +02:00
Christoph Oelckers
cf757ba834 - made the translation container a class.
This also splits off some Doom-specific implementation details into higher level headers.
2020-04-11 14:00:11 +02:00
Christoph Oelckers
520a96033b - minimalized the interface to the translation tables to a small set of functions.
Now the internals can be refactored without affecting all using code.
2020-04-11 14:00:10 +02:00
Christoph Oelckers
0a7344e432 - abstract the external translation interface.
The translation table array now only gets accessed from within r_translate.cpp.
2020-04-11 14:00:10 +02:00
Christoph Oelckers
d00ad60437 - fixed a few issues pointed out by the assert in the TArray [] operator. 2020-04-11 14:00:10 +02:00
Christoph Oelckers
77c4a57c51 - allocate FRemapTable's content statically.
first step of organizing this data more renderer-friendly.
2020-04-11 14:00:10 +02:00
Christoph Oelckers
b0ecb02d6b - move SuperFastHash to its own set of files, instead of having this tied to the console.
- replace swapvalues with std::swap globally.
- added some additions to utility code from Raze, mainly to reduce file content differences.
- reduced some unused utilities
2020-04-11 14:00:10 +02:00
Christoph Oelckers
15d4fb8fcd - fixed file existence check in TRNSLATE parser. 2020-03-17 07:57:59 +01:00
Christoph Oelckers
828cba13a1 - changed translation management so that the fonts also use translation IDs. 2020-03-16 17:23:30 +01:00
Christoph Oelckers
0c04cddd28 - allow specifying full palettes in translation definitions. 2020-03-15 10:22:42 +01:00
alexey.lysiuk
747c6dcbc9 - customized invulnerability colormap does not interfere with Powerup.ColorMap
https://forum.zdoom.org/viewtopic.php?t=66955
2020-01-18 17:27:45 +01:00
Rachael Alexanderson
98ee0a7035 - move colorization parser from 'textures' to 'gldefs' 2020-01-05 16:30:01 -05:00
alexey.lysiuk
d4ac797602 - made load game failure a bit more resilient
https://www.doomworld.com/forum/topic/111069-savestate-problems-with-gzdoom/
2020-01-02 13:40:14 +02:00
Rachael Alexanderson
ea98676085 - oops, missed this one 2020-01-01 08:12:31 -05:00
Rachael Alexanderson
dff45eb1f3 - relicense some of my past work under BSD 2020-01-01 07:38:06 -05:00