Próbuję napisać kod, który używa VAO w C++ przy użyciu Androida NDK do kompilacji. Oczekuję, że będę mógł używać glDeleteVertexArraysOES
, glGenVertexArraysOES
i glBindVertexArrayOES
.Czy obiekty tablicy wierzchołkowej są obsługiwane w systemie Android OpenGL ES 2.0 z rozszerzeniami?
Dołączam nagłówki dla OpenGL ES 2 i rozszerzenia w moim nagłówku.
#define GL_GLEXT_PROTOTYPES
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
Jestem również linkami do OpenGL ES 2 w Android.mk
.
LOCAL_LDLIBS += -lGLESv2
Ale z jakiegoś powodu, gdy kod jest podłączony, nie powiedzie się.
undefined reference to 'glDeleteVertexArraysOES'
undefined reference to 'glGenVertexArraysOES'
undefined reference to 'glBindVertexArrayOES'
Czy linker nie zawiera GLES2/gl2ext.h
?
Sprawdziłem biblioteki NDK i jedyną biblioteką, w której znalazłem te wywołania (za pomocą polecenia 'nm' na Linuksie) była biblioteka GLESv3. Oczywiście ma połączenia bez nazwy "OES" w nazwie, ponieważ jest to podstawowa funkcjonalność w ES 3.0. Ale formularz z 'OES' znajduje się w tej samej bibliotece. Uważam, że to trochę zagadkowe. Sądzę, że możesz spróbować dodać '-glGLvv3' na końcu' LOCAL_LDLIBS' i sprawdzić, czy dzieje się coś strasznego. Zdecydowanie nie będzie to dobry pomysł. –
Najśmieszniejsze jest to, że -GLGLewv3 faktycznie działa. Mój problem: chcę uruchomić go na emulatorze, który nie obsługuje OpenGL ES 3. –