Mercurial > hg > dmlib
comparison src/stb_image.c @ 1276:5fc043f1bd44
Fix and silence some (useless) gcc warnings.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 16 Mar 2017 17:13:46 +0200 |
parents | 737ae4718c8f |
children | 40797bfd35bf |
comparison
equal
deleted
inserted
replaced
1275:42f5680f904d | 1276:5fc043f1bd44 |
---|---|
1186 #define COMBO(a,b) ((a)*8+(b)) | 1186 #define COMBO(a,b) ((a)*8+(b)) |
1187 #define CASE(a,b) case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) | 1187 #define CASE(a,b) case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) |
1188 // convert source image with img_n components to one with req_comp components; | 1188 // convert source image with img_n components to one with req_comp components; |
1189 // avoid switch per pixel, so use switch per scanline and massive macros | 1189 // avoid switch per pixel, so use switch per scanline and massive macros |
1190 switch (COMBO(img_n, req_comp)) { | 1190 switch (COMBO(img_n, req_comp)) { |
1191 CASE(1,2) dest[0]=src[0], dest[1]=255; break; | 1191 CASE(1,2) { dest[0]=src[0], dest[1]=255; } break; |
1192 CASE(1,3) dest[0]=dest[1]=dest[2]=src[0]; break; | 1192 CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; |
1193 CASE(1,4) dest[0]=dest[1]=dest[2]=src[0], dest[3]=255; break; | 1193 CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0], dest[3]=255; } break; |
1194 CASE(2,1) dest[0]=src[0]; break; | 1194 CASE(2,1) { dest[0]=src[0]; } break; |
1195 CASE(2,3) dest[0]=dest[1]=dest[2]=src[0]; break; | 1195 CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; |
1196 CASE(2,4) dest[0]=dest[1]=dest[2]=src[0], dest[3]=src[1]; break; | 1196 CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0], dest[3]=src[1]; } break; |
1197 CASE(3,4) dest[0]=src[0],dest[1]=src[1],dest[2]=src[2],dest[3]=255; break; | 1197 CASE(3,4) { dest[0]=src[0],dest[1]=src[1],dest[2]=src[2],dest[3]=255; } break; |
1198 CASE(3,1) dest[0]=stbi__compute_y(src[0],src[1],src[2]); break; | 1198 CASE(3,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; |
1199 CASE(3,2) dest[0]=stbi__compute_y(src[0],src[1],src[2]), dest[1] = 255; break; | 1199 CASE(3,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]), dest[1] = 255; } break; |
1200 CASE(4,1) dest[0]=stbi__compute_y(src[0],src[1],src[2]); break; | 1200 CASE(4,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; |
1201 CASE(4,2) dest[0]=stbi__compute_y(src[0],src[1],src[2]), dest[1] = src[3]; break; | 1201 CASE(4,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]), dest[1] = src[3]; } break; |
1202 CASE(4,3) dest[0]=src[0],dest[1]=src[1],dest[2]=src[2]; break; | 1202 CASE(4,3) { dest[0]=src[0],dest[1]=src[1],dest[2]=src[2]; } break; |
1203 default: STBI_ASSERT(0); | 1203 default: STBI_ASSERT(0); |
1204 } | 1204 } |
1205 #undef CASE | 1205 #undef CASE |
1206 } | 1206 } |
1207 | 1207 |
3412 if (depth < 8 || img_n == out_n) { | 3412 if (depth < 8 || img_n == out_n) { |
3413 int nk = (width - 1)*img_n; | 3413 int nk = (width - 1)*img_n; |
3414 #define CASE(f) \ | 3414 #define CASE(f) \ |
3415 case f: \ | 3415 case f: \ |
3416 for (k=0; k < nk; ++k) | 3416 for (k=0; k < nk; ++k) |
3417 | |
3417 switch (filter) { | 3418 switch (filter) { |
3418 // "none" filter turns into a memcpy here; make that explicit. | 3419 // "none" filter turns into a memcpy here; make that explicit. |
3419 case STBI__F_none: memcpy(cur, raw, nk); break; | 3420 case STBI__F_none: { memcpy(cur, raw, nk); } break; |
3420 CASE(STBI__F_sub) cur[k] = STBI__BYTECAST(raw[k] + cur[k-filter_bytes]); break; | 3421 CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k-filter_bytes]); } break; |
3421 CASE(STBI__F_up) cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break; | 3422 CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break; |
3422 CASE(STBI__F_avg) cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-filter_bytes])>>1)); break; | 3423 CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-filter_bytes])>>1)); } break; |
3423 CASE(STBI__F_paeth) cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],prior[k],prior[k-filter_bytes])); break; | 3424 CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],prior[k],prior[k-filter_bytes])); } break; |
3424 CASE(STBI__F_avg_first) cur[k] = STBI__BYTECAST(raw[k] + (cur[k-filter_bytes] >> 1)); break; | 3425 CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k-filter_bytes] >> 1)); } break; |
3425 CASE(STBI__F_paeth_first) cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],0,0)); break; | 3426 CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],0,0)); } break; |
3426 } | 3427 } |
3427 #undef CASE | 3428 #undef CASE |
3428 raw += nk; | 3429 raw += nk; |
3429 } else { | 3430 } else { |
3430 STBI_ASSERT(img_n+1 == out_n); | 3431 STBI_ASSERT(img_n+1 == out_n); |
3431 #define CASE(f) \ | 3432 #define CASE(f) \ |
3432 case f: \ | 3433 case f: \ |
3433 for (i=x-1; i >= 1; --i, cur[img_n]=255,raw+=img_n,cur+=out_n,prior+=out_n) \ | 3434 for (i=x-1; i >= 1; --i, cur[img_n]=255,raw+=img_n,cur+=out_n,prior+=out_n) \ |
3434 for (k=0; k < img_n; ++k) | 3435 for (k=0; k < img_n; ++k) |
3436 | |
3435 switch (filter) { | 3437 switch (filter) { |
3436 CASE(STBI__F_none) cur[k] = raw[k]; break; | 3438 CASE(STBI__F_none) { cur[k] = raw[k]; } break; |
3437 CASE(STBI__F_sub) cur[k] = STBI__BYTECAST(raw[k] + cur[k-out_n]); break; | 3439 CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k-out_n]); } break; |
3438 CASE(STBI__F_up) cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break; | 3440 CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break; |
3439 CASE(STBI__F_avg) cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-out_n])>>1)); break; | 3441 CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-out_n])>>1)); } break; |
3440 CASE(STBI__F_paeth) cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-out_n],prior[k],prior[k-out_n])); break; | 3442 CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-out_n],prior[k],prior[k-out_n])); } break; |
3441 CASE(STBI__F_avg_first) cur[k] = STBI__BYTECAST(raw[k] + (cur[k-out_n] >> 1)); break; | 3443 CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k-out_n] >> 1)); } break; |
3442 CASE(STBI__F_paeth_first) cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-out_n],0,0)); break; | 3444 CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-out_n],0,0)); } break; |
3443 } | 3445 } |
3444 #undef CASE | 3446 #undef CASE |
3445 } | 3447 } |
3446 } | 3448 } |
3447 | 3449 |