opengl-es - glGetShaderInfoLog 返回空字符串 (android)

标签 opengl-es android-2.2-froyo

我正在修改 OpenGl ES2.0 编程指南中 2d 纹理示例的 android 版本以更改片段着色器。这是用纯 Java 编写的,不使用 NDK。

vanilla 示例在我的手机上运行良好,但是当我更改着色器代码时,它不再起作用。这是因为我修改后的着色器没有编译(显然),但我找不到问题的原因,因为 glGetShaderInfoLog 返回一个空字符串。

我已经对这个问题进行了搜索,显然,截至 7 月 22 日,这是一个已知问题,但我想知道有什么方法可以解决它。我发现的一篇帖子说他们已经为该函数编写了 NDK 包装器,但作为 Android 开发的新手,我真的不知道如何做到这一点。

最佳答案

你患了 a bug .我通过使用 old GL ES 2.0 bindings 解决了问题获得一个正常运行的 glGetShaderInfoLog。像这样:

import com.badlogic.gdx.backends.android.AndroidGL20;
...
AndroidGL20 gl2 = new AndroidGL20();
Log.e(TAG, gl2.glGetShaderInfoLog(shader));

我仍然将标准的 GLES20 包装库用于其他所有内容,因此很容易将其放入我的代码库中。这两个包装器显然可以共存而没有任何问题。

关于opengl-es - glGetShaderInfoLog 返回空字符串 (android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4588800/

相关文章:

android - 在 api 级别 8 中替代 setAlpha

android - android froyo(api 8)上的底部操作栏

java - Android Widget - 两行?

android - 没有 SQL 的 ContentProvider

iphone - Cocos2d - 将 GLImageProcessing 效果应用于 CCSprite

Android OpenGL 以触摸移动的方向旋转立方体

android - 纹理小部件渲染 OpenGL 示例

iphone - 为 AR 应用程序创建 3D 模型

iPhone 和 iPad : Is an OpenGL ES Universal App a pain to write for multiple devices?

android - 将受信任的 SSL 证书添加到为 API 8 设计的应用程序