Lines Matching defs:req_comp

431 STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp);
908 static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);
914 static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);
921 static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);
927 static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);
933 static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc);
940 static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);
946 static void *stbi__pic_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);
952 static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);
953 static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp);
959 static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);
1135 static void *stbi__load_main(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc)
1145 if (stbi__png_test(s)) return stbi__png_load(s,x,y,comp,req_comp, ri);
1148 if (stbi__bmp_test(s)) return stbi__bmp_load(s,x,y,comp,req_comp, ri);
1151 if (stbi__gif_test(s)) return stbi__gif_load(s,x,y,comp,req_comp, ri);
1154 if (stbi__psd_test(s)) return stbi__psd_load(s,x,y,comp,req_comp, ri, bpc);
1159 if (stbi__pic_test(s)) return stbi__pic_load(s,x,y,comp,req_comp, ri);
1166 if (stbi__jpeg_test(s)) return stbi__jpeg_load(s,x,y,comp,req_comp, ri);
1169 if (stbi__pnm_test(s)) return stbi__pnm_load(s,x,y,comp,req_comp, ri);
1174 float *hdr = stbi__hdr_load(s, x,y,comp,req_comp, ri);
1175 return stbi__hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp);
1182 return stbi__tga_load(s,x,y,comp,req_comp, ri);
1258 static unsigned char *stbi__load_and_postprocess_8bit(stbi__context *s, int *x, int *y, int *comp, int req_comp)
1261 void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 8);
1270 result = stbi__convert_16_to_8((stbi__uint16 *) result, *x, *y, req_comp == 0 ? *comp : req_comp);
1277 int channels = req_comp ? req_comp : *comp;
1284 static stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, int *x, int *y, int *comp, int req_comp)
1287 void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 16);
1296 result = stbi__convert_8_to_16((stbi_uc *) result, *x, *y, req_comp == 0 ? *comp : req_comp);
1304 int channels = req_comp ? req_comp : *comp;
1312 static void stbi__float_postprocess(float *result, int *x, int *y, int *comp, int req_comp)
1315 int channels = req_comp ? req_comp : *comp;
1364 STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *comp, int req_comp)
1369 result = stbi_load_from_file(f,x,y,comp,req_comp);
1374 STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp)
1379 result = stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp);
1387 STBIDEF stbi__uint16 *stbi_load_from_file_16(FILE *f, int *x, int *y, int *comp, int req_comp)
1392 result = stbi__load_and_postprocess_16bit(&s,x,y,comp,req_comp);
1400 STBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int *comp, int req_comp)
1405 result = stbi_load_from_file_16(f,x,y,comp,req_comp);
1427 STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp)
1431 return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp);
1434 STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp)
1438 return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp);
1442 STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp)
1448 result = (unsigned char*) stbi__load_gif_main(&s, delays, x, y, z, comp, req_comp);
1458 static float *stbi__loadf_main(stbi__context *s, int *x, int *y, int *comp, int req_comp)
1464 float *hdr_data = stbi__hdr_load(s,x,y,comp,req_comp, &ri);
1466 stbi__float_postprocess(hdr_data,x,y,comp,req_comp);
1470 data = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp);
1472 return stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp);
1476 STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp)
1480 return stbi__loadf_main(&s,x,y,comp,req_comp);
1483 STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp)
1487 return stbi__loadf_main(&s,x,y,comp,req_comp);
1491 STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *comp, int req_comp)
1496 result = stbi_loadf_from_file(f,x,y,comp,req_comp);
1501 STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *comp, int req_comp)
1505 return stbi__loadf_main(&s,x,y,comp,req_comp);
1735 // generic converter from built-in img_n to req_comp
1753 static unsigned char *stbi__convert_format(unsigned char *data, int img_n, int req_comp, unsigned int x, unsigned int y)
1758 if (req_comp == img_n) return data;
1759 STBI_ASSERT(req_comp >= 1 && req_comp <= 4);
1761 good = (unsigned char *) stbi__malloc_mad3(req_comp, x, y, 0);
1769 unsigned char *dest = good + j * x * req_comp;
1773 // convert source image with img_n components to one with req_comp components;
1775 switch (STBI__COMBO(img_n, req_comp)) {
1810 static stbi__uint16 *stbi__convert_format16(stbi__uint16 *data, int img_n, int req_comp, unsigned int x, unsigned int y)
1815 if (req_comp == img_n) return data;
1816 STBI_ASSERT(req_comp >= 1 && req_comp <= 4);
1818 good = (stbi__uint16 *) stbi__malloc(req_comp * x * y * 2);
1826 stbi__uint16 *dest = good + j * x * req_comp;
1830 // convert source image with img_n components to one with req_comp components;
1832 switch (STBI__COMBO(img_n, req_comp)) {
3863 static stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, int *comp, int req_comp)
3868 // validate req_comp
3869 if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error");
3875 n = req_comp ? req_comp : z->s->img_n >= 3 ? 3 : 1;
4026 static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)
4035 result = load_jpeg_image(j, x,y,comp,req_comp);
5079 static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp)
5209 if ((req_comp == s->img_n+1 && req_comp != 3 && !pal_img_n) || has_trans)
5227 if (req_comp >= 3) s->img_out_n = req_comp;
5262 static void *stbi__do_png(stbi__png *p, int *x, int *y, int *n, int req_comp, stbi__result_info *ri)
5265 if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error");
5266 if (stbi__parse_png_file(p, STBI__SCAN_load, req_comp)) {
5275 if (req_comp && req_comp != p->s->img_out_n) {
5277 result = stbi__convert_format((unsigned char *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y);
5279 result = stbi__convert_format16((stbi__uint16 *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y);
5280 p->s->img_out_n = req_comp;
5294 static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)
5298 return stbi__do_png(&p, x,y,comp,req_comp, ri);
5530 static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)
5587 if (req_comp && req_comp >= 3) // we can directly decode 3 or 4
5588 target = req_comp;
5722 if (req_comp && req_comp != target) {
5723 out = stbi__convert_format(out, target, req_comp, s->img_x, s->img_y);
5870 static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)
6063 if (req_comp && req_comp != tga_comp)
6064 tga_data = stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height);
6125 static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc)
6311 if (req_comp && req_comp != 4) {
6313 out = (stbi_uc *) stbi__convert_format16((stbi__uint16 *) out, 4, req_comp, w, h);
6315 out = stbi__convert_format(out, 4, req_comp, w, h);
6499 static void *stbi__pic_load(stbi__context *s,int *px,int *py,int *comp,int req_comp, stbi__result_info *ri)
6534 if (req_comp == 0) req_comp = *comp;
6535 result=stbi__convert_format(result,4,req_comp,x,y);
6777 static stbi_uc *stbi__gif_load_next(stbi__context *s, stbi__gif *g, int *comp, int req_comp, stbi_uc *two_back)
6783 STBI_NOTUSED(req_comp);
6962 static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp)
6983 u = stbi__gif_load_next(s, &g, comp, req_comp, two_back);
7043 if (req_comp && req_comp != 4)
7044 out = stbi__convert_format(out, 4, req_comp, layers * g.w, g.h);
7053 static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)
7060 u = stbi__gif_load_next(s, &g, comp, req_comp, 0);
7068 if (req_comp && req_comp != 4)
7069 u = stbi__convert_format(u, 4, req_comp, g.w, g.h);
7136 static void stbi__hdr_convert(float *output, stbi_uc *input, int req_comp)
7142 if (req_comp <= 2)
7149 if (req_comp == 2) output[1] = 1;
7150 if (req_comp == 4) output[3] = 1;
7152 switch (req_comp) {
7163 static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)
7209 if (req_comp == 0) req_comp = 3;
7211 if (!stbi__mad4sizes_valid(width, height, req_comp, sizeof(float), 0))
7215 hdr_data = (float *) stbi__malloc_mad4(width, height, req_comp, sizeof(float), 0);
7228 stbi__hdr_convert(hdr_data + j * width * req_comp + i * req_comp, rgbe, req_comp);
7247 stbi__hdr_convert(hdr_data, rgbe, req_comp);
7285 stbi__hdr_convert(hdr_data+(j*width + i)*req_comp, scanline + i*4, req_comp);
7511 static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)
7537 if (req_comp && req_comp != s->img_n) {
7539 out = (stbi_uc *) stbi__convert_format16((stbi__uint16 *) out, s->img_n, req_comp, s->img_x, s->img_y);
7541 out = stbi__convert_format(out, s->img_n, req_comp, s->img_x, s->img_y);
7847 fix to TGA optimization when req_comp != number of components in TGA;
7945 0.52 png handles req_comp=3,4 directly; minor cleanup; jpeg comments
7946 0.51 obey req_comp requests, 1-component jpegs return as 1-component,