6

Android 用のネイティブ c アプリケーションで VAO を使用したいと考えています。

問題は、それGL_OES_vertex_array_objectがサポートされており、アドレスを取得することもできますが、glBindVertexArrayOES見つからglDeleteVertexArraysOESない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" );
}

もちろん、ログメッセージを取得します

proc アドレスを取得できません: 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)

デバイス モデル Android 2.3.5 搭載の Samsung i9003

4

2 に答える 2

3

私はちょうどこれをテストしました....

交換:

#include <GLES2/gl2ext.h>

これとともに:

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

gl2ext.h をインクルードする前に、マクロ GL_GLEXT_PROTOTYPES を定義する必要があります。関数を明示的に定義する必要はありません。

于 2016-01-07T02:26:02.090 に答える