1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
3 <!-- saved from url=(0013)about:internet -->
4 <?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" /><link rel=
"stylesheet" type=
"text/css" href=
"opengl-man.css" /><title>glTextureView - OpenGL
4 Reference Pages
</title><meta name=
"generator" content=
"DocBook XSL Stylesheets V1.69.1" /></head><body><div class=
"refentry" lang=
"en" xml:
lang=
"en"><a id=
"glTextureView"></a><div class=
"titlepage"></div><div class=
"refnamediv"><h2>Name
</h2><p>glTextureView — initialize a texture as a data alias of another texture's data store
</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">glTextureView
</b>(
</code></td><td>GLuint
</td><td><var class=
"pdparam">texture
</var>,
</td></tr><tr><td> </td><td>GLenum
</td><td><var class=
"pdparam">target
</var>,
</td></tr><tr><td> </td><td>GLuint
</td><td><var class=
"pdparam">origtexture
</var>,
</td></tr><tr><td> </td><td>GLenum
</td><td><var class=
"pdparam">internalformat
</var>,
</td></tr><tr><td> </td><td>GLuint
</td><td><var class=
"pdparam">minlevel
</var>,
</td></tr><tr><td> </td><td>GLuint
</td><td><var class=
"pdparam">numlevels
</var>,
</td></tr><tr><td> </td><td>GLuint
</td><td><var class=
"pdparam">minlayer
</var>,
</td></tr><tr><td> </td><td>GLuint
</td><td><var class=
"pdparam">numlayers
</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>texture
</code></em></span></dt><dd><p>
5 Specifies the texture object to be initialized as a view.
6 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>target
</code></em></span></dt><dd><p>
7 Specifies the target to be used for the newly initialized texture.
8 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>origtexture
</code></em></span></dt><dd><p>
9 Specifies the name of a texture object of which to make a view.
10 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>internalFormat
</code></em></span></dt><dd><p>
11 Specifies the internal format for the newly created view.
12 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>minlevel
</code></em></span></dt><dd><p>
13 Specifies lowest level of detail of the view.
14 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>numlevels
</code></em></span></dt><dd><p>
15 Specifies the number of levels of detail to include in the view.
16 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>minlayer
</code></em></span></dt><dd><p>
17 Specifies the index of the first layer to include in the view.
18 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>numlayers
</code></em></span></dt><dd><p>
19 Specifies the number of layers to include in the view.
20 </p></dd></dl></div></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"description"></a><h2>Description
</h2><p>
21 <code class=
"function">glTextureView
</code> initializes a texture object as an
22 alias, or view of another texture object, sharing some or all of the
23 parent texture's data store with the initialized texture.
<em class=
"parameter"><code>texture
</code></em>
24 specifies a name previously reserved by a successful call to
<a href=
"glGenTextures.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGenTextures
</span></span></a>
25 but that has not yet been bound or given a target.
<em class=
"parameter"><code>target
</code></em>
26 specifies the target for the newly initialized texture and must be compatible
27 with the target of the parent texture, given in
<em class=
"parameter"><code>origtexture
</code></em>
28 as specified in the following table:
29 </p><div class=
"informaltable"><table border=
"1"><colgroup><col align=
"left" /><col align=
"left" /></colgroup><thead><tr><th align=
"center">Original Target
</th><th align=
"center">Compatible New Targets
</th></tr></thead><tbody><tr><td align=
"left"><code class=
"constant">GL_TEXTURE_1D
</code></td><td align=
"left"><code class=
"constant">GL_TEXTURE_1D
</code>,
<code class=
"constant">GL_TEXTURE_1D_ARRAY
</code></td></tr><tr><td align=
"left"><code class=
"constant">GL_TEXTURE_2D
</code></td><td align=
"left"><code class=
"constant">GL_TEXTURE_2D
</code>,
<code class=
"constant">GL_TEXTURE_2D_ARRAY
</code></td></tr><tr><td align=
"left"><code class=
"constant">GL_TEXTURE_3D
</code></td><td align=
"left"><code class=
"constant">GL_TEXTURE_3D
</code></td></tr><tr><td align=
"left"><code class=
"constant">GL_TEXTURE_CUBE_MAP
</code></td><td align=
"left"><code class=
"constant">GL_TEXTURE_CUBE_MAP
</code>,
<code class=
"constant">GL_TEXTURE_2D
</code>,
<code class=
"constant">GL_TEXTURE_2D_ARRAY
</code>,
<code class=
"constant">GL_TEXTUER_CUBE_MAP_ARRAY
</code></td></tr><tr><td align=
"left"><code class=
"constant">GL_TEXTURE_RECTANGLE
</code></td><td align=
"left"><code class=
"constant">GL_TEXTURE_RECTANGLE
</code></td></tr><tr><td align=
"left"><code class=
"constant">GL_TEXTURE_BUFFER
</code></td><td align=
"left"><span class=
"emphasis"><em>none
</em></span></td></tr><tr><td align=
"left"><code class=
"constant">GL_TEXTURE_1D_ARRAY
</code></td><td align=
"left"><code class=
"constant">GL_TEXTURE_1D
</code>,
<code class=
"constant">GL_TEXTURE_1D_ARRAY
</code></td></tr><tr><td align=
"left"><code class=
"constant">GL_TEXTURE_2D_ARRAY
</code></td><td align=
"left"><code class=
"constant">GL_TEXTURE_2D
</code>,
<code class=
"constant">GL_TEXTURE_2D_ARRAY
</code></td></tr><tr><td align=
"left"><code class=
"constant">GL_TEXTURE_CUBE_MAP_ARRAY
</code></td><td align=
"left"><code class=
"constant">GL_TEXTURE_CUBE_MAP
</code>,
<code class=
"constant">GL_TEXTURE_2D
</code>,
<code class=
"constant">GL_TEXTURE_2D_ARRAY
</code>,
<code class=
"constant">GL_TEXTUER_CUBE_MAP_ARRAY
</code></td></tr><tr><td align=
"left"><code class=
"constant">GL_TEXTURE_2D_MULTISAMPLE
</code></td><td align=
"left"><code class=
"constant">GL_TEXTURE_2D_MULTISAMPLE
</code>,
<code class=
"constant">GL_TEXTURE_MULTISAMPLE_ARRAY
</code></td></tr><tr><td align=
"left"><code class=
"constant">GL_TEXTURE_2D_MULTISAMPLE_ARRAY
</code></td><td align=
"left"><code class=
"constant">GL_TEXTURE_2D_MULTISAMPLE
</code>,
<code class=
"constant">GL_TEXTURE_MULTISAMPLE_ARRAY
</code></td></tr></tbody></table></div><p>
30 The value of
<code class=
"constant">GL_TEXTURE_IMMUTABLE_FORMAT
</code> for
<em class=
"parameter"><code>origtexture
</code></em>
31 must be
<code class=
"constant">GL_TRUE
</code>.
32 After initialization,
<em class=
"parameter"><code>texture
</code></em> inherits the data store of
33 the parent texture,
<em class=
"parameter"><code>origtexture
</code></em> and is usable as a normal
34 texture object with target
<em class=
"parameter"><code>target
</code></em>. Data in the shared store
35 is reinterpreted with the new internal format specified by
<em class=
"parameter"><code>internalformat
</code></em>.
36 <em class=
"parameter"><code>internalformat
</code></em> must be compatible with the internal format
37 of the parent texture as specified in the following table:
38 </p><div class=
"informaltable"><table border=
"1"><colgroup><col align=
"left" /><col align=
"left" /></colgroup><thead><tr><th align=
"center">Class
</th><th align=
"center">Internal Formats
</th></tr></thead><tbody><tr><td align=
"left">128-bit
</td><td align=
"left"><code class=
"constant">GL_RGBA32F
</code>,
<code class=
"constant">GL_RGBA32UI
</code>,
<code class=
"constant">GL_RGBA32I
</code></td></tr><tr><td align=
"left">96-bit
</td><td align=
"left"><code class=
"constant">GL_RGB32F
</code>,
<code class=
"constant">GL_RGB32UI
</code>,
<code class=
"constant">GL_RGB32I
</code></td></tr><tr><td align=
"left">64-bit
</td><td align=
"left"><code class=
"constant">GL_RGBA16F
</code>,
<code class=
"constant">GL_RG32F
</code>,
<code class=
"constant">GL_RGBA16UI
</code>,
39 <code class=
"constant">GL_RG32UI
</code>,
<code class=
"constant">GL_RGBA16I
</code>,
<code class=
"constant">GL_RG32I
</code>,
<code class=
"constant">GL_RGBA16
</code>,
<code class=
"constant">GL_RGBA16_SNORM
</code></td></tr><tr><td align=
"left">48-bit
</td><td align=
"left"><code class=
"constant">GL_RGB16
</code>,
<code class=
"constant">GL_RGB16_SNORM
</code>,
<code class=
"constant">GL_RGB16F
</code>,
<code class=
"constant">GL_RGB16UI
</code>,
<code class=
"constant">GL_RGB16I
</code></td></tr><tr><td align=
"left">32-bit
</td><td align=
"left"><code class=
"constant">GL_RG16F
</code>,
<code class=
"constant">GL_R11F_G11F_B10F
</code>,
<code class=
"constant">GL_R32F
</code>,
<code class=
"constant">GL_RGB10_A2UI
</code>,
40 <code class=
"constant">GL_RGBA8UI
</code>,
<code class=
"constant">GL_RG16UI
</code>,
<code class=
"constant">GL_R32UI
</code>,
<code class=
"constant">GL_RGBA8I
</code>,
41 <code class=
"constant">GL_RG16I
</code>,
<code class=
"constant">GL_R32I
</code>,
<code class=
"constant">GL_RGB10_A2
</code>,
<code class=
"constant">GL_RGBA8
</code>,
42 <code class=
"constant">GL_RG16
</code>,
<code class=
"constant">GL_RGBA8_SNORM
</code>,
<code class=
"constant">GL_RG16_SNORM
</code>,
<code class=
"constant">GL_SRGB8_ALPHA8
</code>,
43 <code class=
"constant">GL_RGB9_E5
</code></td></tr><tr><td align=
"left">24-bit
</td><td align=
"left"><code class=
"constant">GL_RGB8
</code>,
<code class=
"constant">GL_RGB8_SNORM
</code>,
<code class=
"constant">GL_SRGB8
</code>,
44 <code class=
"constant">GL_RGB8UI
</code>,
<code class=
"constant">GL_RGB8I
</code></td></tr><tr><td align=
"left">16-bit
</td><td align=
"left"><code class=
"constant">GL_R16F
</code>,
<code class=
"constant">GL_RG8UI
</code>,
<code class=
"constant">GL_R16UI
</code>,
<code class=
"constant">GL_RG8I
</code>,
45 <code class=
"constant">GL_R16I
</code>,
<code class=
"constant">GL_RG8
</code>,
<code class=
"constant">GL_R16
</code>,
<code class=
"constant">GL_RG8_SNORM
</code>,
<code class=
"constant">GL_R16_SNORM
</code></td></tr><tr><td align=
"left">8-bit
</td><td align=
"left"><code class=
"constant">GL_R8UI
</code>,
<code class=
"constant">GL_R8I
</code>,
<code class=
"constant">GL_R8
</code>,
<code class=
"constant">GL_R8_SNORM
</code></td></tr><tr><td align=
"left"><code class=
"constant">GL_RGTC1_RED
</code></td><td align=
"left"><code class=
"constant">GL_COMPRESSED_RED_RGTC1
</code>,
<code class=
"constant">GL_COMPRESSED_SIGNED_RED_RGTC1
</code></td></tr><tr><td align=
"left"><code class=
"constant">GL_RGTC2_RG
</code></td><td align=
"left"><code class=
"constant">GL_COMPRESSED_RG_RGTC2
</code>,
<code class=
"constant">GL_COMPRESSED_SIGNED_RG_RGTC2
</code></td></tr><tr><td align=
"left"><code class=
"constant">GL_BPTC_UNORM
</code></td><td align=
"left"><code class=
"constant">GL_COMPRESSED_RGBA_BPTC_UNORM
</code>,
<code class=
"constant">GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM
</code></td></tr><tr><td align=
"left"><code class=
"constant">GL_BPTC_FLOAT
</code></td><td align=
"left"><code class=
"constant">GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT
</code>,
<code class=
"constant">GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT
</code></td></tr></tbody></table></div><p>
46 If the original texture is an array or has multiple mipmap levels,
47 the parameters
<em class=
"parameter"><code>minlayer
</code></em>,
<em class=
"parameter"><code>numlayers
</code></em>,
<em class=
"parameter"><code>minlevel
</code></em>, and
<em class=
"parameter"><code>numlevels
</code></em>
48 control which of those slices and levels are considered part of the texture.
49 The
<em class=
"parameter"><code>minlevel
</code></em> and
<em class=
"parameter"><code>minlayer
</code></em> parameters are relative to the view of the
50 original texture. If
<em class=
"parameter"><code>numlayers
</code></em> or
<em class=
"parameter"><code>numlevels
</code></em> extend beyond the original
51 texture, they are clamped to the max extent of the original texture.
53 If the new texture's target is
<code class=
"constant">GL_TEXTURE_CUBE_MAP
</code>, the clamped
<em class=
"parameter"><code>numlayers
</code></em>
54 must be equal to
6. If the new texture's target is
<code class=
"constant">GL_TEXTURE_CUBE_MAP_ARRAY
</code>,
55 then
<em class=
"parameter"><code>numlayers
</code></em> counts layer-faces rather than layers, and the clamped
56 <em class=
"parameter"><code>numlayers
</code></em> must be a multiple of
6. If the new texture's target is
<code class=
"constant">GL_TEXTURE_CUBE_MAP
</code> or
57 <code class=
"constant">GL_TEXTURE_CUBE_MAP_ARRAY
</code>, the width and height of the original texture's
60 When the original texture's target is
<code class=
"constant">GL_TEXTURE_CUBE_MAP
</code>, the layer
61 parameters are interpreted in the same order as if it were a
62 <code class=
"constant">GL_TEXTURE_CUBE_MAP_ARRAY
</code> with
6 layer-faces.
64 If
<em class=
"parameter"><code>target
</code></em> is
<code class=
"constant">GL_TEXTURE_1D
</code>,
<code class=
"constant">GL_TEXTURE_2D
</code>,
<code class=
"constant">GL_TEXTURE_3D
</code>,
<code class=
"constant">GL_TEXTURE_RECTANGLE
</code>, or
65 <code class=
"constant">GL_TEXTURE_2D_MULTISAMPLE
</code>,
<em class=
"parameter"><code>numlayers
</code></em> must equal
1.
67 The dimensions of the original texture must be less than or equal to the maximum
68 supported dimensions of the new target. For example, if the original texture has a
<code class=
"constant">GL_TEXTURE_2D_ARRAY
</code>
69 target and its width is greater than
<code class=
"constant">GL_MAX_CUBE_MAP_TEXTURE_SIZE
</code>, an error
70 will be generated if
<code class=
"function">glTextureView
</code> is called to create a
<code class=
"constant">GL_TEXTURE_CUBE_MAP
</code>
73 Texture commands that take a
<em class=
"parameter"><code>level
</code></em> or
<em class=
"parameter"><code>layer
</code></em> parameter, such as
74 <a href=
"glTexSubImage2D.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glTexSubImage2D
</span></span></a>, interpret that parameter to be relative to the view of the
75 texture. i.e. the mipmap level of the data store that would be updated via
76 <a href=
"TexSubImage2D.xml"><span class=
"citerefentry"><span class=
"refentrytitle">TexSubImage2D
</span></span></a> would be the sum of
<em class=
"parameter"><code>level
</code></em> and the value of
77 <code class=
"constant">GL_TEXTURE_VIEW_MIN_LEVEL
</code>.
78 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"errors"></a><h2>Errors
</h2><p>
79 <code class=
"constant">GL_INVALID_VALUE
</code> is generated if
<em class=
"parameter"><code>minlayer
</code></em> or
<em class=
"parameter"><code>minlevel
</code></em>
80 are larger than the greatest layer or level of
<em class=
"parameter"><code>origtexture
</code></em>.
82 <code class=
"constant">GL_INVALID_OPERATION
</code> is generated if
<em class=
"parameter"><code>target
</code></em> is not compatible
83 with the target of
<em class=
"parameter"><code>origtexture
</code></em>.
85 <code class=
"constant">GL_INVALID_OPERATION
</code> is generated if the dimensions of
<em class=
"parameter"><code>origtexture
</code></em>
86 are greater than the maximum supported dimensions for
<em class=
"parameter"><code>target
</code></em>.
88 <code class=
"constant">GL_INVALID_OPERATION
</code> is generated if
<em class=
"parameter"><code>internalformat
</code></em> is not compatible
89 with the internal format of
<em class=
"parameter"><code>origtexture
</code></em>.
91 <code class=
"constant">GL_INVALID_OPERATION
</code> is generated if
<em class=
"parameter"><code>texture
</code></em> has already been bound
92 or otherwise given a target.
94 <code class=
"constant">GL_INVALID_OPERATION
</code> is generated if the value of
<code class=
"constant">GL_TEXTURE_IMMUTABLE_FORMAT
</code>
95 for
<em class=
"parameter"><code>origtexture
</code></em> is not
<code class=
"constant">GL_TRUE
</code>.
97 <code class=
"constant">GL_INVALID_OPERATION
</code> is generated if
<em class=
"parameter"><code>origtexture
</code></em> is not the name of an
98 existing texture object.
100 <code class=
"constant">GL_INVALID_VALUE
</code> is generaged if
<em class=
"parameter"><code>target
</code></em> is
<code class=
"constant">GL_TEXTURE_CUBE_MAP
</code>
101 and
<em class=
"parameter"><code>numlayers
</code></em> is not
6, or if
<em class=
"parameter"><code>target
</code></em> is
<code class=
"constant">GL_TEXTURE_CUBE_MAP_ARRAY
</code>
102 and
<em class=
"parameter"><code>numlayers
</code></em> is not an integer multiple of
6.
104 <code class=
"constant">GL_INVALID_VALUE
</code> is generated if
<em class=
"parameter"><code>target
</code></em> is
<code class=
"constant">GL_TEXTURE_1D
</code>,
105 <code class=
"constant">GL_TEXTURE_2D
</code>,
<code class=
"constant">GL_TEXTURE_3D
</code>,
<code class=
"constant">GL_TEXTURE_RECTANGLE
</code>, or
106 <code class=
"constant">GL_TEXTURE_2D_MULTISAMPLE
</code> and
<em class=
"parameter"><code>numlayers
</code></em> does not equal
1.
108 <code class=
"constant">GL_INVALID_VALUE
</code> is generated if
<em class=
"parameter"><code>texture
</code></em> zero or is not the name of a texture previously
109 returned from a successful call to
<a href=
"glGenTextures.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGenTextures
</span></span></a>.
110 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"associatedgets"></a><h2>Associated Gets
</h2><p>
111 <a href=
"glTexParameter.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glTexParameter
</span></span></a> with arguments
<code class=
"constant">GL_TEXTURE_VIEW_MIN_LEVEL
</code>,
112 <code class=
"constant">GL_TEXTURE_VIEW_NUM_LEVELS
</code>,
<code class=
"constant">GL_TEXTURE_VIEW_MIN_LAYER
</code>,
113 <code class=
"constant">GL_TEXTURE_VIEW_NUM_LAYERS
</code>, or
<code class=
"constant">GL_TEXTURE_IMMUTABLE_LEVELS
</code>.
114 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"seealso"></a><h2>See Also
</h2><p>
115 <a href=
"glTexStorage1D.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glTexStorage1D
</span></span></a>,
116 <a href=
"glTexStorage2D.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glTexStorage2D
</span></span></a>,
117 <a href=
"glTexStorage3D.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glTexStorage3D
</span></span></a>,
118 <a href=
"glGetTexParameter.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGetTexParameter
</span></span></a>.
119 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"Copyright"></a><h2>Copyright
</h2><p>
120 Copyright
<span class=
"trademark"></span>©
2012 Khronos Group.
121 This material may be distributed subject to the terms and conditions set forth in
122 the Open Publication License, v
1.0,
8 June
1999.
123 <a href=
"http://opencontent.org/openpub/" target=
"_top">http://opencontent.org/openpub/
</a>.
124 </p></div></div></body></html>