public static void stbi__hdr_convert(float *output, byte *input, int req_comp) { if (input[3] != 0) { float f1 = 0; f1 = (float)CRuntime.ldexp(1.0f, input[3] - (128 + 8)); if (req_comp <= 2) { output[0] = (input[0] + input[1] + input[2]) * f1 / 3; } else { output[0] = input[0] * f1; output[1] = input[1] * f1; output[2] = input[2] * f1; } if (req_comp == 2) { output[1] = 1; } if (req_comp == 4) { output[3] = 1; } } else { switch (req_comp) { case 4: case 3: if (req_comp == 4) { output[3] = 1; } output[0] = output[1] = output[2] = 0; break; case 2: case 1: if (req_comp == 2) { output[1] = 1; } output[0] = 0; break; } } }