Commit Graph

105 Commits

Author SHA1 Message Date
Richard Geldreich
ca56dbbaff Fixing minor compile issue introduced in merged PR 2025-09-05 22:23:31 -04:00
Rich Geldreich
87a1e1fbe6 Merge pull request #400 from zeux/transcoder-unity-build
Fix CMake Unity builds
2025-09-05 22:18:54 -04:00
Richard Geldreich
dfcfe7bf19 clang warning fix 2025-09-05 21:13:22 -04:00
Arseny Kapoulkine
f12efae6f9 Fix CMake Unity builds
transcoder/basisu_astc_helpers.h has a pragma once, but it is also an
implementation header (when ASTC_HELPERS_IMPLEMENTATION is defined).

pragma once is not necessary here as the header has a separate ifdef
guard, and it blocks attempts to compile Basis as a CMake Unity build
(CMAKE_UNITY_BUILD=ON) or as a single-translation unit non-CMake build
if the helpers header has been included earlier in the TU, as the second
inclusion with implementation defined doesn't actually include the
header.
2025-08-17 10:33:16 -07:00
Richard Geldreich
100ace82d2 emcc warning fixes, fixing warnings in WASM cmakelists.txt files, changing ETC1S encoder to use std::map vs. std::unordered_map for hopefully more cross platform determinism 2025-06-24 17:22:05 -04:00
Rich Geldreich
e62d9a3af0 Merge pull request #387 from Chubercik/ambiguity_fix
Fix ambiguous calls to `safe_shift_left()` in `basisu_containers.h`
2025-06-18 21:38:26 -04:00
Rémi Verschelde
40288583c7 Add missing ctype.h include for transcoder/basisu_containers_impl.h
The file uses `isdigit` and `isalpha` from `ctype.h`, and recent MSVC seems
to require it explicitly.
2025-05-07 23:16:28 +02:00
Jakub Marcowski
b738655c40 Fix ambiguous calls to safe_shift_left() in basisu_containers.h
Explicitly cast 1 to `uint64_t` to resolve overload ambiguity between `safe_shift_left(uint32_t, uint32_t)` and `safe_shift_left(uint64_t, uint32_t)`.
2025-03-11 18:35:04 +01:00
Richard Geldreich
1ba75b4e34 ASTC 6x6 HDR/6x6 HDR intermediate update 2025-01-21 11:01:08 -05:00
Richard Geldreich
8318d0c1b8 UASTC HDR merge 2024-09-10 14:38:10 -04:00
Richard Geldreich
ec5396c49c UASTC HDR merge 2024-09-10 14:37:21 -04:00
Richard Geldreich
ad9386a4a1 Minor fix to two accessors so they return refs vs. copies. 2023-04-26 23:17:50 -04:00
Rich Geldreich
80a07ff3b1 Merge pull request #325 from past-due/trivially_copyable
Allow defining BASISU_HAVE_STD_TRIVIALLY_COPYABLE
2023-04-07 13:24:21 -04:00
Rich Geldreich
8903f6d698 Merge pull request #260 from lexaknyazev/patch-1
Disallow all-zero-length Huffman tables
2022-12-11 05:00:57 -05:00
past-due
4dc6a8c666 Allow defining BASISU_HAVE_STD_TRIVIALLY_COPYABLE
To force std::is_trivially_copyable
2022-09-15 15:37:05 -04:00
Rich Geldreich
1f4b564ae0 Merge pull request #281 from cwoffenden/invalid-char
Minor: invalid char triggers Unicode error
2022-02-24 22:48:49 -08:00
Richard Geldreich
7a2094b807 Adding SAN option to CMakeLists.txt, to make it easier to use clang's address/undefined behavior sanitizer on codebase
Fixing overflow issue on extreme colors in color_distance().
Explicitly disabling unaligned addressing in miniz and transcoder when UBSAN is enabled
Disabling a needless optimization in transcoder causing ubsan issues (that could have easily been worked around in a different way, but it was an unnecessary optimization to begin with)
Rebuild wasm builds
2022-02-24 19:45:01 -05:00
Richard Geldreich
deeb5acb56 v1.16 release: OpenCL support, removing global selector palette code (it was unused/dead code), ETC1S encoding optimizations, -parallel command line option 2022-01-28 08:32:54 -05:00
Richard Geldreich
fcbd0e7df1 New files 2022-01-28 08:30:40 -05:00
Carl Woffenden
d7b22b6c1c Replaced invalid char 2022-01-19 16:24:32 +01:00
Alexey Knyazev
52214ab28d Disallow all-zero-length Huffman tables 2021-10-24 01:59:32 +04:00
Carl Woffenden
f5722a8025 Removed/moved unused vars
Relates to issue #230
2021-05-31 14:46:12 +02:00
Rich Geldreich
ee610c914e Fixing tabs 2021-04-13 00:29:01 -04:00
Rich Geldreich
7f0a00afe1 Adding KTX2 transcoding/encoding/decompression to PNG/KTX1 support to the transcoder, encoder, JavaScript wrappers. This is also adding Zstandard to the repo, which is optional. Set BASISD_SUPPORT_KTX2_ZSTD=0 when compiling the encoder/transcoder to disable it, or from cmake set KTX2_ZSTANDARD=FALSE. 2021-04-12 13:30:45 -04:00
Rich Geldreich
041ad47c27 - Global codebook related fixes
- Minor fix to basisu_frontend::optimize_selector_codebook() so the new_selector_cluster_indices array is initialized correctly. (The backend doesn't use this array so no harm was being done.)
2021-03-31 00:01:52 -04:00
Rich Geldreich
bf13257528 Merge branch 'branch' 2021-03-30 14:53:22 -04:00
Rich Geldreich
053ed374b4 In progress global codebook changes 2021-03-30 14:51:26 -04:00
Rich Geldreich
8fccf9e799 Merge pull request #219 from lexaknyazev/patch-1
Fix UASTC to EAC RG11 green channel selection
2021-03-30 14:14:45 -04:00
Rich Geldreich
bd2756a617 Merge pull request #218 from JCash/android-compile-fix
Android compile fix
2021-03-30 14:09:15 -04:00
Rich Geldreich
2fd9aec037 Merge pull request #220 from JCash/basisu-min-max
Replaced std::min/std::max with basisu::minimum/basisu::maximum
2021-03-30 14:06:56 -04:00
JCash
2c0c038ffe Renamed to minimum/maximum 2021-03-30 19:17:50 +02:00
JCash
03cca3778e Replaced std::min/std::max with basisu::min/basisu::max
Removed use of NOMINMAX
2021-03-30 18:44:07 +02:00
JCash
5e285fe950 Added two newlines to pass the formatting rules 2021-03-30 17:04:41 +02:00
Alexey Knyazev
915b91b56c Fix UASTC to EAC RG11 green channel selection 2021-03-28 15:10:38 +04:00
JCash
4d00ef7bc0 Android compile fix 2021-03-28 11:31:29 +02:00
Rich Geldreich
57b9051d94 Forward declaring hash_map::iterator and const_iterator. This doesn't fix issues in basisu, but hopefully in the KTX2 repo. 2021-03-17 12:29:08 -04:00
Rich Geldreich
a7994821e5 Disabling unaligned reads unless it's x86/x64 by default 2021-03-16 21:16:57 -04:00
Rich Geldreich
2f2965992b Was always including malloc.h - this is now only done on Linux. It was for malloc_usable_size(). 2021-03-10 03:22:15 -05:00
Rich Geldreich
2d4fe933b2 Basis Universal v1.13:
- Optimized ETC1S encoder (3-4.5x faster)
- Added optional SSE 4.1 support to encoder
- Switched from std::vector to a custom vector in the encoder and transcoder
- Added CppSPMD (SSE only for now)
- UASTC RDO is now more effective, but the command line parameter controlling qualiy has changed (to "lambda")
2021-03-09 11:00:25 -05:00
Rich Geldreich
bb2a355560 New files 2021-03-09 10:58:49 -05:00
Ondrej Stava
c959383657 Build and warning fixes for basisu_transcoder.cpp
Some of our static analysis tools were complaining about unreachable code due to "#if ... return  false;  #endif code " blocks. This was changed to "#if ... return false #else ... #endif" which doesn't change the functionality but makes the static analyzers happy.

Also removed BASISU_NOTE_UNUSED on two variables that are no longer declared (resulting in a build error when BASISD_SUPPORT_UASTC was not defined)
2021-01-29 13:37:01 -08:00
Rich Geldreich
7b9004899b Merge pull request #192 from fintelia/patch-1
Fix comment typo in basisu_transcoder.h
2020-12-18 14:05:05 -05:00
Rich Geldreich
85fa18ec94 Adding encoder WebAssembly support, encode_test sample
Encoder is now a library in the "encoder" directory
JavaScript wrappers now expose the entire codec: encoder, transcoder, container independent transcoding, and .basis file information
2020-12-17 14:26:28 -05:00
Jonathan Behrens
ad5daec2fc Fix comment typo in basisu_transcoder.h 2020-12-12 14:44:14 -05:00
Rich Geldreich
638c348294 Adding container independent transcoding support. See methods basisu_lowlevel_etc1s_transcoder::transcode_image() and basisu_lowlevel_uastc_transcoder::transcode_image(). 2020-11-23 17:58:38 -05:00
Rich Geldreich
46af0305fc Merge pull request #150 from davidhubbard/master
Fix #44: document _ofs header fields
2020-09-18 23:35:37 -04:00
Ondrej Stava
52147e5a99 Fixed signed integer overflow
(1 << num_bits)  was converted to a signed integer that caused an overflow (as num_bits was usually set to 31). It worked fine since the value was later converted back to uint32_t but signed integer overflow is technically an undefined behavior and it was triggering errors in our automated tests.
2020-06-11 12:18:59 -07:00
David Hubbard
c65ab695ca Fix #44: document _ofs header fields
Image slices have m_file_ofs. It is not relative to the start of the header, it is relative to the
start of the file. Double-check basisu_basis_file.cpp:

`m_images_descs[i].m_file_ofs = (uint32_t)cur_slice_file_ofs;`

basis_file_header has m_endpoint_cb_file_ofs. It might be easier to read if the comment on it
just said "file offset," but to clear up any confusion if someone is re-reading the spec later
this commit leaves the "relative to the" language but clarifies it. Ditto for
m_selector_cb_file_ofs.
2020-06-04 23:26:26 -05:00
Rich Geldreich
374a04d54d Merge pull request #134 from cwoffenden/transcoder-xcode
Xcode 11 transcoder warnings removed
2020-05-06 19:59:59 -04:00
Rich Geldreich
525458ae82 Merge pull request #137 from ondys/patch-2
Fixed undefined behavior in BASISU_OFFSETOF
2020-05-06 19:56:56 -04:00