【发布时间】:2012-01-14 06:19:17
【问题描述】:
我已经调整了本机活动 NDK 示例,以合并来自 hello-gl2 示例的 OpenGL 代码。我处理APP_CMD_INIT_WINDOW 消息,然后尝试创建着色器。着色器创建失败,我尝试通过 getShaderInfoiv 获取信息,但同样失败。
所以我的问题是 - 如何在纯原生 Android 应用程序中创建 OpenGL ES 2.0 着色器?
附:我知道如果您使用 Java GLSurfaceView 并且没有在正确的线程中创建它们,着色器创建可能会失败,但是查看本机活动示例,它似乎只有一个线程!
【问题讨论】:
-
很抱歉这个可能没用的问题,但是您是否以某种方式启动了 EGL?我认为 OpenGL 引擎根本没有准备好接收您的请求(这可以解释 getShaderInfoiv 调用的静默失败)。万一,是否加载了 OGL 2.0 库?
-
在没有原生 OpenGL 开发经验的情况下,我猜测以下原生活动示例会为您提供 OpenGL ES 1.0 上下文。在 hello-gl2 示例中,OpenGL ES 2.0 配置选择是在 Java 代码中完成的。
-
是的,这也是我关心的问题。我可能会尝试将代码从 Java 移植到 C++。
标签: android native opengl-es-2.0 shader