rename upstream-man-pages to upstream-doc
[clinton/guile-figl.git] / upstream-doc / man2 / xhtml / glGetTexImage.xml
CommitLineData
7faf1d71
AW
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
2<!-- saved from url=(0013)about:internet -->
3<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" pref:renderer="mathplayer-dl"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>glGetTexImage</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /></head><body><div class="refentry" lang="en" xml:lang="en"><a id="glGetTexImage"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>glGetTexImage — return a texture image</p></div><div class="refsynopsisdiv"><h2>C Specification</h2><div class="funcsynopsis"><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0"><tr><td><code class="funcdef">void <b class="fsfunc">glGetTexImage</b>(</code></td><td>GLenum  </td><td><var class="pdparam">target</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">level</var>, </td></tr><tr><td> </td><td>GLenum  </td><td><var class="pdparam">format</var>, </td></tr><tr><td> </td><td>GLenum  </td><td><var class="pdparam">type</var>, </td></tr><tr><td> </td><td>GLvoid *  </td><td><var class="pdparam">img</var><code>)</code>;</td></tr></table></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="parameters"></a><h2>Parameters</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>target</code></em></span></dt><dd><p>
4 Specifies which texture is to be obtained.
5 <code class="constant">GL_TEXTURE_1D</code>, <code class="constant">GL_TEXTURE_2D</code>, <code class="constant">GL_TEXTURE_3D</code>,
6 <code class="constant">GL_TEXTURE_CUBE_MAP_POSITIVE_X</code>,
7 <code class="constant">GL_TEXTURE_CUBE_MAP_NEGATIVE_X</code>,
8 <code class="constant">GL_TEXTURE_CUBE_MAP_POSITIVE_Y</code>,
9 <code class="constant">GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</code>,
10 <code class="constant">GL_TEXTURE_CUBE_MAP_POSITIVE_Z</code>, and
11 <code class="constant">GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</code>
12 are accepted.
13 </p></dd><dt><span class="term"><em class="parameter"><code>level</code></em></span></dt><dd><p>
14 Specifies the level-of-detail number of the desired image.
15 Level 0 is the base image level.
16 Level
17 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mml:mi mathvariant="italic">n</mml:mi></mml:math>
18 is the
19 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mml:mi mathvariant="italic">n</mml:mi></mml:math>th
20 mipmap reduction image.
21 </p></dd><dt><span class="term"><em class="parameter"><code>format</code></em></span></dt><dd><p>
22 Specifies a pixel format for the returned data.
23 The supported formats are
24 <code class="constant">GL_RED</code>,
25 <code class="constant">GL_GREEN</code>,
26 <code class="constant">GL_BLUE</code>,
27 <code class="constant">GL_ALPHA</code>,
28 <code class="constant">GL_RGB</code>,
29 <code class="constant">GL_BGR</code>,
30 <code class="constant">GL_RGBA</code>,
31 <code class="constant">GL_BGRA</code>,
32 <code class="constant">GL_LUMINANCE</code>, and
33 <code class="constant">GL_LUMINANCE_ALPHA</code>.
34 </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
35 Specifies a pixel type for the returned data.
36 The supported types are
37 <code class="constant">GL_UNSIGNED_BYTE</code>,
38 <code class="constant">GL_BYTE</code>,
39 <code class="constant">GL_UNSIGNED_SHORT</code>,
40 <code class="constant">GL_SHORT</code>,
41 <code class="constant">GL_UNSIGNED_INT</code>,
42 <code class="constant">GL_INT</code>,
43 <code class="constant">GL_FLOAT</code>,
44 <code class="constant">GL_UNSIGNED_BYTE_3_3_2</code>,
45 <code class="constant">GL_UNSIGNED_BYTE_2_3_3_REV</code>,
46 <code class="constant">GL_UNSIGNED_SHORT_5_6_5</code>,
47 <code class="constant">GL_UNSIGNED_SHORT_5_6_5_REV</code>,
48 <code class="constant">GL_UNSIGNED_SHORT_4_4_4_4</code>,
49 <code class="constant">GL_UNSIGNED_SHORT_4_4_4_4_REV</code>,
50 <code class="constant">GL_UNSIGNED_SHORT_5_5_5_1</code>,
51 <code class="constant">GL_UNSIGNED_SHORT_1_5_5_5_REV</code>,
52 <code class="constant">GL_UNSIGNED_INT_8_8_8_8</code>,
53 <code class="constant">GL_UNSIGNED_INT_8_8_8_8_REV</code>,
54 <code class="constant">GL_UNSIGNED_INT_10_10_10_2</code>, and
55 <code class="constant">GL_UNSIGNED_INT_2_10_10_10_REV</code>.
56 </p></dd><dt><span class="term"><em class="parameter"><code>img</code></em></span></dt><dd><p>
57 Returns the texture image.
58 Should be a pointer to an array of the type specified by <em class="parameter"><code>type</code></em>.
59 </p></dd></dl></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="description"></a><h2>Description</h2><p>
60 <code class="function">glGetTexImage</code> returns a texture image into <em class="parameter"><code>img</code></em>.
61 <em class="parameter"><code>target</code></em> specifies whether the desired texture image is one specified by
62 <a class="citerefentry" href="glTexImage1D.xml"><span class="citerefentry"><span class="refentrytitle">glTexImage1D</span></span></a> (<code class="constant">GL_TEXTURE_1D</code>),
63 <a class="citerefentry" href="glTexImage2D.xml"><span class="citerefentry"><span class="refentrytitle">glTexImage2D</span></span></a> (<code class="constant">GL_TEXTURE_2D</code> or any of
64 <code class="constant">GL_TEXTURE_CUBE_MAP_*</code>),
65 or
66 <a class="citerefentry" href="glTexImage3D.xml"><span class="citerefentry"><span class="refentrytitle">glTexImage3D</span></span></a> (<code class="constant">GL_TEXTURE_3D</code>).
67 <em class="parameter"><code>level</code></em> specifies the level-of-detail number of the desired image.
68 <em class="parameter"><code>format</code></em> and <em class="parameter"><code>type</code></em> specify the format and type of the desired image array.
69 See the reference pages <a class="citerefentry" href="glTexImage1D.xml"><span class="citerefentry"><span class="refentrytitle">glTexImage1D</span></span></a> and <a class="citerefentry" href="glDrawPixels.xml"><span class="citerefentry"><span class="refentrytitle">glDrawPixels</span></span></a>
70 for a description of the acceptable values for the <em class="parameter"><code>format</code></em> and <em class="parameter"><code>type</code></em>
71 parameters, respectively.
72 </p><p>
73 If a non-zero named buffer object is bound to the <code class="constant">GL_PIXEL_PACK_BUFFER</code> target
74 (see <a class="citerefentry" href="glBindBuffer.xml"><span class="citerefentry"><span class="refentrytitle">glBindBuffer</span></span></a>) while a texture image is
75 requested, <em class="parameter"><code>img</code></em> is treated as a byte offset into the buffer object's data store.
76 </p><p>
77 To understand the operation of <code class="function">glGetTexImage</code>, consider the selected internal
78 four-component texture image to be an RGBA color buffer the size of the image.
79 The semantics of <code class="function">glGetTexImage</code> are then identical to those of <a class="citerefentry" href="glReadPixels.xml"><span class="citerefentry"><span class="refentrytitle">glReadPixels</span></span></a>,
80 with the exception that no pixel transfer operations are performed,
81 when called with the same <em class="parameter"><code>format</code></em> and <em class="parameter"><code>type</code></em>,
82 with <span class="emphasis"><em>x</em></span> and <span class="emphasis"><em>y</em></span> set to 0,
83 <span class="emphasis"><em>width</em></span> set to the width of the texture image
84 (including border if one was specified),
85 and <span class="emphasis"><em>height</em></span> set to 1 for 1D images,
86 or to the height of the texture image
87 (including border if one was specified)
88 for 2D images.
89 Because the internal texture image is an RGBA image,
90 pixel formats <code class="constant">GL_COLOR_INDEX</code>,
91 <code class="constant">GL_STENCIL_INDEX</code>,
92 and <code class="constant">GL_DEPTH_COMPONENT</code> are not accepted,
93 and pixel type <code class="constant">GL_BITMAP</code> is not accepted.
94 </p><p>
95 If the selected texture image does not contain four components,
96 the following mappings are applied.
97 Single-component textures are treated as RGBA buffers with red set
98 to the single-component value,
99 green set to 0, blue set to 0, and alpha set to 1.
100 Two-component textures are treated as RGBA buffers with red set to
101 the value of component zero,
102 alpha set to the value of component one,
103 and green and blue set to 0.
104 Finally,
105 three-component textures are treated as RGBA buffers with red set to
106 component zero,
107 green set to component one,
108 blue set to component two,
109 and alpha set to 1.
110 </p><p>
111 To determine the required size of <em class="parameter"><code>img</code></em>,
112 use <a class="citerefentry" href="glGetTexLevelParameter.xml"><span class="citerefentry"><span class="refentrytitle">glGetTexLevelParameter</span></span></a> to determine the dimensions of the
113 internal texture image,
114 then scale the required number of pixels by the storage required for
115 each pixel,
116 based on <em class="parameter"><code>format</code></em> and <em class="parameter"><code>type</code></em>.
117 Be sure to take the pixel storage parameters into account,
118 especially <code class="constant">GL_PACK_ALIGNMENT</code>.
119 </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="notes"></a><h2>Notes</h2><p>
120 If an error is generated,
121 no change is made to the contents of <em class="parameter"><code>img</code></em>.
122 </p><p>
123 The types <code class="constant">GL_UNSIGNED_BYTE_3_3_2</code>,
124 <code class="constant">GL_UNSIGNED_BYTE_2_3_3_REV</code>,
125 <code class="constant">GL_UNSIGNED_SHORT_5_6_5</code>,
126 <code class="constant">GL_UNSIGNED_SHORT_5_6_5_REV</code>,
127 <code class="constant">GL_UNSIGNED_SHORT_4_4_4_4</code>,
128 <code class="constant">GL_UNSIGNED_SHORT_4_4_4_4_REV</code>,
129 <code class="constant">GL_UNSIGNED_SHORT_5_5_5_1</code>,
130 <code class="constant">GL_UNSIGNED_SHORT_1_5_5_5_REV</code>,
131 <code class="constant">GL_UNSIGNED_INT_8_8_8_8</code>,
132 <code class="constant">GL_UNSIGNED_INT_8_8_8_8_REV</code>,
133 <code class="constant">GL_UNSIGNED_INT_10_10_10_2</code>,
134 <code class="constant">GL_UNSIGNED_INT_2_10_10_10_REV</code>,
135 and the formats
136 <code class="constant">GL_BGR</code>, and <code class="constant">GL_BGRA</code> are available only if the GL version is
137 1.2 or greater.
138 </p><p>
139 For OpenGL versions 1.3 and greater, or when the <code class="code">ARB_multitexture</code> extension is supported, <code class="function">glGetTexImage</code> returns
140 the texture image for the active texture unit.
141 </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="errors"></a><h2>Errors</h2><p>
142 <code class="constant">GL_INVALID_ENUM</code> is generated if <em class="parameter"><code>target</code></em>, <em class="parameter"><code>format</code></em>, or <em class="parameter"><code>type</code></em> is not
143 an accepted value.
144 </p><p>
145 <code class="constant">GL_INVALID_VALUE</code> is generated if <em class="parameter"><code>level</code></em> is less than 0.
146 </p><p>
147 <code class="constant">GL_INVALID_VALUE</code> may be generated if <em class="parameter"><code>level</code></em> is greater
148 than
149 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
150
151 <mml:mrow>
152 <mml:msub><mml:mi mathvariant="italic">log</mml:mi>
153 <mml:mn>2</mml:mn>
154 </mml:msub>
155 <mml:mo>⁡</mml:mo>
156 <mml:mfenced open="(" close=")">
157 <mml:mi mathvariant="italic">max</mml:mi>
158 </mml:mfenced>
159 </mml:mrow>
160 </mml:math>,
161 where
162 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mml:mi mathvariant="italic">max</mml:mi></mml:math>
163 is the returned value of <code class="constant">GL_MAX_TEXTURE_SIZE</code>.
164 </p><p>
165 <code class="constant">GL_INVALID_OPERATION</code> is returned if <em class="parameter"><code>type</code></em> is one of
166 <code class="constant">GL_UNSIGNED_BYTE_3_3_2</code>,
167 <code class="constant">GL_UNSIGNED_BYTE_2_3_3_REV</code>,
168 <code class="constant">GL_UNSIGNED_SHORT_5_6_5</code>, or
169 <code class="constant">GL_UNSIGNED_SHORT_5_6_5_REV</code> and <em class="parameter"><code>format</code></em> is not <code class="constant">GL_RGB</code>.
170 </p><p>
171 <code class="constant">GL_INVALID_OPERATION</code> is returned if <em class="parameter"><code>type</code></em> is one of
172 <code class="constant">GL_UNSIGNED_SHORT_4_4_4_4</code>,
173 <code class="constant">GL_UNSIGNED_SHORT_4_4_4_4_REV</code>,
174 <code class="constant">GL_UNSIGNED_SHORT_5_5_5_1</code>,
175 <code class="constant">GL_UNSIGNED_SHORT_1_5_5_5_REV</code>,
176 <code class="constant">GL_UNSIGNED_INT_8_8_8_8</code>,
177 <code class="constant">GL_UNSIGNED_INT_8_8_8_8_REV</code>,
178 <code class="constant">GL_UNSIGNED_INT_10_10_10_2</code>, or
179 <code class="constant">GL_UNSIGNED_INT_2_10_10_10_REV</code>, and <em class="parameter"><code>format</code></em> is neither <code class="constant">GL_RGBA</code>
180 or <code class="constant">GL_BGRA</code>.
181 </p><p>
182 <code class="constant">GL_INVALID_OPERATION</code> is generated if a non-zero buffer object name is bound to the
183 <code class="constant">GL_PIXEL_PACK_BUFFER</code> target and the buffer object's data store is currently mapped.
184 </p><p>
185 <code class="constant">GL_INVALID_OPERATION</code> is generated if a non-zero buffer object name is bound to the
186 <code class="constant">GL_PIXEL_PACK_BUFFER</code> target and the data would be packed to the buffer
187 object such that the memory writes required would exceed the data store size.
188 </p><p>
189 <code class="constant">GL_INVALID_OPERATION</code> is generated if a non-zero buffer object name is bound to the
190 <code class="constant">GL_PIXEL_PACK_BUFFER</code> target and <em class="parameter"><code>img</code></em> is not evenly divisible
191 into the number of bytes needed to store in memory a datum indicated by <em class="parameter"><code>type</code></em>.
192 </p><p>
193 <code class="constant">GL_INVALID_OPERATION</code> is generated if <code class="function">glGetTexImage</code>
194 is executed between the execution of <a class="citerefentry" href="glBegin.xml"><span class="citerefentry"><span class="refentrytitle">glBegin</span></span></a>
195 and the corresponding execution of <a class="citerefentry" href="glEnd.xml"><span class="citerefentry"><span class="refentrytitle">glEnd</span></span></a>.
196 </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="associatedgets"></a><h2>Associated Gets</h2><p>
197 <a class="citerefentry" href="glGetTexLevelParameter.xml"><span class="citerefentry"><span class="refentrytitle">glGetTexLevelParameter</span></span></a> with argument <code class="constant">GL_TEXTURE_WIDTH</code>
198 </p><p>
199 <a class="citerefentry" href="glGetTexLevelParameter.xml"><span class="citerefentry"><span class="refentrytitle">glGetTexLevelParameter</span></span></a> with argument <code class="constant">GL_TEXTURE_HEIGHT</code>
200 </p><p>
201 <a class="citerefentry" href="glGetTexLevelParameter.xml"><span class="citerefentry"><span class="refentrytitle">glGetTexLevelParameter</span></span></a> with argument <code class="constant">GL_TEXTURE_BORDER</code>
202 </p><p>
203 <a class="citerefentry" href="glGetTexLevelParameter.xml"><span class="citerefentry"><span class="refentrytitle">glGetTexLevelParameter</span></span></a> with argument <code class="constant">GL_TEXTURE_INTERNAL_FORMAT</code>
204 </p><p>
205 <a class="citerefentry" href="glGet.xml"><span class="citerefentry"><span class="refentrytitle">glGet</span></span></a> with arguments <code class="constant">GL_PACK_ALIGNMENT</code> and others
206 </p><p>
207 <a class="citerefentry" href="glGet.xml"><span class="citerefentry"><span class="refentrytitle">glGet</span></span></a> with argument <code class="constant">GL_PIXEL_PACK_BUFFER_BINDING</code>
208 </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="seealso"></a><h2>See Also</h2><p>
209 <a class="citerefentry" href="glActiveTexture.xml"><span class="citerefentry"><span class="refentrytitle">glActiveTexture</span></span></a>,
210 <a class="citerefentry" href="glDrawPixels.xml"><span class="citerefentry"><span class="refentrytitle">glDrawPixels</span></span></a>,
211 <a class="citerefentry" href="glReadPixels.xml"><span class="citerefentry"><span class="refentrytitle">glReadPixels</span></span></a>,
212 <a class="citerefentry" href="glTexEnv.xml"><span class="citerefentry"><span class="refentrytitle">glTexEnv</span></span></a>,
213 <a class="citerefentry" href="glTexGen.xml"><span class="citerefentry"><span class="refentrytitle">glTexGen</span></span></a>,
214 <a class="citerefentry" href="glTexImage1D.xml"><span class="citerefentry"><span class="refentrytitle">glTexImage1D</span></span></a>,
215 <a class="citerefentry" href="glTexImage2D.xml"><span class="citerefentry"><span class="refentrytitle">glTexImage2D</span></span></a>,
216 <a class="citerefentry" href="glTexImage3D.xml"><span class="citerefentry"><span class="refentrytitle">glTexImage3D</span></span></a>,
217 <a class="citerefentry" href="glTexSubImage1D.xml"><span class="citerefentry"><span class="refentrytitle">glTexSubImage1D</span></span></a>,
218 <a class="citerefentry" href="glTexSubImage2D.xml"><span class="citerefentry"><span class="refentrytitle">glTexSubImage2D</span></span></a>,
219 <a class="citerefentry" href="glTexSubImage3D.xml"><span class="citerefentry"><span class="refentrytitle">glTexSubImage3D</span></span></a>,
220 <a class="citerefentry" href="glTexParameter.xml"><span class="citerefentry"><span class="refentrytitle">glTexParameter</span></span></a>
221 </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="Copyright"></a><h2>Copyright</h2><p>
222 Copyright <span class="trademark"></span>© 1991-2006
223 Silicon Graphics, Inc. This document is licensed under the SGI
224 Free Software B License. For details, see
225 <a class="ulink" href="http://oss.sgi.com/projects/FreeB/" target="_top">http://oss.sgi.com/projects/FreeB/</a>.
226 </p></div></div></body></html>