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
|
||||
git diff-index --cached --diff-filter=ACMR --name-only $against -- | while read file;
|
||||
do
|
||||
# ignore thirdparty files
|
||||
if grep -q "thirdparty" <<< $file; then
|
||||
continue;
|
||||
fi
|
||||
|
||||
# ignore file if we do check for file extensions and the file
|
||||
# does not match any of the extensions specified in $FILE_EXTS
|
||||
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
|
||||
|
||||
- Upstream: https://sourceforge.net/projects/libsquish
|
||||
- Version: 1.14
|
||||
- Version: 1.15
|
||||
- License: MIT
|
||||
|
||||
Files extracted from upstream source:
|
||||
|
|
20
thirdparty/squish/squish.cpp
vendored
20
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
|
||||
flags = FixFlags( flags );
|
||||
|
||||
// loop over blocks
|
||||
#ifdef SQUISH_USE_OPENMP
|
||||
# pragma omp parallel for
|
||||
#endif
|
||||
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;
|
||||
|
||||
// loop over blocks
|
||||
for( int y = 0; y < height; y += 4 )
|
||||
{
|
||||
for( int x = 0; x < width; x += 4 )
|
||||
{
|
||||
// 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
|
||||
flags = FixFlags( flags );
|
||||
|
||||
// loop over blocks
|
||||
#ifdef SQUISH_USE_OPENMP
|
||||
# pragma omp parallel for
|
||||
#endif
|
||||
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;
|
||||
|
||||
// loop over blocks
|
||||
for( int y = 0; y < height; y += 4 )
|
||||
{
|
||||
for( int x = 0; x < width; x += 4 )
|
||||
{
|
||||
// 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
|
||||
squish::GetStorageRequirements can be called to compute the amount of memory
|
||||
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, void* blocks, int flags, float* metric = 0 );
|
||||
|
|
Loading…
Reference in a new issue