egl: These changes allow an eglBindAPI(EGL_OPENGL_ES_API) to succeed, and to work correctly with GLES1 and GLES2.
- egl_xdri.c just sets the EGL_OPENGL_ES_BIT as well as the EGL_OPENGL_BIT in ClientAPIsMask - eglconfig.c allows the renderable type to include EGL_OPENGL_ES2_BIT as well as EGL_OPENGL_ES_BIT. - egl_xlib.c sets the EGL_NATIVE_RENDERABLE attribute to EGL_FALSE for all softpipe configurations. (Otherwise, an eglChooseConfig() that looks for particular values of EGL_NATIVE_RENDERABLE will fail.)
This commit is contained in:

committed by
Brian Paul

parent
b028b0cc53
commit
a1fb565ea7
@@ -828,7 +828,7 @@ _eglMain(_EGLDisplay *disp, const char *args)
|
||||
xdri_drv->Base.API.DestroySurface = xdri_eglDestroySurface;
|
||||
xdri_drv->Base.API.SwapBuffers = xdri_eglSwapBuffers;
|
||||
|
||||
xdri_drv->Base.ClientAPIsMask = EGL_OPENGL_BIT /*| EGL_OPENGL_ES_BIT*/;
|
||||
xdri_drv->Base.ClientAPIsMask = EGL_OPENGL_BIT | EGL_OPENGL_ES_BIT;
|
||||
xdri_drv->Base.Name = "X/DRI";
|
||||
|
||||
_eglLog(_EGL_DEBUG, "XDRI: main(%s)", args);
|
||||
|
@@ -147,7 +147,7 @@ _eglParseConfigAttribs(_EGLConfig *config, const EGLint *attrib_list)
|
||||
}
|
||||
else if (attr == EGL_RENDERABLE_TYPE) {
|
||||
EGLint renType = attrib_list[++i];
|
||||
if (renType & ~(EGL_OPENGL_ES_BIT | EGL_OPENVG_BIT)) {
|
||||
if (renType & ~(EGL_OPENGL_ES_BIT | EGL_OPENGL_ES2_BIT | EGL_OPENVG_BIT)) {
|
||||
_eglError(EGL_BAD_ATTRIBUTE, "eglChooseConfig");
|
||||
return EGL_FALSE;
|
||||
}
|
||||
|
@@ -172,6 +172,7 @@ create_configs(_EGLDriver *drv, EGLDisplay dpy)
|
||||
SET_CONFIG_ATTRIB(config, EGL_STENCIL_SIZE, sbits);
|
||||
SET_CONFIG_ATTRIB(config, EGL_NATIVE_VISUAL_ID, visid);
|
||||
SET_CONFIG_ATTRIB(config, EGL_NATIVE_VISUAL_TYPE, vistype);
|
||||
SET_CONFIG_ATTRIB(config, EGL_NATIVE_RENDERABLE, EGL_FALSE);
|
||||
|
||||
_eglAddConfig(disp, config);
|
||||
}
|
||||
|
Reference in New Issue
Block a user