derekf pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=0255f14dc2189c71776408b00307b8488bfa4dc5

commit 0255f14dc2189c71776408b00307b8488bfa4dc5
Author: Derek Foreman <der...@osg.samsung.com>
Date:   Wed Jul 19 12:24:19 2017 -0500

    gl_common: Prefer unextended eglCreateImage
    
    eglCreateImage is objectively better than eglCreateImageKHR - it allows
    attributes large enough to hold pointer values.  We should use it when
    available and only use the older extension version as fallback.
    
    Also, eglCreateImage is core EGL functionality so don't depend on extensions
    to be present to use it.  Theoretically we should be testing for
    EGL version >= 1.5 but it's probably safe not to.
---
 src/modules/evas/engines/gl_common/evas_gl_context.c | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/src/modules/evas/engines/gl_common/evas_gl_context.c 
b/src/modules/evas/engines/gl_common/evas_gl_context.c
index 922ce62366..2ead3877d4 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_context.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_context.c
@@ -322,19 +322,14 @@ evas_gl_symbols(void *(*GetProcAddress)(const char 
*name), const char *extsn EIN
 // wrong as this is not x11 (output) layer specific like the native surface
 // stuff. this is generic zero-copy textures for gl
 
-   FINDSYMN(eglsym_eglCreateImageKHR, "eglCreateImageKHR", 
"EGL_KHR_image_base", secsym_func_void_ptr);
-   FINDSYMN(eglsym_eglCreateImageKHR, "eglCreateImageKHR", "EGL_KHR_image", 
secsym_func_void_ptr);
-   if (eglsym_eglCreateImageKHR)
+   FINDSYMN(eglsym_eglCreateImage, "eglCreateImage", NULL, 
secsym_func_void_ptr);
+   FINDSYMN(secsym_eglDestroyImage, "eglDestroyImage", NULL, secsym_func_uint);
+   if (!eglsym_eglCreateImage || !secsym_eglDestroyImage)
      {
+        eglsym_eglCreateImage = NULL;
+        secsym_eglDestroyImage = NULL;
+        FINDSYMN(eglsym_eglCreateImageKHR, "eglCreateImageKHR", 
"EGL_KHR_image_base", secsym_func_void_ptr);
         FINDSYMN(secsym_eglDestroyImage, "eglDestroyImageKHR", 
"EGL_KHR_image_base", secsym_func_uint);
-        FINDSYMN(secsym_eglDestroyImage, "eglDestroyImageKHR", 
"EGL_KHR_image", secsym_func_uint);
-     }
-   else
-     {
-        FINDSYMN(eglsym_eglCreateImage, "eglCreateImage", 
"EGL_KHR_get_all_proc_addresses", secsym_func_void_ptr);
-        FINDSYMN(eglsym_eglCreateImage, "eglCreateImage", 
"EGL_KHR_client_get_all_proc_addresses", secsym_func_void_ptr);
-        FINDSYMN(secsym_eglDestroyImage, "eglDestroyImage", 
"EGL_KHR_get_all_proc_addresses", secsym_func_uint);
-        FINDSYMN(secsym_eglDestroyImage, "eglDestroyImage", 
"EGL_KHR_client_get_all_proc_addresses", secsym_func_uint);
      }
 
    FINDSYM(glsym_glProgramParameteri, "glProgramParameteri", NULL, 
glsym_func_void);

-- 


Reply via email to