Unify texture compression implementations.

This commit is contained in:
Bartosz Taudul
2020-03-02 02:08:14 +01:00
parent aa0bf47ec3
commit 50123298a7
3 changed files with 5 additions and 21 deletions

View File

@@ -21,7 +21,7 @@ TextureCompression::~TextureCompression()
ZSTD_freeDCtx( m_dctx );
}
void TextureCompression::Pack( struct ZSTD_CCtx_s* ctx, char*& buf, size_t& bufsz, const char* image, uint32_t inBytes, uint32_t& csz ) const
uint32_t TextureCompression::Pack( struct ZSTD_CCtx_s* ctx, char*& buf, size_t& bufsz, const char* image, uint32_t inBytes ) const
{
const auto maxout = ZSTD_COMPRESSBOUND( inBytes );
if( bufsz < maxout )
@@ -31,21 +31,7 @@ void TextureCompression::Pack( struct ZSTD_CCtx_s* ctx, char*& buf, size_t& bufs
buf = new char[maxout];
}
assert( ctx );
const auto outsz = ZSTD_compressCCtx( ctx, buf, maxout, image, inBytes, 3 );
csz = uint32_t( outsz );
}
uint32_t TextureCompression::PackImpl( const char* image, uint32_t inBytes )
{
const auto maxout = ZSTD_COMPRESSBOUND( inBytes );
if( m_bufSize < maxout )
{
m_bufSize = maxout;
delete[] m_buf;
m_buf = new char[maxout];
}
assert( m_cctx );
return (uint32_t)ZSTD_compressCCtx( m_cctx, m_buf, maxout, image, inBytes, 1 );
return (uint32_t)ZSTD_compressCCtx( ctx, buf, maxout, image, inBytes, 3 );
}
const char* TextureCompression::Unpack( const FrameImage& image )