2012-02-28 4 views
0

宣言されていない:AndroidのネイティブOGLES2:esLoadProgramは、私は、コマンドを次のようしている

// 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); 

プログラムは、NativeActivityを使用して、Androidの4のためのネイティブC++です。したがって、プロジェクトには/ 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を実行していることが通知されました。 OGLES 2に属し、これらのコマンドが表示されていないいくつかの理由について

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

実行するように求め

は、プログラムは以下のメッセージを表示します。これは何故でしょうか?

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

答えて

1

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

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

+0

ありがとうございました。今あなたがそれを言及した後、私はその機能をオンラインでプロジェクトフォルダに含めることができ、プログラムをコンパイルできるようになりました。 - http://opengles-book-sa​​mples.googlecode.com/svn-history/r18/trunk/iPhone/Common/esUtil.h。 – ThreaderSlash

関連する問題