glValidateProgram — Validates a program object
void glValidateProgram( | GLuint | program); | 
glValidateProgram checks to see
	whether the executables contained in
	program can execute given the current
	OpenGL state. The information generated by the validation
	process will be stored in program's
	information log. The validation information may consist of an
	empty string, or it may be a string containing information about
	how the current program object interacts with the rest of
	current OpenGL state. This provides a way for OpenGL
	implementers to convey more information about why the current
	program is inefficient, suboptimal, failing to execute, and so
	on.
The status of the validation operation will be stored as
	part of the program object's state. This value will be set to
	GL_TRUE if the validation succeeded, and
	GL_FALSE otherwise. It can be queried by
	calling
	glGetProgram
	with arguments program and
	GL_VALIDATE_STATUS. If validation is
	successful, program is guaranteed to
	execute given the current state. Otherwise,
	program is guaranteed to not execute.
This function is typically useful only during application development. The informational string stored in the information log is completely implementation dependent; therefore, an application should not expect different OpenGL implementations to produce identical information strings.
glValidateProgram is available only
	if the GL version is 2.0 or greater.
This function mimics the validation operation that OpenGL
	implementations must perform when rendering commands are issued
	while programmable shaders are part of current state. The error
	GL_INVALID_OPERATION will be generated by
	glBegin,
	glRasterPos,
	or any command that performs an implicit call to
	glBegin
	if:
any two active samplers in the current program object are of different types, but refer to the same texture image unit,
any active sampler in the current program object refers to a texture image unit where fixed-function fragment processing accesses a texture target that does not match the sampler type, or
the sum of the number of active samplers in the program and the number of texture image units enabled for fixed-function fragment processing exceeds the combined limit on the total number of texture image units allowed.
It may be difficult or cause a performance degradation for
	applications to catch these errors when rendering commands are
	issued. Therefore, applications are advised to make calls to
	glValidateProgram to detect these issues
	during application development.
GL_INVALID_VALUE is generated if
	program is not a value generated by
	OpenGL.
GL_INVALID_OPERATION is generated if
	program is not a program object.
GL_INVALID_OPERATION is generated if
	glValidateProgram is executed between the
	execution of
	glBegin
	and the corresponding execution of
	glEnd.
glGetProgram
	with arguments program and
	GL_VALIDATE_STATUS
glGetProgramInfoLog
	with argument program
Copyright © 2003-2005 3Dlabs Inc. Ltd. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.