Fixed compiler warnings C4244 conversion from 'int' to 'unsigned char'/'unsigned short'.

This commit is contained in:
Andreas Haferburg 2019-10-14 14:05:36 +02:00
parent 052dce117e
commit df0c8e92d4

View File

@ -120,7 +120,7 @@ static void stb__From16Bit(unsigned char *out, unsigned short v)
static unsigned short stb__As16Bit(int r, int g, int b) static unsigned short stb__As16Bit(int r, int g, int b)
{ {
return (stb__Mul8Bit(r,31) << 11) + (stb__Mul8Bit(g,63) << 5) + stb__Mul8Bit(b,31); return (unsigned short)((stb__Mul8Bit(r,31) << 11) + (stb__Mul8Bit(g,63) << 5) + stb__Mul8Bit(b,31));
} }
// linear interpolation at 1/3 point between a and b, using desired rounding type // linear interpolation at 1/3 point between a and b, using desired rounding type
@ -139,9 +139,9 @@ static int stb__Lerp13(int a, int b)
// lerp RGB color // lerp RGB color
static void stb__Lerp13RGB(unsigned char *out, unsigned char *p1, unsigned char *p2) static void stb__Lerp13RGB(unsigned char *out, unsigned char *p1, unsigned char *p2)
{ {
out[0] = stb__Lerp13(p1[0], p2[0]); out[0] = (unsigned char)stb__Lerp13(p1[0], p2[0]);
out[1] = stb__Lerp13(p1[1], p2[1]); out[1] = (unsigned char)stb__Lerp13(p1[1], p2[1]);
out[2] = stb__Lerp13(p1[2], p2[2]); out[2] = (unsigned char)stb__Lerp13(p1[2], p2[2]);
} }
/****************************************************************************/ /****************************************************************************/
@ -166,8 +166,8 @@ static void stb__PrepareOptTable(unsigned char *Table,const unsigned char *expan
if(err < bestErr) if(err < bestErr)
{ {
Table[i*2+0] = mx; Table[i*2+0] = (unsigned char)mx;
Table[i*2+1] = mn; Table[i*2+1] = (unsigned char)mn;
bestErr = err; bestErr = err;
} }
} }
@ -488,13 +488,13 @@ static int stb__RefineBlock(unsigned char *block, unsigned short *pmax16, unsign
fg = frb * 63.0f / 31.0f; fg = frb * 63.0f / 31.0f;
// solve. // solve.
max16 = stb__sclamp((At1_r*yy - At2_r*xy)*frb+0.5f,0,31) << 11; max16 = (unsigned short)(stb__sclamp((At1_r*yy - At2_r*xy)*frb+0.5f,0,31) << 11);
max16 |= stb__sclamp((At1_g*yy - At2_g*xy)*fg +0.5f,0,63) << 5; max16 |= (unsigned short)(stb__sclamp((At1_g*yy - At2_g*xy)*fg +0.5f,0,63) << 5);
max16 |= stb__sclamp((At1_b*yy - At2_b*xy)*frb+0.5f,0,31) << 0; max16 |= (unsigned short)(stb__sclamp((At1_b*yy - At2_b*xy)*frb+0.5f,0,31) << 0);
min16 = stb__sclamp((At2_r*xx - At1_r*xy)*frb+0.5f,0,31) << 11; min16 = (unsigned short)(stb__sclamp((At2_r*xx - At1_r*xy)*frb+0.5f,0,31) << 11);
min16 |= stb__sclamp((At2_g*xx - At1_g*xy)*fg +0.5f,0,63) << 5; min16 |= (unsigned short)(stb__sclamp((At2_g*xx - At1_g*xy)*fg +0.5f,0,63) << 5);
min16 |= stb__sclamp((At2_b*xx - At1_b*xy)*frb+0.5f,0,31) << 0; min16 |= (unsigned short)(stb__sclamp((At2_b*xx - At1_b*xy)*frb+0.5f,0,31) << 0);
} }
*pmin16 = min16; *pmin16 = min16;
@ -592,8 +592,8 @@ static void stb__CompressAlphaBlock(unsigned char *dest,unsigned char *src, int
} }
// encode them // encode them
((unsigned char *)dest)[0] = mx; dest[0] = (unsigned char)mx;
((unsigned char *)dest)[1] = mn; dest[1] = (unsigned char)mn;
dest += 2; dest += 2;
// determine bias and emit color indices // determine bias and emit color indices
@ -622,7 +622,7 @@ static void stb__CompressAlphaBlock(unsigned char *dest,unsigned char *src, int
// write index // write index
mask |= ind << bits; mask |= ind << bits;
if((bits += 3) >= 8) { if((bits += 3) >= 8) {
*dest++ = mask; *dest++ = (unsigned char)mask;
mask >>= 8; mask >>= 8;
bits -= 8; bits -= 8;
} }
@ -633,10 +633,10 @@ static void stb__InitDXT()
{ {
int i; int i;
for(i=0;i<32;i++) for(i=0;i<32;i++)
stb__Expand5[i] = (i<<3)|(i>>2); stb__Expand5[i] = (unsigned char)((i<<3)|(i>>2));
for(i=0;i<64;i++) for(i=0;i<64;i++)
stb__Expand6[i] = (i<<2)|(i>>4); stb__Expand6[i] = (unsigned char)((i<<2)|(i>>4));
for(i=0;i<256+16;i++) for(i=0;i<256+16;i++)
{ {