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