mirror of https://github.com/nothings/stb.git
stb_dxt: fix bug with constant color & varying alpha
This commit is contained in:
parent
76ec599c68
commit
d808adb77f
13
stb_dxt.h
13
stb_dxt.h
|
@ -1,4 +1,4 @@
|
|||
// stb_dxt.h - v1.07 - DXT1/DXT5 compressor - public domain
|
||||
// stb_dxt.h - v1.08 - DXT1/DXT5 compressor - public domain
|
||||
// original by fabian "ryg" giesen - ported to C by stb
|
||||
// use '#define STB_DXT_IMPLEMENTATION' before including to create the implementation
|
||||
//
|
||||
|
@ -9,7 +9,8 @@
|
|||
// and "high quality" using mode.
|
||||
//
|
||||
// version history:
|
||||
// v1.07 - bc4; allow not using libc; add STB_DXT_STATIC
|
||||
// v1.08 - (sbt) fix bug in dxt-with-alpha block
|
||||
// v1.07 - (stb) bc4; allow not using libc; add STB_DXT_STATIC
|
||||
// v1.06 - (stb) fix to known-broken 1.05
|
||||
// v1.05 - (stb) support bc5/3dc (Arvids Kokins), use extern "C" in C++ (Pavel Krajcevski)
|
||||
// v1.04 - (ryg) default to no rounding bias for lerped colors (as per S3TC/DX10 spec);
|
||||
|
@ -649,6 +650,7 @@ static void stb__InitDXT()
|
|||
|
||||
void stb_compress_dxt_block(unsigned char *dest, const unsigned char *src, int alpha, int mode)
|
||||
{
|
||||
unsigned char *data[16][4];
|
||||
static int init=1;
|
||||
if (init) {
|
||||
stb__InitDXT();
|
||||
|
@ -656,8 +658,15 @@ void stb_compress_dxt_block(unsigned char *dest, const unsigned char *src, int a
|
|||
}
|
||||
|
||||
if (alpha) {
|
||||
int i;
|
||||
stb__CompressAlphaBlock(dest,(unsigned char*) src+3, 4);
|
||||
dest += 8;
|
||||
// make a new copy of the data in which alpha is opaque,
|
||||
// because code uses a fast test for color constancy
|
||||
memcpy(data, src, 4*16);
|
||||
for (i=0; i < 16; ++i)
|
||||
data[i][3] = 255;
|
||||
src = &data[0][0];
|
||||
}
|
||||
|
||||
stb__CompressColorBlock(dest,(unsigned char*) src,mode);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* stb_image - v2.17 - public domain image loader - http://nothings.org/stb_image.h
|
||||
no warranty implied; use at your own risk
|
||||
/* stb_image - v2.17 - public domain image loader - http://nothings.org/stb
|
||||
no warranty implied; use at your own risk
|
||||
|
||||
Do this:
|
||||
#define STB_IMAGE_IMPLEMENTATION
|
||||
|
@ -107,10 +107,8 @@ RECENT REVISION HISTORY:
|
|||
// DOCUMENTATION
|
||||
//
|
||||
// Limitations:
|
||||
// - no 16-bit-per-channel PNG
|
||||
// - no 12-bit-per-channel JPEG
|
||||
// - no JPEGs with arithmetic coding
|
||||
// - no 1-bit BMP
|
||||
// - GIF always returns *comp=4
|
||||
//
|
||||
// Basic usage (see HDR discussion below for HDR usage):
|
||||
|
|
Loading…
Reference in New Issue