MCPcopy Create free account
hub / github.com/OpenFodder/openfodder / stbi__load_and_postprocess_16bit

Function stbi__load_and_postprocess_16bit

Source/Utils/stb_image.h:1285–1310  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1283}
1284
1285static stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, int *x, int *y, int *comp, int req_comp)
1286{
1287 stbi__result_info ri;
1288 void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 16);
1289
1290 if (result == NULL)
1291 return NULL;
1292
1293 // it is the responsibility of the loaders to make sure we get either 8 or 16 bit.
1294 STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16);
1295
1296 if (ri.bits_per_channel != 16) {
1297 result = stbi__convert_8_to_16((stbi_uc *) result, *x, *y, req_comp == 0 ? *comp : req_comp);
1298 ri.bits_per_channel = 16;
1299 }
1300
1301 // @TODO: move stbi__convert_format16 to here
1302 // @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision
1303
1304 if (stbi__vertically_flip_on_load) {
1305 int channels = req_comp ? req_comp : *comp;
1306 stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi__uint16));
1307 }
1308
1309 return (stbi__uint16 *) result;
1310}
1311
1312#if !defined(STBI_NO_HDR) && !defined(STBI_NO_LINEAR)
1313static void stbi__float_postprocess(float *result, int *x, int *y, int *comp, int req_comp)

Callers 3

stb_image.hFile · 0.85
stbi_load_16_from_memoryFunction · 0.85

Calls 3

stbi__load_mainFunction · 0.85
stbi__convert_8_to_16Function · 0.85
stbi__vertical_flipFunction · 0.85

Tested by

no test coverage detected