Opengles2 gen/ bind functions

Currently If I target opengles2 on android with these headers

#if ANDROID
#define GL_GLEXT_PROTOTYPES 1
#include “SDL_opengles2.h”
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#endif

I get these errors when trying to build the android project
jni/src/project/mandelbrot.c:132: error: undefined reference to
’glGenVertexArrays’
jni/src/project/mandelbrot.c:138: error: undefined reference to
’glBindVertexArray’
jni/src/project/mandelbrot.c:164: error: undefined reference to
’glBindVertexArray’
jni/src/project/mandelbrot.c:186: error: undefined reference to
’glBindVertexArray’
jni/src/project/mandelbrot.c:197: error: undefined reference to
’glBindVertexArray’

adding these in the .c file that uses those mentioned functions, the
problem goes away.

#if ANDROID
PFNGLGENVERTEXARRAYSOESPROC glGenVertexArrays;
PFNGLBINDVERTEXARRAYOESPROC glBindVertexArray;
PFNGLDELETEVERTEXARRAYSOESPROC glDeleteVertexArrays;
PFNGLISVERTEXARRAYOESPROC glIsVertexArray;

glGenVertexArrays = (PFNGLGENVERTEXARRAYSOESPROC)SDL_GL_GetProcAddress

( “glGenVertexArrays” );
glBindVertexArray = (PFNGLBINDVERTEXARRAYOESPROC)SDL_GL_GetProcAddress
( “glBindVertexArray” );
glDeleteVertexArrays =
(PFNGLDELETEVERTEXARRAYSOESPROC)SDL_GL_GetProcAddress (
“glDeleteVertexArrays” );
glIsVertexArray = (PFNGLISVERTEXARRAYOESPROC)SDL_GL_GetProcAddress (
“glIsVertexArray” );
#endif

Is this solved in an updated version of sdl? Is it possible to hide this
code away so that I don’t have include it in the file that I need to use it?

Currently I have sdl setup like this:
source/
liba.so
libb.so
libc.so
file.h <–includes all .so functions

project/
project.c <-- #include file.h //to bring in all the shared objects

currently to get my project to run I have to add that SDL_getproc directly
in one of my project files that will be generating and binding the opengles
vao.

How can I sort this out?

I don’t load these functions through SDL, nor use SDL_opengl headers. It
can get messy (last time I tried on android I had only trouble), so I just
avoid them althogether.

I’m using https://bitbucket.org/alfonse/glloadgen/wiki/Home to generate a
pair of .h/.c files that I compile together with my application, and ask it
to load those functions after I initialize OpenGL context with SDL.

HTH.
Leonardo.Em seg, 17 de ago de 2015 ?s 18:46, Owen Alanzo Hogarth escreveu:

Currently If I target opengles2 on android with these headers

#if ANDROID
#define GL_GLEXT_PROTOTYPES 1
#include “SDL_opengles2.h”
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#endif

I get these errors when trying to build the android project
jni/src/project/mandelbrot.c:132: error: undefined reference to
’glGenVertexArrays’
jni/src/project/mandelbrot.c:138: error: undefined reference to
’glBindVertexArray’
jni/src/project/mandelbrot.c:164: error: undefined reference to
’glBindVertexArray’
jni/src/project/mandelbrot.c:186: error: undefined reference to
’glBindVertexArray’
jni/src/project/mandelbrot.c:197: error: undefined reference to
’glBindVertexArray’

adding these in the .c file that uses those mentioned functions, the
problem goes away.

#if ANDROID
PFNGLGENVERTEXARRAYSOESPROC glGenVertexArrays;
PFNGLBINDVERTEXARRAYOESPROC glBindVertexArray;
PFNGLDELETEVERTEXARRAYSOESPROC glDeleteVertexArrays;
PFNGLISVERTEXARRAYOESPROC glIsVertexArray;

glGenVertexArrays = (PFNGLGENVERTEXARRAYSOESPROC)SDL_GL_GetProcAddress

( “glGenVertexArrays” );
glBindVertexArray = (PFNGLBINDVERTEXARRAYOESPROC)SDL_GL_GetProcAddress
( “glBindVertexArray” );
glDeleteVertexArrays =
(PFNGLDELETEVERTEXARRAYSOESPROC)SDL_GL_GetProcAddress (
“glDeleteVertexArrays” );
glIsVertexArray = (PFNGLISVERTEXARRAYOESPROC)SDL_GL_GetProcAddress (
“glIsVertexArray” );
#endif

Is this solved in an updated version of sdl? Is it possible to hide this
code away so that I don’t have include it in the file that I need to use it?

Currently I have sdl setup like this:
source/
liba.so
libb.so
libc.so
file.h <–includes all .so functions

project/
project.c <-- #include file.h //to bring in all the shared objects

currently to get my project to run I have to add that SDL_getproc directly
in one of my project files that will be generating and binding the opengles
vao.

How can I sort this out?


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org