В OpenGL ES я могу создавать буферы рендеринга sRGB, используя либо OpenGL ES 3.0, либо OpenGL ES 2.0 с расширением GL_EXT_sRGB. Я создаю визуализируемую текстуру с внутренним форматом GL_SRGB8_ALPHA8 (или GL_SRGB8_ALPHA8_EXT), и она отлично работает на устройствах Android, которые ее поддерживают.
Однако я не могу найти способ заставить буфер рендеринга по умолчанию использовать sRGB на Android. Я использую GLSurfaceView, поэтому он проходит через EGL и eglChooseConfig, но я не могу найти, какой атрибут, если он есть, управляет настройкой sRGB.
Я, конечно, могу обойти это путем рендеринга в целевой sRGB, а затем копирования в резервный буфер перед отображением, но это довольно расточительно. Это было намного проще сделать в OpenGL и DirectX, но OpenGL ES требует, чтобы настройка sRGB применялась при создании буфера рендеринга/буфера кадров.
Любые идеи?