X-Git-Url: https://git.ralfj.de/gltest.git/blobdiff_plain/8cefc2759cf91f98987e2e2b74fe913a9de88853..8dd990b1ed5cb3a4b78dfdf48b1f39d3f8bb0f0f:/eglbackend.cpp diff --git a/eglbackend.cpp b/eglbackend.cpp index ac7ab38..a9e2019 100644 --- a/eglbackend.cpp +++ b/eglbackend.cpp @@ -49,7 +49,12 @@ static void exitEglError(const char *what) exit(1); } -// attributes for a visual in RGBA format with at least 4 bits per color +static const EGLint context_attribs[] = { +#ifdef USE_GLES + EGL_CONTEXT_CLIENT_VERSION, 2, +#endif + EGL_NONE +}; static const EGLint config_attribs[] = { EGL_RED_SIZE, 4, EGL_GREEN_SIZE, 4, @@ -69,7 +74,12 @@ VisualID EGLBackend::initialize(Display *xDisplay) if (eglInitialize(display, &eglMajor, &eglMinor) == EGL_FALSE) exitEglError("Failed to initialize EGL"); printf("Using EGL version %d.%d\n", eglMajor, eglMinor); - eglBindAPI(EGL_OPENGL_API); +#ifdef USE_GLES + if (eglBindAPI(EGL_OPENGL_ES_API) == EGL_FALSE) +#else + if (eglBindAPI(EGL_OPENGL_API) == EGL_FALSE) +#endif + exitEglError("Failed to bind API"); // get an appropriate config EGLConfig configs[1]; EGLint count; @@ -88,7 +98,7 @@ void EGLBackend::createContext(Window window) assert(display != EGL_NO_DISPLAY && context == EGL_NO_CONTEXT); surface = eglCreateWindowSurface(display, config, window, NULL); // create an EGL context and use it with the surface - context = eglCreateContext(display, config, EGL_NO_CONTEXT, NULL); + context = eglCreateContext(display, config, EGL_NO_CONTEXT, context_attribs); if (context == EGL_NO_CONTEXT) exitEglError("Failed to create context"); if (eglMakeCurrent(display, surface, surface, context) == EGL_FALSE)