glCreateProgram在LG7上返回奇怪的ID?

时间:2014-10-20 09:26:18

标签: c++ opengl-es android-ndk

使用c ++(NDK)编程opengl es 2.0时,我遇到了奇怪的兼容性问题。 当我在Nexus5上运行代码并且它工作正常时,当我创建着色器程序时,glCreateProgram返回正确的ID(前3个程序为3,6和9)。

但是,当我在LG7上运行相同的代码时,glCreateProgram返回相同的数字,加上(7 * x * 10000),使第一个着色器210003,420006和630009.这样,程序不起作用(着色器不起作用,但我在着色器编译时没有错误)。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

glCreateProgram返回的标识符是实现定义的。您不应该依赖于返回的任何特定值。来自doc

  

glCreateProgram创建一个空的程序对象并返回一个非零值,通过该值可以引用它。

因此,跟踪返回的值并在后续代码中使用它来引用着色器。