X-Git-Url: https://git.ralfj.de/gltest.git/blobdiff_plain/8a26468f18f8efc86767cacccbb7493a87858098..dac0dad539be501c94cb8646d979e6e7787e1992:/eglbackend.cpp diff --git a/eglbackend.cpp b/eglbackend.cpp index e2f9787..ef27997 100644 --- a/eglbackend.cpp +++ b/eglbackend.cpp @@ -17,6 +17,7 @@ */ #include "eglbackend.h" +#include "glutil.h" #include #include @@ -24,6 +25,10 @@ #include +#if !defined(CON_GL1) && !defined(CON_GLES2) +#error "Valid GL contexts for EGL are: GL1, GLES2" +#endif + static const char *eglErrorToString(EGLint e) { #define CASE(name) case name: return #name @@ -50,7 +55,7 @@ static void exitEglError(const char *what) } static const EGLint context_attribs[] = { -#ifdef USE_GLES +#ifdef CON_GLES2 EGL_CONTEXT_CLIENT_VERSION, 2, #endif EGL_NONE @@ -59,7 +64,7 @@ static const EGLint config_attribs[] = { EGL_RED_SIZE, 4, EGL_GREEN_SIZE, 4, EGL_BLUE_SIZE, 4, -#ifdef USE_GLES +#ifdef CON_GLES2 EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, #else EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, @@ -77,12 +82,12 @@ VisualID EGLBackend::initialize(Display *xDisplay) exitEglError("Failed to get EGL display"); if (eglInitialize(display, &eglMajor, &eglMinor) == EGL_FALSE) exitEglError("Failed to initialize EGL"); - printf("Using EGL version %d.%d\n", eglMajor, eglMinor); + printf("Using EGL version: %d.%d\n", eglMajor, eglMinor); if (eglMajor == 1 && eglMinor < 3) { fprintf(stderr, "Need at least EGL 1.3 to function properly\n"); exit(1); } -#ifdef USE_GLES +#ifdef CON_GLES2 if (eglBindAPI(EGL_OPENGL_ES_API) == EGL_FALSE) #else if (eglBindAPI(EGL_OPENGL_API) == EGL_FALSE) @@ -91,8 +96,13 @@ VisualID EGLBackend::initialize(Display *xDisplay) // get an appropriate config EGLConfig configs[1]; EGLint count; - if (eglChooseConfig(display, config_attribs, configs, 1, &count) == EGL_FALSE || count == 0) + if (eglChooseConfig(display, config_attribs, configs, 1, &count) == EGL_FALSE){ exitEglError("Failed to choose config"); + } + if (count == 0) { + fprintf(stderr, "Found no matching EGL configuration\n"); + exit(1); + } config = configs[0]; } // return visual ID @@ -111,6 +121,9 @@ void EGLBackend::createContext(Window window) exitEglError("Failed to create context"); if (eglMakeCurrent(display, surface, surface, context) == EGL_FALSE) exitEglError("Failed to make context current"); + printf("Using GL version: %s\n", glGetString(GL_VERSION)); + // initialise GL utilities + resolveFunctionPointers(eglGetProcAddress); } EGLBackend::~EGLBackend()