我正在使用 JNI 和 NDK 构建一个 OpenGL 项目,在我的手机(galaxy nexus)上一切正常,但我试图在几台平板电脑(华为和宏基)上启动这个应用程序并发现一个奇怪的行为:
在我的片段着色器中有一个值:
uniform float current;
...
gl_FragColor = (...,current);
在我的代码中,我这样做:
g_currentAreaLoc = glGetUniformLocation(g_nGLESProgram, "current" );
...
glUseProgram(g_nGLESProgram);
glUniform1f(g_currentAreaLoc, area);
当我在手机上尝试此代码时,一切都很完美,但在平板电脑上却没有预期的结果。
但是,如果我有例如0.0而不是当前的代码 -这台平板电脑上一切正常。
我不明白为什么这个变量在手机上有效,而在平板电脑上存在问题(可能取决于操作系统版本)。