Merge branch 'stb_image_write_optimization' of https://github.com/jarnoh/stb into working
This commit is contained in:
commit
d27796b585
@ -973,6 +973,9 @@ unsigned char * stbi_zlib_compress(unsigned char *data, int data_len, int *out_l
|
|||||||
|
|
||||||
static unsigned int stbiw__crc32(unsigned char *buffer, int len)
|
static unsigned int stbiw__crc32(unsigned char *buffer, int len)
|
||||||
{
|
{
|
||||||
|
#ifdef STBIW_CRC32
|
||||||
|
return STBIW_CRC32(buffer, len);
|
||||||
|
#else
|
||||||
static unsigned int crc_table[256] =
|
static unsigned int crc_table[256] =
|
||||||
{
|
{
|
||||||
0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,
|
0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,
|
||||||
@ -1014,6 +1017,7 @@ static unsigned int stbiw__crc32(unsigned char *buffer, int len)
|
|||||||
for (i=0; i < len; ++i)
|
for (i=0; i < len; ++i)
|
||||||
crc = (crc >> 8) ^ crc_table[buffer[i] ^ (crc & 0xff)];
|
crc = (crc >> 8) ^ crc_table[buffer[i] ^ (crc & 0xff)];
|
||||||
return ~crc;
|
return ~crc;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#define stbiw__wpng4(o,a,b,c,d) ((o)[0]=STBIW_UCHAR(a),(o)[1]=STBIW_UCHAR(b),(o)[2]=STBIW_UCHAR(c),(o)[3]=STBIW_UCHAR(d),(o)+=4)
|
#define stbiw__wpng4(o,a,b,c,d) ((o)[0]=STBIW_UCHAR(a),(o)[1]=STBIW_UCHAR(b),(o)[2]=STBIW_UCHAR(c),(o)[3]=STBIW_UCHAR(d),(o)+=4)
|
||||||
@ -1044,6 +1048,14 @@ static void stbiw__encode_png_line(unsigned char *pixels, int stride_bytes, int
|
|||||||
int type = mymap[filter_type];
|
int type = mymap[filter_type];
|
||||||
unsigned char *z = pixels + stride_bytes * (stbi__flip_vertically_on_write ? height-1-y : y);
|
unsigned char *z = pixels + stride_bytes * (stbi__flip_vertically_on_write ? height-1-y : y);
|
||||||
int signed_stride = stbi__flip_vertically_on_write ? -stride_bytes : stride_bytes;
|
int signed_stride = stbi__flip_vertically_on_write ? -stride_bytes : stride_bytes;
|
||||||
|
|
||||||
|
// sorry for not optimizing the other paths
|
||||||
|
if(type==0)
|
||||||
|
{
|
||||||
|
memcpy(line_buffer, z, width*n);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < n; ++i) {
|
for (i = 0; i < n; ++i) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 0: line_buffer[i] = z[i]; break;
|
case 0: line_buffer[i] = z[i]; break;
|
||||||
|
Loading…
Reference in New Issue
Block a user