Alibek Omarov
f91e5a7647
engine: explicitly cast chars to bytes in ctype functions
2026-04-28 09:50:33 +05:00
Alibek Omarov
e30ce9c150
engine: fix palette and builtin textures on BE
2026-04-26 04:12:52 +05:00
Alibek Omarov
b3bb2fc16f
engine: imagelib: add IL_HOST_ENDIAN flag to mark on-disk data that's already in host endianness
2026-04-26 04:12:52 +05:00
Alibek Omarov
11877f4c96
engine: imagelib: fixes for BE
2026-04-26 04:12:52 +05:00
Sergey Degtyar
e87f307ac1
engine: image: fix blue halo around sprays
2026-04-10 15:00:02 +05:00
Alibek Omarov
6b97fc1825
engine: fix tests build on Win32
2026-04-01 06:02:08 +05:00
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