Sto provando a scrivere del codice che usi VAO in C++ usando l'NDK di Android per compilare. Mi aspetto di poter utilizzare glDeleteVertexArraysOES
, glGenVertexArraysOES
e glBindVertexArrayOES
.Gli oggetti array Vertex sono supportati in Android OpenGL ES 2.0 utilizzando le estensioni?
Sono incluse le intestazioni per OpenGL ES 2 e le estensioni nella mia intestazione.
#define GL_GLEXT_PROTOTYPES
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
sono anche link a OpenGL ES 2 in Android.mk
.
LOCAL_LDLIBS += -lGLESv2
Ma per qualche ragione, quando il codice viene collegata, viene a mancare.
undefined reference to 'glDeleteVertexArraysOES'
undefined reference to 'glGenVertexArraysOES'
undefined reference to 'glBindVertexArrayOES'
Il linker non include GLES2/gl2ext.h
?
Ho controllato le librerie NDK e l'unica libreria in cui ho trovato quelle chiamate (usando il comando 'nm' su Linux) era la libreria GLESv3. Ovviamente ha le chiamate senza "OES" nel nome perché questa è la funzionalità principale in ES 3.0. Ma il modulo con 'OES' si trova nella stessa libreria. Trovo che sia piuttosto sconcertante. Immagino che potresti provare ad aggiungere '-lGLESv3' alla fine di' LOCAL_LDLIBS', e vedere se succede qualcosa di orribile. Sicuramente non sembrerebbe una buona idea in generale. –
La cosa divertente è che -lGLESv3 funziona davvero. Il mio problema: voglio eseguirlo sull'emulatore, che non supporta OpenGL ES 3. –