как создать поверхность с цветовым пространством P3, используя расширение EGL - PullRequest
0 голосов
/ 04 марта 2020

Я хочу использовать EGL для создания поверхности с широкой цветовой гаммой, такой как P3, я прочитал следующее руководство. https://android-developers.googleblog.com/2019/05/wide-color-photos-are-coming-to-android.html https://developer.android.com/training/wide-color-gamut

Ниже приведен код, который я пишу на нативном языке для создания поверхности с P3

std::vector<EGLint> attributes;
attributes.push_back(EGL_GL_COLORSPACE_KHR);
attributes.push_back(EGL_GL_COLORSPACE_DISPLAY_P3_EXT);
attributes.push_back(EGL_NONE);
surface_ = eglCreateWindowSurface(display, config, window, attributes.data());

Затем проводная связь произошло, когда я запускаю свою программу на Pixel2 (Android 9), она работает и может создать поверхность с правильным цветовым пространством, но когда я запускаю на Pixel2 (Android 10), ей не удалось создать поверхность。

2020-03-04 19:11:05.547 1146-1275/com.example.widecolor E/libEGL: processAttributes:604 error 3009 (EGL_BAD_MATCH)
2020-03-04 19:11:05.547 1146-1275/com.example.widecolor E/libEGL: error invalid colorspace: 13155

Я думаю, что разница в версии EGL, Android 9 использует EGL1.4, когда Android 10 использует EGL 1.5. Вопрос в том, как создать EGL-поверхность с широким цветовым пространством под Android 10.

...