include more low-level bindings
[clinton/guile-figl.git] / upstream-man-pages / man4 / glGetProgramBinary.xml
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">
5 <refmeta>
6 <refmetainfo>
7 <copyright>
8 <year>2010</year>
9 <holder>Khronos Group</holder>
10 </copyright>
11 </refmetainfo>
12 <refentrytitle>glGetProgramBinary</refentrytitle>
13 <manvolnum>3G</manvolnum>
14 </refmeta>
15 <refnamediv>
16 <refname>glGetProgramBinary</refname>
17 <refpurpose>return a binary representation of a program object's compiled and linked executable source</refpurpose>
18 </refnamediv>
19 <refsynopsisdiv><title>C Specification</title>
20 <funcsynopsis>
21 <funcprototype>
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>
28 </funcprototype>
29 </funcsynopsis>
30 </refsynopsisdiv>
31 <refsect1 id="parameters"><title>Parameters</title>
32 <variablelist>
33 <varlistentry>
34 <term><parameter>program</parameter></term>
35 <listitem>
36 <para>
37 Specifies the name of a program object whose binary representation to retrieve.
38 </para>
39 </listitem>
40 </varlistentry>
41 <varlistentry>
42 <term><parameter>bufSize</parameter></term>
43 <listitem>
44 <para>
45 Specifies the size of the buffer whose address is given by <parameter>binary</parameter>.
46 </para>
47 </listitem>
48 </varlistentry>
49 <varlistentry>
50 <term><parameter>length</parameter></term>
51 <listitem>
52 <para>
53 Specifies the address of a variable to receive the number of bytes written into <parameter>binary</parameter>.
54 </para>
55 </listitem>
56 </varlistentry>
57 <varlistentry>
58 <term><parameter>binaryFormat</parameter></term>
59 <listitem>
60 <para>
61 Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
62 </para>
63 </listitem>
64 </varlistentry>
65 <varlistentry>
66 <term><parameter>binary</parameter></term>
67 <listitem>
68 <para>
69 Specifies the address an array into which the GL will return <parameter>program</parameter>'s binary representation.
70 </para>
71 </listitem>
72 </varlistentry>
73 </variablelist>
74 </refsect1>
75 <refsect1 id="description"><title>Description</title>
76 <para>
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.
85 </para>
86 <para>
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.
93 </para>
94 </refsect1>
95 <refsect1 id="errors"><title>Errors</title>
96 <para>
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>.
99 </para>
100 <para>
101 <constant>GL_INVALID_OPERATION</constant> is generated if <constant>GL_LINK_STATUS</constant> for the
102 program object is false.
103 </para>
104 </refsect1>
105 <refsect1 id="associatedgets"><title>Associated Gets</title>
106 <para>
107 <citerefentry><refentrytitle>glGetProgram</refentrytitle></citerefentry> with argument <constant>GL_PROGRAM_BINARY_LENGTH</constant>
108 </para>
109 </refsect1>
110 <refsect1 id="seealso"><title>See Also</title>
111 <para>
112 <citerefentry><refentrytitle>glGetProgram</refentrytitle></citerefentry>,
113 <citerefentry><refentrytitle>glProgramBinary</refentrytitle></citerefentry>
114 </para>
115 </refsect1>
116 <refsect1 id="Copyright"><title>Copyright</title>
117 <para>
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>.
122 </para>
123 </refsect1>
124 </refentry>