名称
glValidateProgram - 验证程序对象
C规范
void glValidateProgram(GLuint program);
参数
program
指定要验证的程序对象的句柄。
描述
glValidateProgram检查程序中包含的可执行文件是否可以在当前的OpenGL状态下执行。验证过程生成的信息将存储在程序的信息日志中。验证信息可以由空字符串组成,或者它可以是包含有关当前程序对象如何与当前OpenGL状态的其余部分交互的信息的字符串。这为OpenGL实现者提供了一种方式,可以传达有关当前程序效率低下,次优,无法执行等原因的更多信息。
验证操作的状态将存储为程序对象状态的一部分。如果验证成功,则此值将设置为GL_TRUE,否则将设置为GL_FALSE。可以通过使用参数program和GL_VALIDATE_STATUS调用glGetProgramiv来查询它。如果验证成功,则保证在给定当前状态的情况下执行程序。否则,程序将保证不执行。
此功能通常仅在应用程序开发期间有用。存储在信息日志中的信息字符串完全取决于实现;因此,应用程序不应期望不同的OpenGL实现生成相同的信息字符串。
注意
如果当前程序对象中的任何两个活动采样器具有不同类型,但是引用相同的纹理图像单元,则glDrawArrays或glDrawElements将生成错误GL_INVALID_OPERATION。
应用程序在发出渲染命令时捕获这些错误可能很困难或导致性能下降(这是一个很耗时的操作,所以最好只在调试的时候调用)。因此,建议应用程序调用glValidateProgram以在应用程序开发期间检测这些问题。
错误
GL_INVALID_VALUE:program不是OpenGL生成的值
GL_INVALID_OPERATION:program不是程序对象
相关Gets
glGetProgramiv 参数GL_VALIDATE_STATUS
glGetProgramInfoLog 参数program
另见
版权
https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glValidateProgram.xml
https://blog.csdn.net/flycatdeng
Copyright © 1991-2006 Silicon Graphics, Inc.本文档的许可是根据SGI Free Software B License.详见http://oss.sgi.com/projects/FreeB/.