Christoph Oelckers
a0d679b84b
- FileData cleanup and uncoupling from FString.
...
Work is still needed to allow this to use the lump cache directly because some decisions in the past made this data padded by a zero byte.
2023-08-22 22:54:52 +02:00
Christoph Oelckers
8a5d3c096b
- return a std::string from GetFileFullPath
2023-08-22 22:18:54 +02:00
Christoph Oelckers
25b7b18c3d
- got rid of the two copying variants of fileSystem.GetFileShortName.
2023-08-22 22:18:53 +02:00
Christoph Oelckers
5398045f7d
- got rid of FileSystem::GetFileData.
...
Using FMemFile is better in all these places.
2023-08-22 22:18:53 +02:00
Christoph Oelckers
21d6eb99eb
use std::vector as return value for the FileReader's buffer readers.
2023-08-22 22:18:21 +02:00
Christoph Oelckers
f0bbc32bae
- add m_swap.h to several files.
2023-08-22 21:49:55 +02:00
Cacodemon345
145450a044
WebP image support
2023-08-22 19:14:21 +02:00
Cacodemon345
a4573b4ad1
Fix QOI image loading
2023-08-17 08:56:50 -04:00
Christoph Oelckers
74b3d8e0a0
- optimized the QOI loader
...
* removed the intermediate pixel buffer
* instead of calling the file API for each single byte, load it into a buffer and use direct memory access. Using a file API like this can be magnitudes slower, depending on the underlying data.
* don't store the header in the image source object, it is never used again after validatipn.
2023-08-13 19:03:20 +02:00
Cacodemon345
c727e40e6c
Add support for QOI image formats
2023-08-13 06:04:15 -04:00
Christoph Oelckers
979f4311fa
- moved stb_image.h to third party folder.
2023-08-09 08:22:47 +02:00
Christoph Oelckers
4c751db489
- silence some warnings.
2023-01-07 18:35:30 +01:00
Christoph Oelckers
1a0aa95ff4
- changed return value of CreatePalettedPixels.
...
The new struct will allpw return of static pixel data without reallocation and copying.
2023-01-07 17:55:55 +01:00
Christoph Oelckers
4e4642d0ed
- fixed buffer size checks for raw textures.
2023-01-07 16:15:32 +01:00
Christoph Oelckers
2b805e196d
- do two-step init of CVARs to ensure that flag and mask vars always find their master CVar.
2022-10-24 19:27:04 +02:00
Christoph Oelckers
2c29a93f1f
- fixed compile.
2022-10-02 20:45:00 +02:00
Christoph Oelckers
34f30ee70b
- remove gi.h includes in backend code.
2022-10-02 14:04:24 +02:00
Christoph Oelckers
c62e14d2c1
- Backend update from Raze
...
Mostly cleanup and better separation of game/backend concerns.
2022-06-06 12:09:29 +02:00
Christoph Oelckers
608b387e04
- use correct mapping for IBM437’s lower characters
...
For use on text screens these need to be mapped to the printable characters they represent on screen, not the control characters of ASCII.
2022-06-03 00:12:45 +02:00
Christoph Oelckers
7787a410ea
- Startscreen fixes.
...
* for Strife the game palette must be loaded before the start screen.
* increase update frequency of start screen to roughly 35 fps
* fixed Strife's laser sprite names.
* do not show the native progress bar if a graphical start screen is used.
2022-06-01 09:30:20 +02:00
Christoph Oelckers
21c60c931e
- warning fixes and cleanup from old startscreen branch.
2022-06-01 08:36:59 +02:00
Christoph Oelckers
1aa3a5ea16
- platform independent classes for start screen rendering.
...
These use the internal 2D drawer. Not hooked up yet.
2022-06-01 08:36:59 +02:00
Christoph Oelckers
beeb5f00aa
- added JPEG YCCK decoding.
...
Just for completeness - the formula was pieced together from stb_image's handling.
2022-05-12 12:14:14 +02:00
Christoph Oelckers
c86d9f60d0
- added handlers to load Strife’s startup screen images as textures
2022-05-03 00:04:28 +02:00
Christoph Oelckers
73abb2dfac
- added image source handlers for Hexen’s special startup image types
2022-05-02 00:28:56 +02:00
Christoph Oelckers
e60e6967c0
- whitespace cleanup, updated from Raze.
2022-01-02 12:23:42 +01:00
Christoph Oelckers
1c517d19fa
- Backend update from Raze.
...
This is mainly code cleanup from setting the compiler to a stricter warning level.
2022-01-02 11:39:17 +01:00
Major Cooke
bbd91be5d5
Added NoTrim for TEXTURES.
...
- This can be applied either in or outside of a definition of a sprite.
- Simply adding "NoTrim" inside a definition will apply it.
- Syntax outside of a sprite is `NoTrim <SpriteName>`.
2021-12-14 15:22:01 +01:00
Christoph Oelckers
77d74a11d1
- removed most templates.h includes.
2021-10-30 10:49:12 +02:00
Christoph Oelckers
eb69bbcae0
- replaced MIN/MAX in common code.
2021-10-30 10:46:17 +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
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
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
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
a330b46d1a
- fixed: The mutipatch texture builder did not set the source lump.
2020-06-08 23:37:21 +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
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
ef8e7a4944
- reworked the multipatch texture builder to reuse the FImageTexture objects.
2020-04-19 10:57:55 +02:00
Christoph Oelckers
0a1bd458db
- moved most material flags out of FTexture.
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
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
c5e81c54a2
- Moved the raw texture handling into the texture manager as well.
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
7bdef7fe9a
- cleaned the texture manager's method interface from FTexture references.
2020-04-19 10:57:49 +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
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