X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=gl.c;h=0e18c45850de322c27b0aadc98124b0c4da14880;hb=3ccc039bbac0a0d768f6b9fd74518826af9c1956;hp=92b39f722ae76b5978c8295bd4d7eb78f9519597;hpb=e54719efea14ccd1762402a71a37066e853bbe5a;p=libpicofe.git diff --git a/gl.c b/gl.c index 92b39f7..0e18c45 100644 --- a/gl.c +++ b/gl.c @@ -3,12 +3,17 @@ #include #include +#include "gl_platform.h" #include "gl.h" static EGLDisplay edpy; static EGLSurface esfc; static EGLContext ectxt; +/* for external flips */ +void *gl_es_display; +void *gl_es_surface; + static int gl_have_error(const char *name) { GLenum e = glGetError(); @@ -29,7 +34,7 @@ static int gles_have_error(const char *name) return 0; } -int gl_init(void *display, void *window) +int gl_init(void *display, void *window, int *quirks) { EGLConfig ecfg = NULL; GLuint texture_name = 0; @@ -42,6 +47,12 @@ int gl_init(void *display, void *window) EGL_NONE }; + ret = gl_platform_init(&display, &window, quirks); + if (ret != 0) { + fprintf(stderr, "gl_platform_init failed with %d\n", ret); + goto out; + } + tmp_texture_mem = calloc(1, 1024 * 512 * 2); if (tmp_texture_mem == NULL) { fprintf(stderr, "OOM\n"); @@ -112,12 +123,19 @@ int gl_init(void *display, void *window) if (gl_have_error("init")) goto out; + gl_es_display = (void *)edpy; + gl_es_surface = (void *)esfc; retval = 0; out: free(tmp_texture_mem); return retval; } +void gl_announce(void) +{ + printf("GL_RENDERER: %s\n", (char *)glGetString(GL_RENDERER)); +} + static float vertices[] = { -1.0f, 1.0f, 0.0f, // 0 0 1 1.0f, 1.0f, 0.0f, // 1 ^ @@ -177,4 +195,9 @@ void gl_finish(void) esfc = EGL_NO_SURFACE; eglTerminate(edpy); edpy = EGL_NO_DISPLAY; + + gl_es_display = (void *)edpy; + gl_es_surface = (void *)esfc; + + gl_platform_finish(); }