Commit Graph

125 Commits

Author SHA1 Message Date
Alibek Omarov
f863e346f5 engine: reduce dependency on eiface.h 2026-02-26 10:29:09 +05:00
Alibek Omarov
eacc35d9e1 engine: replace COM_CheckString and COM_CheckStringEmpty by COM_StringEmptyOrNULL and COM_StringEmpty 2026-02-21 01:20:34 +05:00
Alibek Omarov
cb7f2ad8af engine: replace Sys_DoubleTime with Platform_DoubleTime in internal code, only use Sys_DoubleTime in APIs
As Sys_DoubleTime is marked with GAME_EXPORT attribute that helps us to
maintain compatible binary interface.
2026-01-13 05:51:19 +05:00
Alibek Omarov
66ea91270b engine: make Image_ComputeSize shared between renderer and imagelib 2025-12-14 00:00:59 +05:00
Alibek Omarov
44fb4fb594 engine: common: imagelib: remove dependency on OpenGL declarations in texture formats 2025-12-13 23:59:40 +05:00
Alibek Omarov
16c849d085 engine: common: imagelib: refactoring 2025-12-13 23:11:48 +05:00
Alibek Omarov
e2835a7614 engine: common: imagelib: fix incorrect check for big endian pixel formats 2025-12-13 22:30:03 +05:00
Max Parry
2ef374ff4a engine: imagelib: img_bmp: support for big endian RGB format
Allows software rendering save screenshots
2025-12-06 19:46:25 +11:00
ncuxonaT
c7f18d7abe dds volume texture fix - img_dds.c 2025-11-27 23:17:18 +08:00
Alibek Omarov
3fc59104f3 engine: make FS_CopyImage argument const 2025-11-22 13:11:41 +05:00
Alibek Omarov
93dfcc344b engine: implement loading luma in half-life 2025-11-18 15:35:20 +05:00
Alibek Omarov
c2448c8881 engine: imagelib: allow specifiying index for empty pixels when processing luma texture 2025-11-18 15:35:20 +05:00
veygax
0c3c6345e9 engine: imagelib: fix pixel iteration bounds checking on 1-bit BMPs
move 1-bit BMP bounds checking to the beginning of a loop to prevent a second iteration

Fixes: [GHSA-3p7j-2339-g5mm](https://github.com/FWGS/xash3d-fwgs/security/advisories/GHSA-3p7j-2339-g5mm)
Signed-off-by: veygax <veyga@veygax.dev>
2025-11-15 12:50:33 +08:00
Alibek Omarov
21ea83027e engine: imagelib: fix buffer overflow when the amount of colors in palette reported by BMP header are higher than 256
Thanks to @veygax for report!
2025-10-30 17:30:02 +05:00
Alibek Omarov
3d132e0e83 common: port: move filesystem related macros to filesystem module, try to include less globally for faster builds 2025-10-08 05:03:29 +05:00
Alibek Omarov
e52c46ec5e engine: imagelib: rename mips variable to mipmaps, to avoid clash with some MIPS compilers
While here, reduce some variables scope.
2025-08-25 11:37:14 +05:00
Alibek Omarov
4f45df2293 engine: imagelib: add missing argument name, so it compilers with old C standards compliant compilers 2025-08-11 20:50:03 +05:00
Alibek Omarov
be0d31f408 engine: imagelib: try to use FS_Search to bruteforce through supported image formats 2025-08-08 18:14:46 +05:00
Alibek Omarov
cd26b1f279 engine: imagelib: img_quant: reduce used colors from 256 to 255, so last color in palette can be reserved for custom usage (like transparency in player decals) 2025-07-25 01:39:59 +05:00
Alibek Omarov
24f05e3fc5 engine: client: refactor spray logo, get rid of unneeded bmp checks 2025-07-25 01:34:46 +05:00
Sergey Degtyar
e36486b73a engine: imagelib: handling wad extension to save and load image properly 2025-07-16 23:54:56 +05:00
Alibek Omarov
fc3b8ae45d engine: imagelib: allow installing texgamma processed palette before loading sprites 2025-05-26 19:09:28 +05:00
Alibek Omarov
911b83a9d8 engine: imagelib: load studio model textures with texgamma applied (like GoldSrc) 2025-05-26 19:09:28 +05:00
Alibek Omarov
f6e8a68b22 engine: imagelib: img_png: fix -Wmaybe-uninitialized 2025-03-25 17:07:05 +03:00
Alibek Omarov
ccd31c6b27 engine: imagelib: get rid of useless formatstring, which is always the same for all types 2025-03-15 19:29:11 +03:00
Alibek Omarov
1e8e4825fa engine: fix remaining -Wformat=2 and force it to -Werror 2025-03-15 01:24:59 +03:00
Alibek Omarov
9f322df498 engine: imagelib: handle loading truncated palette files, by filling remaining bytes with zeros 2025-01-22 19:21:51 +03:00
Alibek Omarov
0c471aecb1 engine: common: imagelib: get rid of NULL sentinels at the end of arrays 2024-12-22 07:21:06 +03:00
Alibek Omarov
0b1ad3b7f0 engine: imagelib: fix mismatched dealloc in a test 2024-09-30 04:00:28 +03:00
Alibek Omarov
85dfaaa2c2 engine: imagelib: add LUMP_TEXGAMMA palette kind to only pass HL textures through texgamma, not Quake 2024-07-19 06:34:51 +03:00
Alibek Omarov
a09084ceba engine: imagelib: super micro-optimization, reallocate buffer in Image_Copy rather than allocating and copying 2024-07-16 05:10:29 +03:00
Alibek Omarov
d56e53a347 Replace hardcoded functions names by __func__ macro
* while we're here, fix some possible bugs
* and fix -Wformat=2

s/__FUNCTION__/__func__/g

awawawa
2024-06-19 06:53:42 +03:00
Alibek Omarov
21195b3491 engine: increase logo and hpak limits, add cl_logomaxdim cvar to limit decal size (set to 96, default HL logo size is 64) 2024-06-11 07:47:01 +03:00
Alibek Omarov
fed65dd497 engine: imagelib: fix possible NULL dereference 2024-04-04 20:42:25 +03:00
mittorn
c082e46662 imagelib: fix for loop scope 2024-02-27 04:04:54 +03:00
Alibek Omarov
dd2c369df3 engine: imagelib: fix integer overflow on huge images when calculating reflectivity 2024-02-17 22:14:27 +03:00
Alibek Omarov
2b6a550405 engine: clean up common.h header from unused function prototypes, or move them to appropriate header or C file 2024-01-28 10:00:17 +03:00
Alibek Omarov
75d476f9df engine: fix -Wmissing-prototypes 2024-01-28 09:55:18 +03:00
Alibek Omarov
a311923d4e engine: imagelib: apply texgamma to palette (ideally should be applied only to BSP/WAD textures) 2024-01-09 03:55:07 +03:00
Alibek Omarov
a675806c91 engine: imagelib: img_ktx2: don't allow to load images with no mip levels 2023-12-11 07:06:12 +03:00
mittorn
b949da291e engine: fix strict aliasing issues found by an old armv7hf compiler 2023-10-22 20:02:14 +03:00
Ivan Avdeev
a251600c8a engine: common: imagelib: add KTX2 support (#1455)
* engine: common: imagelib: add KTX2 support

Adds basic KTX2 support for a few compressed formats. KTX2 essentially
is a Vulkan-centric texture format that supports literally hundreds of
pixel formats.
For now only support for these is added:
- `VK_FORMAT_BC4_UNORM_BLOCK`
- `VK_FORMAT_BC4_SNORM_BLOCK`
- `VK_FORMAT_BC5_UNORM_BLOCK`
- `VK_FORMAT_BC5_SNORM_BLOCK`
- `VK_FORMAT_BC6H_UFLOAT_BLOCK`
- `VK_FORMAT_BC6H_SFLOAT_BLOCK`
- `VK_FORMAT_BC7_UNORM_BLOCK`
- `VK_FORMAT_BC7_SRGB_BLOCK`

Adding more formats is relatively straightforward:
- Copy format definition from `VkFormat` enum in `vulkan_core.h`
- Add a new definition into `pixformat_t` enum.
- Add format size calculation into `Image_ComputeSize()`

While we're at it, also adds a few new formats to DDS:
- BC4_UNORM -- PF_BC4_UNSIGNED
- BC4_SNORM -- PF_BC4_SIGNED
- BC5_UNORM -- PF_BC5_UNSIGNED
- BC5_SNORM -- PF_BC5_SIGNED
- BC7 is expanded into BC7_UNORM and BC7_SRGB

ref_gl and ref_soft code is updated where it made sense. But not tested
really. Support for these formats has been tested with ref_vk.

* address spaces-vs-parentheses formatting where noticed

* parenthesize sizeofs

* move ktx2.h to imagelib as img_ktx2.h; massage it a bit

* use SetBits() instead of |=

* remove stale TODO comments
2023-10-18 10:31:40 +03:00
Alibek Omarov
8f207362a5 public: remove Q_sprintf, and patch all code that used it to use Q_snprintf instead 2023-04-26 05:20:45 +03:00
Alibek Omarov
824a34ee1e engine: common: imgelib: fix declaration after statement in test code 2023-04-14 18:58:43 +03:00
Alibek Omarov
1caa276531 engine: common: imagelib: fix loading cubemaps
Loop break was a bug that was added after refactoring imagelib loader.

In fact, it was mindlessly copypasted from old code, where same break was
used to quickly exit from inner format bruteforcing loop, than outer cubemap
loading loop.
2023-03-25 07:02:29 +03:00
Andrey Akhmichin
9e9703e6de engine: common: imagelib: replace va function calls. 2023-03-11 17:37:16 +03:00
fgsfds
25a1cb8ce7 Nintendo Switch support (again) 2023-02-05 02:09:32 +01:00
Alibek Omarov
aac0be1ab3 engine: imagelib: img_bmp: fully initialize local palette array 2023-01-31 00:50:04 +03:00
Alibek Omarov
49a65edfc3 engine: imagelib: img_quant: fix a bug in quantizer (thanks, @SNMetamorph for fix) 2023-01-05 07:24:24 +03:00
Alibek Omarov
ea3bfd969c engine: imagelib: img_wad: dirty hack to fix black holes in console background images 2022-12-08 05:40:11 +03:00