1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <!DOCTYPE book PUBLIC
"-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
3 "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
4 <refentry id=
"glGetProgramBinary">
9 <holder>Khronos Group
</holder>
12 <refentrytitle>glGetProgramBinary
</refentrytitle>
13 <manvolnum>3G
</manvolnum>
16 <refname>glGetProgramBinary
</refname>
17 <refpurpose>return a binary representation of a program object's compiled and linked executable source
</refpurpose>
19 <refsynopsisdiv><title>C Specification
</title>
22 <funcdef>void
<function>glGetProgramBinary
</function></funcdef>
23 <paramdef>GLuint
<parameter>program
</parameter></paramdef>
24 <paramdef>GLsizei
<parameter>bufsize
</parameter></paramdef>
25 <paramdef>GLsizei *
<parameter>length
</parameter></paramdef>
26 <paramdef>GLenum *
<parameter>binaryFormat
</parameter></paramdef>
27 <paramdef>void *
<parameter>binary
</parameter></paramdef>
31 <refsect1 id=
"parameters"><title>Parameters
</title>
34 <term><parameter>program
</parameter></term>
37 Specifies the name of a program object whose binary representation to retrieve.
42 <term><parameter>bufSize
</parameter></term>
45 Specifies the size of the buffer whose address is given by
<parameter>binary
</parameter>.
50 <term><parameter>length
</parameter></term>
53 Specifies the address of a variable to receive the number of bytes written into
<parameter>binary
</parameter>.
58 <term><parameter>binaryFormat
</parameter></term>
61 Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
66 <term><parameter>binary
</parameter></term>
69 Specifies the address an array into which the GL will return
<parameter>program
</parameter>'s binary representation.
75 <refsect1 id=
"description"><title>Description
</title>
77 <function>glGetProgramBinary
</function> returns a binary representation of the compiled
78 and linked executable for
<parameter>program
</parameter> into the array of bytes whose
79 address is specified in
<parameter>binary
</parameter>. The maximum number of bytes that
80 may be written into
<parameter>binary
</parameter> is specified by
<parameter>bufSize
</parameter>.
81 If the program binary is greater in size than
<parameter>bufSize
</parameter> bytes,
82 then an error is generated, otherwise the actual number of bytes written into
<parameter>binary
</parameter>
83 is returned in the variable whose address is given by
<parameter>length
</parameter>. If
84 <parameter>length
</parameter> is
<constant>NULL
</constant>, then no length is returned.
87 The format of the program binary written into
<parameter>binary
</parameter> is returned in
88 the variable whose address is given by
<parameter>binaryFormat
</parameter>, and may be implementation dependent. The binary produced
89 by the GL may subsequently be returned to the GL by calling
<citerefentry><refentrytitle>glProgramBinary
</refentrytitle></citerefentry>,
90 with
<parameter>binaryFormat
</parameter> and
<parameter>length
</parameter> set to the values
91 returned by
<function>glGetProgramBinary
</function>, and passing the returned binary data
92 in the
<parameter>binary
</parameter> parameter.
95 <refsect1 id=
"errors"><title>Errors
</title>
97 <constant>GL_INVALID_OPERATION
</constant> is generated if
<parameter>bufSize
</parameter> is less than
98 the size of
<constant>GL_PROGRAM_BINARY_LENGTH
</constant> for
<parameter>program
</parameter>.
101 <constant>GL_INVALID_OPERATION
</constant> is generated if
<constant>GL_LINK_STATUS
</constant> for the
102 program object is false.
105 <refsect1 id=
"associatedgets"><title>Associated Gets
</title>
107 <citerefentry><refentrytitle>glGetProgram
</refentrytitle></citerefentry> with argument
<constant>GL_PROGRAM_BINARY_LENGTH
</constant>
110 <refsect1 id=
"seealso"><title>See Also
</title>
112 <citerefentry><refentrytitle>glGetProgram
</refentrytitle></citerefentry>,
113 <citerefentry><refentrytitle>glProgramBinary
</refentrytitle></citerefentry>
116 <refsect1 id=
"Copyright"><title>Copyright
</title>
118 Copyright
<trademark class=
"copyright"></trademark> 2010 Khronos Group.
119 This material may be distributed subject to the terms and conditions set forth in
120 the Open Publication License, v
1.0,
8 June
1999.
121 <ulink url=
"http://opencontent.org/openpub/">http://opencontent.org/openpub/
</ulink>.