0

假设我有一些代码glUseProgram(programId)在不同的点调用,但有时最终会调用glUseProgram(1)两次,使用相同的参数(即 program1 被要求两次)。

我应该消除虚假调用glUseProgram还是glUseProgram已经在内部执行了该检查?

4

2 回答 2

1

正如OpenGL ES Programming Guide for iOS中所建议的,您应该防止对glEnable状态更改的冗余调用。因此可以假设这同样适用于glUseProgram. 即使这个假设不正确,如果可能的话,按照程序和统一设置对绘图调用进行排序仍然是一个好主意。

于 2012-12-04T18:54:44.633 回答
0

在我的电脑上,如果我使用gluseprogram(PROGRAMID)相同的 ID 两次,而没有在两者之间进行设置,则显示驱动程序会崩溃。所以我不会。

(编辑)对不起,那不是真的。这实际上与 SFML 窗口环境有关。在 OpenGL 函数能够“清理房屋”之前,设置错误,因此关闭了窗口(以及 OpenGL 环境)。

于 2012-12-11T01:02:44.837 回答