1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
|
<!DOCTYPE refentry [ <!ENTITY % mathent SYSTEM "math.ent"> %mathent; ]>
<!-- Converted by db4-upgrade version 1.1 -->
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="glValidateProgram">
<info>
<copyright>
<year>2003-2005</year>
<holder>3Dlabs Inc. Ltd.</holder>
</copyright>
<copyright>
<year>2010-2014</year>
<holder>Khronos Group</holder>
</copyright>
</info>
<refmeta>
<refentrytitle>glValidateProgram</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glValidateProgram</refname>
<refpurpose>Validates a program object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glValidateProgram</function></funcdef>
<paramdef>GLuint <parameter>program</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 xml:id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>program</parameter></term>
<listitem>
<para>Specifies the handle of the program object to
be validated.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 xml:id="description"><title>Description</title>
<para><function>glValidateProgram</function> checks to see
whether the executables contained in
<parameter>program</parameter> can execute given the current
OpenGL state. The information generated by the validation
process will be stored in <parameter>program</parameter>'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.</para>
<para>The status of the validation operation will be stored as
part of the program object's state. This value will be set to
<constant>GL_TRUE</constant> if the validation succeeded, and
<constant>GL_FALSE</constant> otherwise. It can be queried by
calling
<citerefentry><refentrytitle>glGetProgram</refentrytitle></citerefentry>
with arguments <parameter>program</parameter> and
<constant>GL_VALIDATE_STATUS</constant>. If validation is
successful, <parameter>program</parameter> is guaranteed to
execute given the current state. Otherwise,
<parameter>program</parameter> is guaranteed to not execute.</para>
<para>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.</para>
</refsect1>
<refsect1 xml:id="notes"><title>Notes</title>
<para>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
<constant>GL_INVALID_OPERATION</constant> will be generated by
any command that triggers the rendering of geometry if:</para>
<itemizedlist>
<listitem>
<para>any two active samplers in the current program
object are of different types, but refer to the same
texture image unit,</para>
</listitem>
<listitem>
<para>the number of active samplers in the program exceeds the maximum
number of texture image units allowed.</para>
</listitem>
</itemizedlist>
<para>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
<function>glValidateProgram</function> to detect these issues
during application development.</para>
</refsect1>
<refsect1 xml:id="errors"><title>Errors</title>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>program</parameter> is not a value generated by
OpenGL.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>program</parameter> is not a program object.</para>
</refsect1>
<refsect1 xml:id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGetProgram</refentrytitle></citerefentry>
with arguments <parameter>program</parameter> and
<constant>GL_VALIDATE_STATUS</constant></para>
<para><citerefentry><refentrytitle>glGetProgramInfoLog</refentrytitle></citerefentry>
with argument <parameter>program</parameter></para>
<para><citerefentry><refentrytitle>glIsProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 xml:id="versions"><title>Version Support</title>
<informaltable>
<tgroup cols="13" align="left">
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="apifunchead.xml" xpointer="xpointer(/*/*)"/>
<tbody>
<row>
<entry><function>glValidateProgram</function></entry>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="apiversion.xml" xpointer="xpointer(/*/*[@role='20']/*)"/>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 xml:id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glUseProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 xml:id="Copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"/> 2003-2005 3Dlabs Inc. Ltd.
Copyright <trademark class="copyright"/> 2010-2014 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://opencontent.org/openpub/">http://opencontent.org/openpub/</link>.
</para>
</refsect1>
</refentry>
|