derekf pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=609c86903f163a85b4976bf37a698f96d04936fb

commit 609c86903f163a85b4976bf37a698f96d04936fb
Author: Derek Foreman <der...@osg.samsung.com>
Date:   Thu Mar 8 10:44:04 2018 -0600

    gl_drm: Move some extension queries to after context creation
    
    Anything non-EGL we might query would have to be queried here, so
    I'm moving the call here to protect us in the event that we need GL
    extensions in the future.
    
    I'm still a bit confused as to what string I should be passing to
    evas_gl_symbols, though.
---
 src/modules/evas/engines/gl_drm/evas_engine.c | 1 -
 src/modules/evas/engines/gl_drm/evas_engine.h | 2 ++
 src/modules/evas/engines/gl_drm/evas_outbuf.c | 4 ++++
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/modules/evas/engines/gl_drm/evas_engine.c 
b/src/modules/evas/engines/gl_drm/evas_engine.c
index 2dd6bb1fb4..6d4bdab278 100644
--- a/src/modules/evas/engines/gl_drm/evas_engine.c
+++ b/src/modules/evas/engines/gl_drm/evas_engine.c
@@ -219,7 +219,6 @@ eng_gl_symbols(EGLDisplay edsp)
    if (!dst) dst = (typ)glsym_eglGetProcAddress(sym);
 
    exts = eglQueryString(edsp, EGL_EXTENSIONS);
-   glsym_evas_gl_symbols(glsym_eglGetProcAddress, exts);
 
    FINDSYM(glsym_glEGLImageTargetTexture2DOES,
            "glEGLImageTargetTexture2DOES", glsym_func_void);
diff --git a/src/modules/evas/engines/gl_drm/evas_engine.h 
b/src/modules/evas/engines/gl_drm/evas_engine.h
index 8b1f68035b..dfa5587507 100644
--- a/src/modules/evas/engines/gl_drm/evas_engine.h
+++ b/src/modules/evas/engines/gl_drm/evas_engine.h
@@ -65,6 +65,8 @@ extern Evas_GL_Common_Context_Resize_Call 
glsym_evas_gl_common_context_resize;
 extern Evas_GL_Common_Buffer_Dump_Call glsym_evas_gl_common_buffer_dump;
 extern Evas_GL_Preload_Render_Call glsym_evas_gl_preload_render_lock;
 extern Evas_GL_Preload_Render_Call glsym_evas_gl_preload_render_unlock;
+extern Evas_Gl_Symbols glsym_evas_gl_symbols;
+extern void * (*glsym_eglGetProcAddress) (const char *a);
 
 typedef struct _Render_Engine Render_Engine;
 struct _Render_Engine
diff --git a/src/modules/evas/engines/gl_drm/evas_outbuf.c 
b/src/modules/evas/engines/gl_drm/evas_outbuf.c
index 3dae82a617..88c2a9f089 100644
--- a/src/modules/evas/engines/gl_drm/evas_outbuf.c
+++ b/src/modules/evas/engines/gl_drm/evas_outbuf.c
@@ -161,6 +161,7 @@ _evas_outbuf_init(void)
 static Eina_Bool
 _evas_outbuf_egl_setup(Outbuf *ob)
 {
+   const char *exts;
    int ctx_attr[5];
    int cfg_attr[40];
    int maj = 0, min = 0, n = 0, i = 0, cn = 0;
@@ -307,6 +308,9 @@ _evas_outbuf_egl_setup(Outbuf *ob)
         goto err;
      }
 
+   exts = eglQueryString(ob->egl.disp, EGL_EXTENSIONS);
+   glsym_evas_gl_symbols(glsym_eglGetProcAddress, exts);
+
    vendor = glGetString(GL_VENDOR);
    renderer = glGetString(GL_RENDERER);
    version = glGetString(GL_VERSION);

-- 


Reply via email to