From 5a8d82228f6646133c968359d4126f58b1a93b63 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Sun, 17 Mar 2013 13:47:57 +0900 Subject: [PATCH] update on recent symbol finding changes in evas - use dlsym for fbo's --- src/modules/evas/engines/gl_common/evas_gl_context.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 d682a1b2e8..945c578fdd 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_context.c +++ b/src/modules/evas/engines/gl_common/evas_gl_context.c @@ -97,26 +97,35 @@ gl_symbols(void) FINDSYM(glsym_glXQueryExtensionsString, "glXQueryExtensionsString", glsym_func_const_char_ptr); #endif -#define FALLBAK(dst, typ) if (!dst) dst = (typ)sym_missing; +#define FINDSYM2(dst, sym, typ) if (!dst) dst = (typ)dlsym(RTLD_DEFAULT, sym) +#define FALLBAK(dst, typ) if (!dst) dst = (typ)sym_missing FINDSYM(glsym_glGenFramebuffers, "glGenFramebuffersEXT", glsym_func_void); FINDSYM(glsym_glGenFramebuffers, "glGenFramebuffersARB", glsym_func_void); FINDSYM(glsym_glGenFramebuffers, "glGenFramebuffers", glsym_func_void); + // nvidia tegra3 drivers seem to not expose via getprocaddress, but dlsym finds it + FINDSYM2(glsym_glGenFramebuffers, "glGenFramebuffers", glsym_func_void); FALLBAK(glsym_glGenFramebuffers, glsym_func_void); FINDSYM(glsym_glBindFramebuffer, "glBindFramebufferEXT", glsym_func_void); FINDSYM(glsym_glBindFramebuffer, "glBindFramebufferARB", glsym_func_void); FINDSYM(glsym_glBindFramebuffer, "glBindFramebuffer", glsym_func_void); + // nvidia tegra3 drivers seem to not expose via getprocaddress, but dlsym finds it + FINDSYM2(glsym_glBindFramebuffer, "glBindFramebuffer", glsym_func_void); FALLBAK(glsym_glBindFramebuffer, glsym_func_void); FINDSYM(glsym_glFramebufferTexture2D, "glFramebufferTexture2DEXT", glsym_func_void); FINDSYM(glsym_glFramebufferTexture2D, "glFramebufferTexture2DARB", glsym_func_void); FINDSYM(glsym_glFramebufferTexture2D, "glFramebufferTexture2D", glsym_func_void); + // nvidia tegra3 drivers seem to not expose via getprocaddress, but dlsym finds it + FINDSYM2(glsym_glFramebufferTexture2D, "glFramebufferTexture2D", glsym_func_void); FALLBAK(glsym_glFramebufferTexture2D, glsym_func_void); FINDSYM(glsym_glDeleteFramebuffers, "glDeleteFramebuffersEXT", glsym_func_void); FINDSYM(glsym_glDeleteFramebuffers, "glDeleteFramebuffersARB", glsym_func_void); FINDSYM(glsym_glDeleteFramebuffers, "glDeleteFramebuffers", glsym_func_void); + // nvidia tegra3 drivers seem to not expose via getprocaddress, but dlsym finds it + FINDSYM2(glsym_glDeleteFramebuffers, "glDeleteFramebuffers", glsym_func_void); FALLBAK(glsym_glDeleteFramebuffers, glsym_func_void); FINDSYM(glsym_glGetProgramBinary, "glGetProgramBinaryOES", glsym_func_void);