Хронос предоставляет это расширение как часть EGL. Я пытался добавить эти флаги в конфиги поверхности. :
Код: Выделить всё
final int EGL_GL_COLORSPACE_KHR = 0x309D;
final int EGL_GL_COLORSPACE_SRGB_KHR = 0x3089;
int attribs[] = {
EGL10.EGL_LEVEL, 0,
EGL10.EGL_RENDERABLE_TYPE,EGLExt.EGL_OPENGL_ES3_BIT_KHR,
EGL10.EGL_COLOR_BUFFER_TYPE, EGL10.EGL_RGB_BUFFER,
EGL10.EGL_RED_SIZE, 8,
EGL10.EGL_GREEN_SIZE, 8,
EGL10.EGL_BLUE_SIZE, 8,
EGL10.EGL_DEPTH_SIZE, maxDepth,
EGL10.EGL_SAMPLE_BUFFERS, 1,
EGL10.EGL_SAMPLES, 4,
EGL_GL_COLORSPACE_KHR ,EGL_GL_COLORSPACE_SRGB_KHR //
На самом деле, я обнаружил здесь и в других онлайн-демонстрациях, что эта настройка действительно используется. Кроме того, iOS позволяет настроить FBO по умолчанию на sRGB с флагом:
kEAGLColorFormatSRGBA8
Есть ли другой способ включения sRGB на устройстве Android, чем это расширение? (Конечно, другой альтернативой является гамма-коррекция в шейдере, но это именно то, чего я не хочу делать)
Подробнее здесь: [url]https://stackoverflow.com/questions/44589807/opengl-srgb-configuration-on-android[/url]