GLES 3.0 incluyendo gl2ext.h

De acuerdo con el Registro Khronos OpenGL ES , el encabezado de extensión de GLES 3.0 es en realidad <GLES2/gl2ext.h> . gl3ext.h debe estar vacío y sólo se proporciona para la compatibilidad heredada. Por lo tanto, si desea incluir encabezados de GLES 3.0, debe hacer lo siguiente:

 #include <GLES3/gl3.h> #include <GLES2/gl2ext.h> 

Sin embargo, compilando con el NDK de Android, parece que esa versión del gl2ext.h interna #include <GLES2/gl2.h> , dando el siguiente error * (estoy compilando con API-19):

 C:\android-ndk-r10e\platforms\android-19\arch-arm\usr\include\GLES2\gl2ext.h(6): includes this header: C:\android-ndk-r10e\platforms\android-19\arch-arm\usr\include\GLES2\gl2.h(572,37): error : conflicting types for 'glShaderSource' GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar** string, const GLint* length); ^ C:\android-ndk-r10e\platforms\android-19\arch-arm\usr\include\GLES3\gl3.h(905,39): note: previous declaration is here GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length); 

Esto se debe a que el prototipo de glShaderSource cambiado de GLES 2.0 a GLES 3.0 core. ¿Se trata de un error en la versión Android de NDK de los encabezados glext, o no estoy haciendo algo correctamente?

Basándome en los comentarios de Michael, he encontrado que esto está arreglado en API-21. Sin embargo, si todavía necesita usar API-18 o API-19, hay un trabajo alrededor. Usted puede simplemente:

 #define __gl2_h_ #include <GLES2/gl2ext.h> 

Cuando gl2ext.h incluye gl2.h, el protector de inclusión definido hará que se salte el contenido de gl2.h.

  • 'Texture2D': No se encontró ninguna función sobrecargada equivalente OpenGL ES2 Android (JAVA)
  • Trazado gráfico dinámico con openGL en Android
  • Android OpenGL gameloop fuera de OnFrame
  • ¿Cuál es la diferencia entre 'Wall Time' y 'Thread Time' en 'Tracer para OpenGL ES' en DDMS
  • Traducción después de la rotación
  • ¿Cuándo sincronizo métodos o utilizo bloques sincronizados en mis métodos en un juego de Android?
  • OpenGL ES 2.0 - Texturas siempre negras
  • ¿Cómo puedo declarar la versión de OpenGL en shaders en Android?
  • Pasar atributos personalizados a un shader de fragmentos personalizado
  • Cuarzo 2D o OpenGL ES? Pros y contras a largo plazo, posibilidad de migración a otras plataformas
  • Recibe la entrada completa de unicode android en C / C ++
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.