glCreateProgram在LG7上返回奇怪的id

glCreateProgram returns weird ids on LG7?

本文关键字:id 返回 LG7 glCreateProgram      更新时间:2023-10-16

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

但是,当我在LG7上运行相同的代码时,glCreateProgram会返回相同的数字,并加上(7*x*10000),从而生成第一个着色器210003、420006和630009。这样,程序就不起作用了(着色器不起作用,但我在着色器编译方面没有得到任何错误)。

我能做什么?

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

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

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