Commit | Line | Data |
---|---|---|
7faf1d71 AW |
1 | <?xml version="1.0" encoding="UTF-8"?>\r |
2 | <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"\r | |
3 | "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">\r | |
4 | <refentry id="glTextureView">\r | |
5 | <refmeta>\r | |
6 | <refmetainfo>\r | |
7 | <copyright>\r | |
8 | <year>2012</year>\r | |
9 | <holder>Khronos Group</holder>\r | |
10 | </copyright>\r | |
11 | </refmetainfo>\r | |
12 | <refentrytitle>glTextureView</refentrytitle>\r | |
13 | <manvolnum>3G</manvolnum>\r | |
14 | </refmeta>\r | |
15 | <refnamediv>\r | |
16 | <refname>glTextureView</refname>\r | |
17 | <refpurpose>initialize a texture as a data alias of another texture's data store</refpurpose>\r | |
18 | </refnamediv>\r | |
19 | <refsynopsisdiv><title>C Specification</title>\r | |
20 | <funcsynopsis>\r | |
21 | <funcprototype>\r | |
22 | <funcdef>void <function>glTextureView</function></funcdef>\r | |
23 | <paramdef>GLuint <parameter>texture</parameter></paramdef>\r | |
24 | <paramdef>GLenum <parameter>target</parameter></paramdef>\r | |
25 | <paramdef>GLuint <parameter>origtexture</parameter></paramdef>\r | |
26 | <paramdef>GLenum <parameter>internalformat</parameter></paramdef>\r | |
27 | <paramdef>GLuint <parameter>minlevel</parameter></paramdef>\r | |
28 | <paramdef>GLuint <parameter>numlevels</parameter></paramdef>\r | |
29 | <paramdef>GLuint <parameter>minlayer</parameter></paramdef>\r | |
30 | <paramdef>GLuint <parameter>numlayers</parameter></paramdef>\r | |
31 | </funcprototype>\r | |
32 | </funcsynopsis>\r | |
33 | </refsynopsisdiv>\r | |
34 | <refsect1 id="parameters"><title>Parameters</title>\r | |
35 | <variablelist>\r | |
36 | <varlistentry>\r | |
37 | <term><parameter>texture</parameter></term>\r | |
38 | <listitem>\r | |
39 | <para>\r | |
40 | Specifies the texture object to be initialized as a view.\r | |
41 | </para>\r | |
42 | </listitem>\r | |
43 | </varlistentry>\r | |
44 | <varlistentry>\r | |
45 | <term><parameter>target</parameter></term>\r | |
46 | <listitem>\r | |
47 | <para>\r | |
48 | Specifies the target to be used for the newly initialized texture.\r | |
49 | </para>\r | |
50 | </listitem>\r | |
51 | </varlistentry>\r | |
52 | <varlistentry>\r | |
53 | <term><parameter>origtexture</parameter></term>\r | |
54 | <listitem>\r | |
55 | <para>\r | |
56 | Specifies the name of a texture object of which to make a view.\r | |
57 | </para>\r | |
58 | </listitem>\r | |
59 | </varlistentry>\r | |
60 | <varlistentry>\r | |
61 | <term><parameter>internalFormat</parameter></term>\r | |
62 | <listitem>\r | |
63 | <para>\r | |
64 | Specifies the internal format for the newly created view.\r | |
65 | </para>\r | |
66 | </listitem>\r | |
67 | </varlistentry>\r | |
68 | <varlistentry>\r | |
69 | <term><parameter>minlevel</parameter></term>\r | |
70 | <listitem>\r | |
71 | <para>\r | |
72 | Specifies lowest level of detail of the view.\r | |
73 | </para>\r | |
74 | </listitem>\r | |
75 | </varlistentry>\r | |
76 | <varlistentry>\r | |
77 | <term><parameter>numlevels</parameter></term>\r | |
78 | <listitem>\r | |
79 | <para>\r | |
80 | Specifies the number of levels of detail to include in the view.\r | |
81 | </para>\r | |
82 | </listitem>\r | |
83 | </varlistentry>\r | |
84 | <varlistentry>\r | |
85 | <term><parameter>minlayer</parameter></term>\r | |
86 | <listitem>\r | |
87 | <para>\r | |
88 | Specifies the index of the first layer to include in the view.\r | |
89 | </para>\r | |
90 | </listitem>\r | |
91 | </varlistentry>\r | |
92 | <varlistentry>\r | |
93 | <term><parameter>numlayers</parameter></term>\r | |
94 | <listitem>\r | |
95 | <para>\r | |
96 | Specifies the number of layers to include in the view.\r | |
97 | </para>\r | |
98 | </listitem>\r | |
99 | </varlistentry>\r | |
100 | </variablelist>\r | |
101 | </refsect1>\r | |
102 | <refsect1 id="description"><title>Description</title>\r | |
103 | <para>\r | |
104 | <function>glTextureView</function> initializes a texture object as an\r | |
105 | alias, or view of another texture object, sharing some or all of the\r | |
106 | parent texture's data store with the initialized texture. <parameter>texture</parameter>\r | |
107 | specifies a name previously reserved by a successful call to <citerefentry><refentrytitle>glGenTextures</refentrytitle></citerefentry>\r | |
108 | but that has not yet been bound or given a target. <parameter>target</parameter>\r | |
109 | specifies the target for the newly initialized texture and must be compatible\r | |
110 | with the target of the parent texture, given in <parameter>origtexture</parameter>\r | |
111 | as specified in the following table:\r | |
112 | </para>\r | |
113 | <informaltable frame="topbot">\r | |
114 | <tgroup cols="2" align="left">\r | |
115 | <colspec colnum="1" colname="col1" colwidth="1*"/>\r | |
116 | <colspec colnum="2" colname="col2" colwidth="2*"/>\r | |
117 | <thead>\r | |
118 | <row>\r | |
119 | <entry rowsep="1" align="center">Original Target</entry>\r | |
120 | <entry rowsep="1" align="center">Compatible New Targets</entry>\r | |
121 | </row>\r | |
122 | </thead>\r | |
123 | <tbody>\r | |
124 | <row>\r | |
125 | <entry align="left"><constant>GL_TEXTURE_1D</constant></entry>\r | |
126 | <entry align="left"><constant>GL_TEXTURE_1D</constant>, <constant>GL_TEXTURE_1D_ARRAY</constant></entry>\r | |
127 | </row>\r | |
128 | <row>\r | |
129 | <entry align="left"><constant>GL_TEXTURE_2D</constant></entry>\r | |
130 | <entry align="left"><constant>GL_TEXTURE_2D</constant>, <constant>GL_TEXTURE_2D_ARRAY</constant></entry>\r | |
131 | </row>\r | |
132 | <row>\r | |
133 | <entry align="left"><constant>GL_TEXTURE_3D</constant></entry>\r | |
134 | <entry align="left"><constant>GL_TEXTURE_3D</constant></entry>\r | |
135 | </row>\r | |
136 | <row>\r | |
137 | <entry align="left"><constant>GL_TEXTURE_CUBE_MAP</constant></entry>\r | |
138 | <entry align="left"><constant>GL_TEXTURE_CUBE_MAP</constant>, <constant>GL_TEXTURE_2D</constant>, <constant>GL_TEXTURE_2D_ARRAY</constant>, <constant>GL_TEXTUER_CUBE_MAP_ARRAY</constant></entry>\r | |
139 | </row>\r | |
140 | <row>\r | |
141 | <entry align="left"><constant>GL_TEXTURE_RECTANGLE</constant></entry>\r | |
142 | <entry align="left"><constant>GL_TEXTURE_RECTANGLE</constant></entry>\r | |
143 | </row>\r | |
144 | <row>\r | |
145 | <entry align="left"><constant>GL_TEXTURE_BUFFER</constant></entry>\r | |
146 | <entry align="left"><emphasis>none</emphasis></entry>\r | |
147 | </row>\r | |
148 | <row>\r | |
149 | <entry align="left"><constant>GL_TEXTURE_1D_ARRAY</constant></entry>\r | |
150 | <entry align="left"><constant>GL_TEXTURE_1D</constant>, <constant>GL_TEXTURE_1D_ARRAY</constant></entry>\r | |
151 | </row>\r | |
152 | <row>\r | |
153 | <entry align="left"><constant>GL_TEXTURE_2D_ARRAY</constant></entry>\r | |
154 | <entry align="left"><constant>GL_TEXTURE_2D</constant>, <constant>GL_TEXTURE_2D_ARRAY</constant></entry>\r | |
155 | </row>\r | |
156 | <row>\r | |
157 | <entry align="left"><constant>GL_TEXTURE_CUBE_MAP_ARRAY</constant></entry>\r | |
158 | <entry align="left"><constant>GL_TEXTURE_CUBE_MAP</constant>, <constant>GL_TEXTURE_2D</constant>, <constant>GL_TEXTURE_2D_ARRAY</constant>, <constant>GL_TEXTUER_CUBE_MAP_ARRAY</constant></entry>\r | |
159 | </row>\r | |
160 | <row>\r | |
161 | <entry align="left"><constant>GL_TEXTURE_2D_MULTISAMPLE</constant></entry>\r | |
162 | <entry align="left"><constant>GL_TEXTURE_2D_MULTISAMPLE</constant>, <constant>GL_TEXTURE_MULTISAMPLE_ARRAY</constant></entry>\r | |
163 | </row>\r | |
164 | <row>\r | |
165 | <entry align="left"><constant>GL_TEXTURE_2D_MULTISAMPLE_ARRAY</constant></entry>\r | |
166 | <entry align="left"><constant>GL_TEXTURE_2D_MULTISAMPLE</constant>, <constant>GL_TEXTURE_MULTISAMPLE_ARRAY</constant></entry>\r | |
167 | </row>\r | |
168 | </tbody>\r | |
169 | </tgroup>\r | |
170 | </informaltable>\r | |
171 | <para>\r | |
172 | The value of <constant>GL_TEXTURE_IMMUTABLE_FORMAT</constant> for <parameter>origtexture</parameter>\r | |
173 | must be <constant>GL_TRUE</constant>.\r | |
174 | After initialization, <parameter>texture</parameter> inherits the data store of\r | |
175 | the parent texture, <parameter>origtexture</parameter> and is usable as a normal\r | |
176 | texture object with target <parameter>target</parameter>. Data in the shared store\r | |
177 | is reinterpreted with the new internal format specified by <parameter>internalformat</parameter>.\r | |
178 | <parameter>internalformat</parameter> must be compatible with the internal format\r | |
179 | of the parent texture as specified in the following table:\r | |
180 | </para>\r | |
181 | <informaltable frame="topbot">\r | |
182 | <tgroup cols="2" align="left">\r | |
183 | <colspec colnum="1" colname="col1" colwidth="1*"/>\r | |
184 | <colspec colnum="2" colname="col2" colwidth="2*"/>\r | |
185 | <thead>\r | |
186 | <row>\r | |
187 | <entry align="center">Class</entry>\r | |
188 | <entry align="center">Internal Formats</entry>\r | |
189 | </row>\r | |
190 | </thead>\r | |
191 | <tbody>\r | |
192 | <row>\r | |
193 | <entry align="left">128-bit</entry>\r | |
194 | <entry align="left"><constant>GL_RGBA32F</constant>, <constant>GL_RGBA32UI</constant>, <constant>GL_RGBA32I</constant></entry>\r | |
195 | </row>\r | |
196 | <row>\r | |
197 | <entry align="left">96-bit</entry>\r | |
198 | <entry align="left"><constant>GL_RGB32F</constant>, <constant>GL_RGB32UI</constant>, <constant>GL_RGB32I</constant></entry>\r | |
199 | </row>\r | |
200 | <row>\r | |
201 | <entry align="left">64-bit</entry>\r | |
202 | <entry align="left"><constant>GL_RGBA16F</constant>, <constant>GL_RG32F</constant>, <constant>GL_RGBA16UI</constant>,\r | |
203 | <constant>GL_RG32UI</constant>, <constant>GL_RGBA16I</constant>, <constant>GL_RG32I</constant>, <constant>GL_RGBA16</constant>, <constant>GL_RGBA16_SNORM</constant></entry>\r | |
204 | </row>\r | |
205 | <row>\r | |
206 | <entry align="left">48-bit</entry>\r | |
207 | <entry align="left"><constant>GL_RGB16</constant>, <constant>GL_RGB16_SNORM</constant>, <constant>GL_RGB16F</constant>, <constant>GL_RGB16UI</constant>, <constant>GL_RGB16I</constant></entry>\r | |
208 | </row>\r | |
209 | <row>\r | |
210 | <entry align="left">32-bit</entry>\r | |
211 | <entry align="left"><constant>GL_RG16F</constant>, <constant>GL_R11F_G11F_B10F</constant>, <constant>GL_R32F</constant>, <constant>GL_RGB10_A2UI</constant>,\r | |
212 | <constant>GL_RGBA8UI</constant>, <constant>GL_RG16UI</constant>, <constant>GL_R32UI</constant>, <constant>GL_RGBA8I</constant>,\r | |
213 | <constant>GL_RG16I</constant>, <constant>GL_R32I</constant>, <constant>GL_RGB10_A2</constant>, <constant>GL_RGBA8</constant>,\r | |
214 | <constant>GL_RG16</constant>, <constant>GL_RGBA8_SNORM</constant>, <constant>GL_RG16_SNORM</constant>, <constant>GL_SRGB8_ALPHA8</constant>,\r | |
215 | <constant>GL_RGB9_E5</constant></entry>\r | |
216 | </row>\r | |
217 | <row>\r | |
218 | <entry align="left">24-bit</entry>\r | |
219 | <entry align="left"><constant>GL_RGB8</constant>, <constant>GL_RGB8_SNORM</constant>, <constant>GL_SRGB8</constant>,\r | |
220 | <constant>GL_RGB8UI</constant>, <constant>GL_RGB8I</constant></entry>\r | |
221 | </row>\r | |
222 | <row>\r | |
223 | <entry align="left">16-bit</entry>\r | |
224 | <entry align="left"><constant>GL_R16F</constant>, <constant>GL_RG8UI</constant>, <constant>GL_R16UI</constant>, <constant>GL_RG8I</constant>,\r | |
225 | <constant>GL_R16I</constant>, <constant>GL_RG8</constant>, <constant>GL_R16</constant>, <constant>GL_RG8_SNORM</constant>, <constant>GL_R16_SNORM</constant></entry>\r | |
226 | </row>\r | |
227 | <row>\r | |
228 | <entry align="left">8-bit</entry>\r | |
229 | <entry align="left"><constant>GL_R8UI</constant>, <constant>GL_R8I</constant>, <constant>GL_R8</constant>, <constant>GL_R8_SNORM</constant></entry>\r | |
230 | </row>\r | |
231 | <row>\r | |
232 | <entry align="left"><constant>GL_RGTC1_RED</constant></entry>\r | |
233 | <entry align="left"><constant>GL_COMPRESSED_RED_RGTC1</constant>, <constant>GL_COMPRESSED_SIGNED_RED_RGTC1</constant></entry>\r | |
234 | </row>\r | |
235 | <row>\r | |
236 | <entry align="left"><constant>GL_RGTC2_RG</constant></entry>\r | |
237 | <entry align="left"><constant>GL_COMPRESSED_RG_RGTC2</constant>, <constant>GL_COMPRESSED_SIGNED_RG_RGTC2</constant></entry>\r | |
238 | </row>\r | |
239 | <row>\r | |
240 | <entry align="left"><constant>GL_BPTC_UNORM</constant></entry>\r | |
241 | <entry align="left"><constant>GL_COMPRESSED_RGBA_BPTC_UNORM</constant>, <constant>GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM</constant></entry>\r | |
242 | </row>\r | |
243 | <row>\r | |
244 | <entry align="left"><constant>GL_BPTC_FLOAT</constant></entry>\r | |
245 | <entry align="left"><constant>GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT</constant>, <constant>GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT</constant></entry>\r | |
246 | </row>\r | |
247 | </tbody>\r | |
248 | </tgroup>\r | |
249 | </informaltable>\r | |
250 | <para>\r | |
251 | If the original texture is an array or has multiple mipmap levels,\r | |
252 | the parameters <parameter>minlayer</parameter>, <parameter>numlayers</parameter>, <parameter>minlevel</parameter>, and <parameter>numlevels</parameter>\r | |
253 | control which of those slices and levels are considered part of the texture.\r | |
254 | The <parameter>minlevel</parameter> and <parameter>minlayer</parameter> parameters are relative to the view of the\r | |
255 | original texture. If <parameter>numlayers</parameter> or <parameter>numlevels</parameter> extend beyond the original\r | |
256 | texture, they are clamped to the max extent of the original texture.\r | |
257 | </para>\r | |
258 | <para>\r | |
259 | If the new texture's target is <constant>GL_TEXTURE_CUBE_MAP</constant>, the clamped <parameter>numlayers</parameter>\r | |
260 | must be equal to 6. If the new texture's target is <constant>GL_TEXTURE_CUBE_MAP_ARRAY</constant>,\r | |
261 | then <parameter>numlayers</parameter> counts layer-faces rather than layers, and the clamped\r | |
262 | <parameter>numlayers</parameter> must be a multiple of 6. If the new texture's target is <constant>GL_TEXTURE_CUBE_MAP</constant> or\r | |
263 | <constant>GL_TEXTURE_CUBE_MAP_ARRAY</constant>, the width and height of the original texture's \r | |
264 | levels must be equal.\r | |
265 | </para>\r | |
266 | <para>\r | |
267 | When the original texture's target is <constant>GL_TEXTURE_CUBE_MAP</constant>, the layer\r | |
268 | parameters are interpreted in the same order as if it were a\r | |
269 | <constant>GL_TEXTURE_CUBE_MAP_ARRAY</constant> with 6 layer-faces.\r | |
270 | </para>\r | |
271 | <para>\r | |
272 | If <parameter>target</parameter> is <constant>GL_TEXTURE_1D</constant>, <constant>GL_TEXTURE_2D</constant>, <constant>GL_TEXTURE_3D</constant>, <constant>GL_TEXTURE_RECTANGLE</constant>, or \r | |
273 | <constant>GL_TEXTURE_2D_MULTISAMPLE</constant>, <parameter>numlayers</parameter> must equal 1.\r | |
274 | </para>\r | |
275 | <para>\r | |
276 | The dimensions of the original texture must be less than or equal to the maximum \r | |
277 | supported dimensions of the new target. For example, if the original texture has a <constant>GL_TEXTURE_2D_ARRAY</constant>\r | |
278 | target and its width is greater than <constant>GL_MAX_CUBE_MAP_TEXTURE_SIZE</constant>, an error\r | |
279 | will be generated if <function>glTextureView</function> is called to create a <constant>GL_TEXTURE_CUBE_MAP</constant>\r | |
280 | view.\r | |
281 | </para>\r | |
282 | <para>\r | |
283 | Texture commands that take a <parameter>level</parameter> or <parameter>layer</parameter> parameter, such as \r | |
284 | <citerefentry><refentrytitle>glTexSubImage2D</refentrytitle></citerefentry>, interpret that parameter to be relative to the view of the \r | |
285 | texture. i.e. the mipmap level of the data store that would be updated via \r | |
286 | <citerefentry><refentrytitle>TexSubImage2D</refentrytitle></citerefentry> would be the sum of <parameter>level</parameter> and the value of \r | |
287 | <constant>GL_TEXTURE_VIEW_MIN_LEVEL</constant>.\r | |
288 | </para>\r | |
289 | </refsect1>\r | |
290 | <refsect1 id="errors"><title>Errors</title>\r | |
291 | <para>\r | |
292 | <constant>GL_INVALID_VALUE</constant> is generated if <parameter>minlayer</parameter> or <parameter>minlevel</parameter>\r | |
293 | are larger than the greatest layer or level of <parameter>origtexture</parameter>.\r | |
294 | </para>\r | |
295 | <para>\r | |
296 | <constant>GL_INVALID_OPERATION</constant> is generated if <parameter>target</parameter> is not compatible\r | |
297 | with the target of <parameter>origtexture</parameter>.\r | |
298 | </para>\r | |
299 | <para>\r | |
300 | <constant>GL_INVALID_OPERATION</constant> is generated if the dimensions of <parameter>origtexture</parameter>\r | |
301 | are greater than the maximum supported dimensions for <parameter>target</parameter>.\r | |
302 | </para>\r | |
303 | <para>\r | |
304 | <constant>GL_INVALID_OPERATION</constant> is generated if <parameter>internalformat</parameter> is not compatible\r | |
305 | with the internal format of <parameter>origtexture</parameter>.\r | |
306 | </para>\r | |
307 | <para>\r | |
308 | <constant>GL_INVALID_OPERATION</constant> is generated if <parameter>texture</parameter> has already been bound\r | |
309 | or otherwise given a target.\r | |
310 | </para>\r | |
311 | <para>\r | |
312 | <constant>GL_INVALID_OPERATION</constant> is generated if the value of <constant>GL_TEXTURE_IMMUTABLE_FORMAT</constant>\r | |
313 | for <parameter>origtexture</parameter> is not <constant>GL_TRUE</constant>.\r | |
314 | </para>\r | |
315 | <para>\r | |
316 | <constant>GL_INVALID_OPERATION</constant> is generated if <parameter>origtexture</parameter> is not the name of an\r | |
317 | existing texture object.\r | |
318 | </para>\r | |
319 | <para>\r | |
320 | <constant>GL_INVALID_VALUE</constant> is generaged if <parameter>target</parameter> is <constant>GL_TEXTURE_CUBE_MAP</constant>\r | |
321 | and <parameter>numlayers</parameter> is not 6, or if <parameter>target</parameter> is <constant>GL_TEXTURE_CUBE_MAP_ARRAY</constant>\r | |
322 | and <parameter>numlayers</parameter> is not an integer multiple of 6.\r | |
323 | </para>\r | |
324 | <para>\r | |
325 | <constant>GL_INVALID_VALUE</constant> is generated if <parameter>target</parameter> is <constant>GL_TEXTURE_1D</constant>,\r | |
326 | <constant>GL_TEXTURE_2D</constant>, <constant>GL_TEXTURE_3D</constant>, <constant>GL_TEXTURE_RECTANGLE</constant>, or\r | |
327 | <constant>GL_TEXTURE_2D_MULTISAMPLE</constant> and <parameter>numlayers</parameter> does not equal 1.\r | |
328 | </para>\r | |
329 | <para>\r | |
330 | <constant>GL_INVALID_VALUE</constant> is generated if <parameter>texture</parameter> zero or is not the name of a texture previously\r | |
331 | returned from a successful call to <citerefentry><refentrytitle>glGenTextures</refentrytitle></citerefentry>.\r | |
332 | </para>\r | |
333 | </refsect1>\r | |
334 | <refsect1 id="associatedgets"><title>Associated Gets</title>\r | |
335 | <para>\r | |
336 | <citerefentry><refentrytitle>glTexParameter</refentrytitle></citerefentry> with arguments <constant>GL_TEXTURE_VIEW_MIN_LEVEL</constant>,\r | |
337 | <constant>GL_TEXTURE_VIEW_NUM_LEVELS</constant>, <constant>GL_TEXTURE_VIEW_MIN_LAYER</constant>,\r | |
338 | <constant>GL_TEXTURE_VIEW_NUM_LAYERS</constant>, or <constant>GL_TEXTURE_IMMUTABLE_LEVELS</constant>.\r | |
339 | </para>\r | |
340 | </refsect1>\r | |
341 | <refsect1 id="seealso"><title>See Also</title>\r | |
342 | <para>\r | |
343 | <citerefentry><refentrytitle>glTexStorage1D</refentrytitle></citerefentry>,\r | |
344 | <citerefentry><refentrytitle>glTexStorage2D</refentrytitle></citerefentry>,\r | |
345 | <citerefentry><refentrytitle>glTexStorage3D</refentrytitle></citerefentry>,\r | |
346 | <citerefentry><refentrytitle>glGetTexParameter</refentrytitle></citerefentry>.\r | |
347 | </para>\r | |
348 | </refsect1>\r | |
349 | <refsect1 id="Copyright"><title>Copyright</title>\r | |
350 | <para>\r | |
351 | Copyright <trademark class="copyright"></trademark> 2012 Khronos Group. \r | |
352 | This material may be distributed subject to the terms and conditions set forth in \r | |
353 | the Open Publication License, v 1.0, 8 June 1999.\r | |
354 | <ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.\r | |
355 | </para>\r | |
356 | </refsect1>\r | |
357 | </refentry>\r |