Loading opengl/libs/EGL/eglApi.cpp +19 −1 Original line number Diff line number Diff line Loading @@ -1733,13 +1733,31 @@ EGLImageKHR eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target, ContextRef _c(dp.get(), ctx); egl_context_t * const c = _c.get(); // Temporary hack: eglImageCreateKHR should accept EGL_GL_COLORSPACE_LINEAR_KHR, // EGL_GL_COLORSPACE_SRGB_KHR and EGL_GL_COLORSPACE_DEFAULT_EXT if // EGL_EXT_image_gl_colorspace is supported, but some drivers don't like // the DEFAULT value and generate an error. std::vector<EGLint> strippedAttribList; for (const EGLint *attr = attrib_list; attr && attr[0] != EGL_NONE; attr += 2) { if (attr[0] == EGL_GL_COLORSPACE_KHR && dp->haveExtension("EGL_EXT_image_gl_colorspace")) { if (attr[1] != EGL_GL_COLORSPACE_LINEAR_KHR && attr[1] != EGL_GL_COLORSPACE_SRGB_KHR) { continue; } } strippedAttribList.push_back(attr[0]); strippedAttribList.push_back(attr[1]); } strippedAttribList.push_back(EGL_NONE); EGLImageKHR result = EGL_NO_IMAGE_KHR; egl_connection_t* const cnx = &gEGLImpl; if (cnx->dso && cnx->egl.eglCreateImageKHR) { result = cnx->egl.eglCreateImageKHR( dp->disp.dpy, c ? c->context : EGL_NO_CONTEXT, target, buffer, attrib_list); target, buffer, strippedAttribList.data()); } return result; } Loading Loading
opengl/libs/EGL/eglApi.cpp +19 −1 Original line number Diff line number Diff line Loading @@ -1733,13 +1733,31 @@ EGLImageKHR eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target, ContextRef _c(dp.get(), ctx); egl_context_t * const c = _c.get(); // Temporary hack: eglImageCreateKHR should accept EGL_GL_COLORSPACE_LINEAR_KHR, // EGL_GL_COLORSPACE_SRGB_KHR and EGL_GL_COLORSPACE_DEFAULT_EXT if // EGL_EXT_image_gl_colorspace is supported, but some drivers don't like // the DEFAULT value and generate an error. std::vector<EGLint> strippedAttribList; for (const EGLint *attr = attrib_list; attr && attr[0] != EGL_NONE; attr += 2) { if (attr[0] == EGL_GL_COLORSPACE_KHR && dp->haveExtension("EGL_EXT_image_gl_colorspace")) { if (attr[1] != EGL_GL_COLORSPACE_LINEAR_KHR && attr[1] != EGL_GL_COLORSPACE_SRGB_KHR) { continue; } } strippedAttribList.push_back(attr[0]); strippedAttribList.push_back(attr[1]); } strippedAttribList.push_back(EGL_NONE); EGLImageKHR result = EGL_NO_IMAGE_KHR; egl_connection_t* const cnx = &gEGLImpl; if (cnx->dso && cnx->egl.eglCreateImageKHR) { result = cnx->egl.eglCreateImageKHR( dp->disp.dpy, c ? c->context : EGL_NO_CONTEXT, target, buffer, attrib_list); target, buffer, strippedAttribList.data()); } return result; } Loading