Tek*_*ebo 8 opengl-es android-2.2-froyo
我正在从OpenGl ES2.0编程指南修改2d纹理示例的android版本,以更改片段着色器.这是用纯Java编写的,不使用NDK.
vanilla示例在我的手机上运行得很好,但是当我更改着色器代码时,它不再有效.这是因为我的修改后的着色器无法编译(显然),但由于glGetShaderInfoLog返回一个空字符串,因此无法找到问题的原因.
我已经对这个问题进行了搜索,显然,截至7月22日,这是一个众所周知的问题,但我想知道有什么方法可以绕过它.我找到的一篇文章称他们已经为该功能编写了一个NDK包装器,但对于Android开发新手我真的不知道如何做到这一点.
你遇到了一个错误.我通过使用旧的GL ES 2.0绑定来获得一个正常运行的glGetShaderInfoLog.像这样:
import com.badlogic.gdx.backends.android.AndroidGL20;
...
AndroidGL20 gl2 = new AndroidGL20();
Log.e(TAG, gl2.glGetShaderInfoLog(shader));
Run Code Online (Sandbox Code Playgroud)
我仍然使用标准GLES20包装器库来完成其他任务,所以这很容易放入我的代码库.这两个包装纸显然可以毫无问题地共存.