Rachael Alexanderson
2096fefcee
Merge remote-tracking branch 'origin/master' into gles2_merge
2021-08-18 12:31:47 -04:00
Christoph Oelckers
109069f718
- removed the unused palette parameter from the V_GetColor family of functions.
2021-08-14 09:57:23 +02:00
Christoph Oelckers
441cd0796f
- merged gzdoom-gles2 and fixed some issues with pipeline size validation.
2021-08-03 20:12:19 +02:00
Christoph Oelckers
e453f97872
- Backend update from Raze.
2021-07-11 09:53:01 +02:00
Christoph Oelckers
5f02b92cd0
- font system overhaul.
...
This eliminates nearly all palette dependencies, most importantly font translation will now be done on True Color data, making translations on True Color font less destructive.
2021-05-24 21:28:21 +02:00
Christoph Oelckers
a3a65f184f
- use stb-image to handle PNGs with 16 bit color channels.
...
It is still not recommended to use this format - images tend to be huge and setup time is normally prohibitive - but at least they work now.
2021-05-19 19:20:51 +02:00
Christoph Oelckers
52554dc32c
- Backend update fron Raze, mainly new script exports and extensions.
2021-05-03 14:13:03 +02:00
Christoph Oelckers
ba146ed5e5
- Backend update from Raze
2021-04-19 12:58:35 +02:00
Christoph Oelckers
357163c60d
- Backend update from Raze.
2021-03-04 14:45:29 +01:00
Raccoon
59fcf45222
Add Warnings for when PNG loads fail due to unsupported flags ( #1302 )
...
This was the result of an issue which stumped the entire Discord, which led to me having to debug from source to find why some relatively standard publicly available PBR materials work. GZDoom is the ONLY program in the typical development stack (GIMP, Slade, UDB) with this narrow of support for the PNG format. As such, the average developer will have no other way to figure out what's going wrong without these: these CANNOT be allowed to fail silently. As things like PNG-compression and 64-bit color become more common in royalty-free PBR materials, support should be an eventual target. Even then, these warnings should remain to prevent this from being an issue the next time things change.
2021-02-12 19:37:18 +01:00
Christoph Oelckers
917eb2b5e3
- fixed: FTextureManager::ReplaceTexture did not calculate the upscale flags.
2021-02-07 09:19:56 +01:00
Christoph Oelckers
9925cc380e
- backend update from Raze.
2020-11-23 15:45:33 +01:00
Christoph Oelckers
65c52b9825
- Backend update.
2020-10-16 23:25:18 +02:00
Christoph Oelckers
b8281f4758
- Backend update from Raze.
2020-10-16 22:57:28 +02:00
Rachael Alexanderson
a2f0c27651
- add option to texture hqresize resize model skins.
2020-10-08 00:30:12 -04:00
Christoph Oelckers
3ef806c2e9
- do not set CTF_Indexed for the software canvas and do not check for the shader to make decisions.
...
Always check the flag.
2020-09-27 19:55:04 +02:00
Christoph Oelckers
df3dc91514
- fixed crash on texture init.
2020-09-27 13:32:30 +02:00
Christoph Oelckers
528e4e46b3
- texture manager update from Raze
...
* new texture format: ANM - this reads the first frame of a Build-ANM movie as a texture.
* some preparations for indexed (paletted) rendering.
* optimization of the patch texture checker - do not read in the entire file if checking the initial header is sufficient for rejecting it.
2020-09-27 10:38:12 +02:00
Christoph Oelckers
f4c5a25a52
- fixed: CreateTexBuffer did not check the Inactive flag for the requested translation.
2020-09-26 22:03:15 +02:00
Rachael Alexanderson
54a630c3cf
- amend last commit: rename the variable to something slightly more meaningful
2020-08-25 19:48:25 -04:00
Rachael Alexanderson
28f7728980
- fix a bug in the png renderer of the software renderer with decals: if the palette remap is missing, don't attempt to use it. (fix null pointer)
2020-08-25 19:10:22 -04:00
Christoph Oelckers
d1cbabff66
- backend update from Raze.
...
(No, the AnimTexture isn't used yet.)
2020-06-16 00:09:19 +02:00
Christoph Oelckers
82e4104900
- moved several VM exports for game independent objects to 'common'.
2020-06-14 12:16:22 +02:00
Christoph Oelckers
91a21e9cf1
- fixed: FGameTexture's GlowHeight was not initialized.
2020-06-12 16:43:27 +02:00
Christoph Oelckers
95c232d31a
- fixed: The scissor rectangle must be clipped to the upper left edge of the screen.
...
Negative coordinates are treated as "disable scissor", so if some transformation results in something off-screen it needs to be handled before passing it to the backend.
2020-06-11 14:12:05 +02:00
Christoph Oelckers
60a20af8ff
- fixed code that deternines when to upscale a texture.
...
This was very much non-functional.
2020-06-10 00:21:19 +02:00
Christoph Oelckers
2d13dcfc81
- fixed fallback lookup for multipatch textures referencing themselves as patch.
...
The code hadn't been properly updated to the new 3-layer texture system.
2020-06-09 23:18:55 +02:00
Christoph Oelckers
af7c2fb4e9
- fixed the burn shader.
2020-06-09 22:06:19 +02:00
Christoph Oelckers
a330b46d1a
- fixed: The mutipatch texture builder did not set the source lump.
2020-06-08 23:37:21 +02:00
Christoph Oelckers
db93f2969e
- fixed offsets for hires replacements of already scaled textures.
2020-06-06 19:01:11 +02:00
Christoph Oelckers
16e64a19ae
- fixed incorrect offsets for textures in the hires/ folder.
2020-06-06 13:59:39 +02:00
Christoph Oelckers
9f6d244016
- advanced coordinate control for overlays over DTA_Fullscreen images.
2020-06-06 12:51:03 +02:00
Christoph Oelckers
720853cff8
- made some changes so that material definitions can properly check automatic layers when determining their material type.
...
Most importantly this means that any texture with a custom material definition needs to load its automatic layers before applying the definition.
2020-06-03 21:16:36 +02:00
Christoph Oelckers
fa54afbd08
- addressed a problem with materials depending on automatically added textures.
...
This isn't a fix, it just removes a sanity check that really shouldn't be, but thanks of an underspecification of the material definition it was never possible to do this case properly.
2020-06-03 00:16:25 +02:00
Christoph Oelckers
96cf16c923
- fixed: Copying a texture's size must also copy the offset.
2020-06-02 21:23:38 +02:00
Christoph Oelckers
f91958e88d
- fixed scale setup for multipatch textures.
2020-06-02 20:38:46 +02:00
Christoph Oelckers
8f07ab87c8
- make sure that incomplete multipatch textures are technically complete.
...
They need a valid FTexture backing them and should have their name cleared so that nothing references them by accident.
2020-06-02 20:15:55 +02:00
Christoph Oelckers
8480a390a1
- synced texture sampler setup fixes from Raze.
2020-06-02 11:45:34 +02:00
Christoph Oelckers
4c11b01588
- backend sync with Raze.
2020-05-31 23:37:11 +02:00
Christoph Oelckers
a517b04908
- texture sampler cleanup.
2020-05-28 22:51:17 +02:00
Christoph Oelckers
c892fb1ddb
- backend sync with Raze
...
Mostly code reformatting plus license and copyright adjustments
2020-05-26 22:59:50 +02:00
Christoph Oelckers
b2b1ecc11f
- Single image fonts do not use translations.
2020-05-25 21:16:36 +02:00
Christoph Oelckers
29344006a0
- fixed: texture upscaling was disabled by default.
...
It should only be disabled if the scale of a texture is greater than 2.
2020-05-25 20:41:47 +02:00
Christoph Oelckers
192ea40634
- fixed order of multipatch texture initialization.
...
This didn't play well with hires replacements - the texture size needs to be set as early as possible.
2020-05-04 21:24:36 +02:00
Christoph Oelckers
3fd4d08004
- fixed startup and font init crashes.
2020-05-04 20:06:54 +02:00
Christoph Oelckers
3eecb6b3b6
- fixed creation of multipatch textures using other multipatch textures as their source.
2020-04-30 00:12:28 +02:00
Christoph Oelckers
d71ef66957
- fixes copied from Raze.
2020-04-29 23:58:50 +02:00
Christoph Oelckers
e3fdf2194e
- moved a few leftover utility classes to 'common'.
2020-04-29 17:51:04 +02:00
Christoph Oelckers
ddef3f7b98
- made video base code game independent
2020-04-28 22:54:53 +02:00
Christoph Oelckers
46d263b5a8
- header separation of model code.
2020-04-27 01:16:17 +02:00
Christoph Oelckers
763e9e0f35
- fixed texture scaling setup in a few places.
2020-04-26 13:48:51 +02:00
Christoph Oelckers
cf41a0b1fb
- moved hw_cvars to 'common'.
2020-04-26 11:38:38 +02:00
Christoph Oelckers
f17617706d
- moved the scale overrider to v_draw.h.
2020-04-21 21:23:04 +02:00
Christoph Oelckers
ce95d7379f
- swapped out the license in two files.
...
BSD is preferred over LGPL
2020-04-21 21:06:11 +02:00
Christoph Oelckers
f296660266
- set all texture IDs after finishing the initial texture manager initialization.
...
As it turned out, not all textures have a valid ID at that point so it needs to be redone.
2020-04-19 21:15:01 +02:00
Christoph Oelckers
b7ea483323
- fixed checkForHacks placement.
2020-04-19 19:52:03 +02:00
Christoph Oelckers
8dbc727178
- fixed compile errors pointed out by CI
2020-04-19 19:05:50 +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
c836dd3dbf
- initialize bNoRemap0
2020-04-19 10:57:55 +02:00
Christoph Oelckers
ef8e7a4944
- reworked the multipatch texture builder to reuse the FImageTexture objects.
2020-04-19 10:57:55 +02:00
Christoph Oelckers
389892a079
- moved SkyOffset and Rotations.
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
217b80b1fb
- moved the brightmap check flag out of FTexture.
2020-04-19 10:57:54 +02:00
Christoph Oelckers
0a1bd458db
- moved most material flags out of FTexture.
2020-04-19 10:57:54 +02:00
Christoph Oelckers
d812801707
- moved the shader properties to FGameTexture.
2020-04-19 10:57:54 +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
718949f74d
- moved the texture name to FGameTexture.
2020-04-19 10:57:53 +02:00
Christoph Oelckers
7dd108c960
- removed FTexture's Scale variable.
2020-04-19 10:57:53 +02:00
Christoph Oelckers
eb369dbf41
- initialize texture offsets for images on construction.
2020-04-19 10:57:53 +02:00
Christoph Oelckers
61380fc505
- moved the offsets to FGameTexture.
...
# Conflicts:
# src/common/textures/textures.h
2020-04-19 10:57:53 +02:00
Christoph Oelckers
8843761bf8
- moved most of the texture size maintenance to the FGameTexture class.
2020-04-19 10:57:53 +02:00
Christoph Oelckers
9bc1d4f38f
- restored null texture setup.
2020-04-19 10:57:52 +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
d1da26895b
- moved the texture ID up one level.
2020-04-19 10:57:52 +02:00
Christoph Oelckers
7641da8b7b
- moved several members from FTexture to FGameTexture.
2020-04-19 10:57:52 +02:00
Christoph Oelckers
42304d9680
- store the material layers in reference counted pointers in the FGameTexture object.
...
Reference counting is used because a texture image may be shared by more than one game texture.
2020-04-19 10:57:51 +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
09898ef6c3
- cache the upscaling check's result in the texture, as this will be queried quite frequently.
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
a81bb2a136
- make FGameTexture a separate object owning an FTexture instead of merely using a type cast to access it.
2020-04-19 10:57:50 +02:00
Christoph Oelckers
095a5e2c0a
- allocate the sprite positioning info on demand only.
...
For most textures this is never needed and it can easily be put in the memory arena being used for image sources.
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
da873ca8d1
- moved the handling for paletted replacements into the texture manager.
...
This is something the texture should not concern itself with.
2020-04-19 10:57:49 +02:00
Christoph Oelckers
18760d6622
- deleted unused function.
2020-04-19 10:57:49 +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
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
437d4f8af0
- changed storage in texture manager to FGameTexture.
2020-04-19 10:57:48 +02:00
Christoph Oelckers
c605359b0e
- animator transitioned.
2020-04-19 10:57:48 +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
31035a6cea
- cleaned out the coordinate code in FMaterial.
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
d9928b51a8
- eliminated all cases of calling DrawTexture with an FTexture.
...
Everything uses FGameTexture now.
2020-04-19 10:57:45 +02:00
Christoph Oelckers
c7db5b932e
- switched the entire status bar code to use FGameTexture.
...
- scale the automap parchment to clean 320x200 dimensions.
2020-04-19 10:57:45 +02:00
Christoph Oelckers
5d8adb90c4
- made 'supportRemap0' an image property so that later the handling for this can be taken out of the actual texture class by just providing a replacement texture for the skies.
2020-04-19 10:57:45 +02:00
Christoph Oelckers
9593cb56ae
- decoupled the software renderer entirely from FTexture - it will only look at FSoftwareTexture now, all access to the texture manager has been wrapped.
2020-04-19 10:57:45 +02:00
Christoph Oelckers
73b4fbe861
- FGameTexture conversion in am_map.cpp
2020-04-19 10:57:44 +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
dd5de4ce51
- removed test code that forced all textures being warped.
2020-04-19 10:57:43 +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
3e02121822
- fixed setup of content ID in CreateTexBuffer.
2020-04-13 14:55:16 +02:00
Christoph Oelckers
e92be97f33
- let FSkybox inherit from FImageTexture to simplify the redirection of the base image for the software renderer.
2020-04-13 14:23:57 +02:00
alexey.lysiuk
2b1ef5f4f2
- common fixes for compilation with GCC and Clang
2020-04-12 11:02:05 +03:00
Christoph Oelckers
07e303f99b
- fixed compilation.
2020-04-11 22:23:09 +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
1e40b745d5
- added some things from Raze to allow using the same code in both projects.
2020-04-11 20:20:59 +02:00
Christoph Oelckers
1a0ace4f88
- palette related fixes.
2020-04-11 20:20:40 +02:00
Christoph Oelckers
2dcf63c57d
- backport some fixes from Raze - mostly redundant includes.
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
65f15e1147
- moved the material class to 'common' as well.
2020-04-11 20:20:38 +02:00
Christoph Oelckers
580e463498
- moved texture code to 'common'.
2020-04-11 20:20:38 +02:00
Christoph Oelckers
f94e4a908c
- m_png is common.
2020-04-11 20:19:52 +02:00