使用c ++(NDK)编程opengl es 2.0时,我遇到了奇怪的兼容性问题。 当我在Nexus5上运行代码并且它工作正常时,当我创建着色器程序时,glCreateProgram返回正确的ID(前3个程序为3,6和9)。
但是,当我在LG7上运行相同的代码时,glCreateProgram返回相同的数字,加上(7 * x * 10000),使第一个着色器210003,420006和630009.这样,程序不起作用(着色器不起作用,但我在着色器编译时没有错误)。
我该怎么办?
答案 0 :(得分:0)
glCreateProgram
返回的标识符是实现定义的。您不应该依赖于返回的任何特定值。来自doc:
glCreateProgram
创建一个空的程序对象并返回一个非零值,通过该值可以引用它。
因此,跟踪返回的值并在后续代码中使用它来引用着色器。