squish: Update to upstream version 1.15
Also fix clang-format pre-commit hook to ignore thirdparty files.
This commit is contained in:
parent
3fd10ff6f0
commit
fa2d5b91dc
4 changed files with 31 additions and 9 deletions
|
@ -82,6 +82,11 @@ $DELETE_OLD_PATCHES && rm -f /tmp/$prefix*.patch
|
||||||
# create one patch containing all changes to the files
|
# create one patch containing all changes to the files
|
||||||
git diff-index --cached --diff-filter=ACMR --name-only $against -- | while read file;
|
git diff-index --cached --diff-filter=ACMR --name-only $against -- | while read file;
|
||||||
do
|
do
|
||||||
|
# ignore thirdparty files
|
||||||
|
if grep -q "thirdparty" <<< $file; then
|
||||||
|
continue;
|
||||||
|
fi
|
||||||
|
|
||||||
# ignore file if we do check for file extensions and the file
|
# ignore file if we do check for file extensions and the file
|
||||||
# does not match any of the extensions specified in $FILE_EXTS
|
# does not match any of the extensions specified in $FILE_EXTS
|
||||||
if $PARSE_EXTS && ! matches_extension "$file"; then
|
if $PARSE_EXTS && ! matches_extension "$file"; then
|
||||||
|
|
2
thirdparty/README.md
vendored
2
thirdparty/README.md
vendored
|
@ -204,7 +204,7 @@ Files extracted from upstream source:
|
||||||
## squish
|
## squish
|
||||||
|
|
||||||
- Upstream: https://sourceforge.net/projects/libsquish
|
- Upstream: https://sourceforge.net/projects/libsquish
|
||||||
- Version: 1.14
|
- Version: 1.15
|
||||||
- License: MIT
|
- License: MIT
|
||||||
|
|
||||||
Files extracted from upstream source:
|
Files extracted from upstream source:
|
||||||
|
|
24
thirdparty/squish/squish.cpp
vendored
24
thirdparty/squish/squish.cpp
vendored
|
@ -177,13 +177,17 @@ void CompressImage( u8 const* rgba, int width, int height, int pitch, void* bloc
|
||||||
// fix any bad flags
|
// fix any bad flags
|
||||||
flags = FixFlags( flags );
|
flags = FixFlags( flags );
|
||||||
|
|
||||||
// initialise the block output
|
|
||||||
u8* targetBlock = reinterpret_cast< u8* >( blocks );
|
|
||||||
int bytesPerBlock = ( ( flags & ( kDxt1 | kBc4 ) ) != 0 ) ? 8 : 16;
|
|
||||||
|
|
||||||
// loop over blocks
|
// loop over blocks
|
||||||
|
#ifdef SQUISH_USE_OPENMP
|
||||||
|
# pragma omp parallel for
|
||||||
|
#endif
|
||||||
for( int y = 0; y < height; y += 4 )
|
for( int y = 0; y < height; y += 4 )
|
||||||
{
|
{
|
||||||
|
// initialise the block output
|
||||||
|
u8* targetBlock = reinterpret_cast< u8* >( blocks );
|
||||||
|
int bytesPerBlock = ( ( flags & ( kDxt1 | kBc4 ) ) != 0 ) ? 8 : 16;
|
||||||
|
targetBlock += ( (y / 4) * ( (width + 3) / 4) ) * bytesPerBlock;
|
||||||
|
|
||||||
for( int x = 0; x < width; x += 4 )
|
for( int x = 0; x < width; x += 4 )
|
||||||
{
|
{
|
||||||
// build the 4x4 block of pixels
|
// build the 4x4 block of pixels
|
||||||
|
@ -232,13 +236,17 @@ void DecompressImage( u8* rgba, int width, int height, int pitch, void const* bl
|
||||||
// fix any bad flags
|
// fix any bad flags
|
||||||
flags = FixFlags( flags );
|
flags = FixFlags( flags );
|
||||||
|
|
||||||
// initialise the block input
|
|
||||||
u8 const* sourceBlock = reinterpret_cast< u8 const* >( blocks );
|
|
||||||
int bytesPerBlock = ( ( flags & ( kDxt1 | kBc4 ) ) != 0 ) ? 8 : 16;
|
|
||||||
|
|
||||||
// loop over blocks
|
// loop over blocks
|
||||||
|
#ifdef SQUISH_USE_OPENMP
|
||||||
|
# pragma omp parallel for
|
||||||
|
#endif
|
||||||
for( int y = 0; y < height; y += 4 )
|
for( int y = 0; y < height; y += 4 )
|
||||||
{
|
{
|
||||||
|
// initialise the block input
|
||||||
|
u8 const* sourceBlock = reinterpret_cast< u8 const* >( blocks );
|
||||||
|
int bytesPerBlock = ( ( flags & ( kDxt1 | kBc4 ) ) != 0 ) ? 8 : 16;
|
||||||
|
sourceBlock += ( (y / 4) * ( (width + 3) / 4) ) * bytesPerBlock;
|
||||||
|
|
||||||
for( int x = 0; x < width; x += 4 )
|
for( int x = 0; x < width; x += 4 )
|
||||||
{
|
{
|
||||||
// decompress the block
|
// decompress the block
|
||||||
|
|
9
thirdparty/squish/squish.h
vendored
9
thirdparty/squish/squish.h
vendored
|
@ -239,6 +239,15 @@ int GetStorageRequirements( int width, int height, int flags );
|
||||||
allows for pixels outside the image to take arbitrary values. The function
|
allows for pixels outside the image to take arbitrary values. The function
|
||||||
squish::GetStorageRequirements can be called to compute the amount of memory
|
squish::GetStorageRequirements can be called to compute the amount of memory
|
||||||
to allocate for the compressed output.
|
to allocate for the compressed output.
|
||||||
|
|
||||||
|
Note on compression quality: When compressing textures with
|
||||||
|
libsquish it is recommended to apply a gamma-correction
|
||||||
|
beforehand. This will reduce the blockiness in dark areas. The
|
||||||
|
level of necessary gamma-correction is platform dependent. For
|
||||||
|
example, a gamma correction with gamma = 0.5 before compression
|
||||||
|
and gamma = 2.0 after decompression yields good results on the
|
||||||
|
Windows platform but for other platforms like MacOS X a different
|
||||||
|
gamma value may be more suitable.
|
||||||
*/
|
*/
|
||||||
void CompressImage( u8 const* rgba, int width, int height, int pitch, void* blocks, int flags, float* metric = 0 );
|
void CompressImage( u8 const* rgba, int width, int height, int pitch, void* blocks, int flags, float* metric = 0 );
|
||||||
void CompressImage( u8 const* rgba, int width, int height, void* blocks, int flags, float* metric = 0 );
|
void CompressImage( u8 const* rgba, int width, int height, void* blocks, int flags, float* metric = 0 );
|
||||||
|
|
Loading…
Reference in a new issue