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 类。

我将有关以 EGL_OPENGL_ES2_BIT 运行的版本的信息放入 NDK OGLES 2.0,并且 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

esLoadProgram并且esGenCube不是 OpenGL ES 或 EGL 的一部分。它们只是一个辅助函数(可能来自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 回答