没找到android-ndk,glGenVertexArraysOES

Ser*_*nov 5 android-ndk vertex-array

我想在Android的native-c应用程序中使用VAO.

问题是,这GL_OES_vertex_array_object是支持的,我甚至可以得到的地址glBindVertexArrayOESglDeleteVertexArraysOES,但glGenVertexArraysOES没有找到.

存在是否GL_OES_vertex_array_object可以访问所有这些功能?

我的VAO初始化代码:

std::string vao = "GL_OES_vertex_array_object";

if ( isExtensionSupported ( vao.c_str () ) != 0 )
{
    LOG ( vao << " supported" );
    glBindVertexArrayOES = (PFNGLBINDVERTEXARRAYOESPROC)eglGetProcAddress ( "glBindVertexArrayOES" );
    if ( !glBindVertexArrayOES )
        LOG ( "Can't get proc address: glBindVertexArrayOES" );

    glDeleteVertexArraysOES = (PFNGLDELETEVERTEXARRAYSOESPROC)eglGetProcAddress ( "glDeleteVertexArraysOES" );
    if ( !glDeleteVertexArraysOES )
        LOG ( "Can't get proc address: glDeleteVertexArraysOES" );

    glGenVertexArraysOES = (PFNGLGENVERTEXARRAYSOESPROC)eglGetProcAddress ( "glGenVertexArraysOES" );
    if ( glGenVertexArraysOES )
        LOG ( "Can't get proc address: glGenVertexArraysOES" );
}
else
{
    LOG ( vao << " not supported" );
}
Run Code Online (Sandbox Code Playgroud)

我当然得到了日志消息

Can't get proc address: glGenVertexArraysOES

Android.mk(缩短了一点):

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := smart
LOCAL_SRC_FILES := Base/Node.cpp
...

LOCAL_LDLIBS    := -llog -landroid -lGLESv2 -lEGL
LOCAL_STATIC_LIBRARIES := nv_and_util

include $(BUILD_SHARED_LIBRARY)

$(call import-add-path, C:/NVPACK/TDK_Samples/tegra_android_native_samples_v10p00/libs/jni)
$(call import-module,nv_and_util)
Run Code Online (Sandbox Code Playgroud)

设备型号三星i9003与Android 2.3.5

Jes*_*all 2

如果这确实是您的代码,那么错误就是您缺少“!”。比较:

if ( !glDeleteVertexArraysOES )
Run Code Online (Sandbox Code Playgroud)

if ( glGenVertexArraysOES )
Run Code Online (Sandbox Code Playgroud)