0

次のコマンドがあります。

    // Load the shaders and get a linked program object
    userData->programObject = esLoadProgram( vShaderStr, fShaderStr );
    ...
    // Generate the vertex data
    userData->numIndices = esGenCube( 1.0, &userData->vertices,NULL, NULL, &userData->indices );

プログラムは Android 4 用のネイティブ C++ であり、NativeActivity のみを使用します。したがって、プロジェクトには /src および Java クラスがありません。

NDK OGLES 2.0 に EGL_OPENGL_ES2_BIT として動作するバージョンの情報を入れ、Android.mk も -lGLESv2 に設定しました。ファイルには次のものも含まれています。

#include <GLES/gl.h>
#include <GLES/glext.h>
#include <EGL/egl.h>
#include <GLES2/gl2.h>

また、AndroidManifest は OGLES 2.0 を実行していると通知されました。

実行を求められると、プログラムは次のメッセージを表示します。

'esLoadProgram' was not declared in this scope
'esGenCube' was not declared in this scope

何らかの理由で、OGLES 2 に属するこれらのコマンドは表示されません。これはなぜですか?

すべてのコメントは高く評価されています。

4

1 に答える 1

1

esLoadProgramOpenGL ES または EGL の一部ではありesGenCubeません。それらは単なるヘルパー関数です (おそらくhttp://code.google.com/p/opengles-book-sa​​mples / から)

PS。GLES ヘッダーと GLES2 ヘッダーも混在させることはお勧めしません。GL ES 2.0 が必要な場合は、 from <GLES2/...>(not <GLES/...>)のみを含めます。

于 2012-02-28T20:11:43.443 に答える