rename upstream-man-pages to upstream-doc
[clinton/guile-figl.git] / upstream-doc / manglsl / textureGrad.xml
CommitLineData
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="textureGrad">\r
5 <refmeta>\r
6 <refmetainfo>\r
7 <copyright>\r
8 <year>2011</year>\r
9 <holder>Khronos Group</holder>\r
10 </copyright>\r
11 </refmetainfo>\r
12 <refentrytitle>textureGrad</refentrytitle>\r
13 <manvolnum>3G</manvolnum>\r
14 </refmeta>\r
15 <refnamediv>\r
16 <refname>textureGrad</refname>\r
17 <refpurpose>perform a texture lookup with explicit gradients</refpurpose>\r
18 </refnamediv>\r
19 <refsynopsisdiv><title>Declaration</title>\r
20 <funcsynopsis>\r
21 <funcprototype>\r
22 <funcdef>gvec4 <function>textureGrad</function></funcdef>\r
23 <paramdef>gsampler1D <parameter>sampler</parameter></paramdef>\r
24 <paramdef>float <parameter>P</parameter></paramdef>\r
25 <paramdef>float <parameter>dPdx</parameter></paramdef>\r
26 <paramdef>float <parameter>dPdy</parameter></paramdef>\r
27 </funcprototype>\r
28 <funcprototype>\r
29 <funcdef>gvec4 <function>textureGrad</function></funcdef>\r
30 <paramdef>gsampler2D <parameter>sampler</parameter></paramdef>\r
31 <paramdef>vec2 <parameter>P</parameter></paramdef>\r
32 <paramdef>vec2 <parameter>dPdx</parameter></paramdef>\r
33 <paramdef>vec2 <parameter>dPdy</parameter></paramdef>\r
34 </funcprototype>\r
35 <funcprototype>\r
36 <funcdef>gvec4 <function>textureGrad</function></funcdef>\r
37 <paramdef>gsampler3D <parameter>sampler</parameter></paramdef>\r
38 <paramdef>vec3 <parameter>P</parameter></paramdef>\r
39 <paramdef>vec3 <parameter>dPdx</parameter></paramdef>\r
40 <paramdef>vec3 <parameter>dPdy</parameter></paramdef>\r
41 </funcprototype>\r
42 <funcprototype>\r
43 <funcdef>gvec4 <function>textureGrad</function></funcdef>\r
44 <paramdef>gsamplerCube <parameter>sampler</parameter></paramdef>\r
45 <paramdef>vec3 <parameter>P</parameter></paramdef>\r
46 <paramdef>vec3 <parameter>dPdx</parameter></paramdef>\r
47 <paramdef>vec3 <parameter>dPdy</parameter></paramdef>\r
48 </funcprototype>\r
49 <funcprototype>\r
50 <funcdef>gvec4 <function>textureGrad</function></funcdef>\r
51 <paramdef>gsampler2DRect <parameter>sampler</parameter></paramdef>\r
52 <paramdef>vec2 <parameter>P</parameter></paramdef>\r
53 <paramdef>vec2 <parameter>dPdx</parameter></paramdef>\r
54 <paramdef>vec2 <parameter>dPdy</parameter></paramdef>\r
55 </funcprototype>\r
56 <funcprototype>\r
57 <funcdef>float <function>textureGrad</function></funcdef>\r
58 <paramdef>gsampler2DRectShadow <parameter>sampler</parameter></paramdef>\r
59 <paramdef>vec2 <parameter>P</parameter></paramdef>\r
60 <paramdef>vec2 <parameter>dPdx</parameter></paramdef>\r
61 <paramdef>vec2 <parameter>dPdy</parameter></paramdef>\r
62 </funcprototype>\r
63 <funcprototype>\r
64 <funcdef>float <function>textureGrad</function></funcdef>\r
65 <paramdef>sampler1DShadow <parameter>sampler</parameter></paramdef>\r
66 <paramdef>vec3 <parameter>P</parameter></paramdef>\r
67 <paramdef>float <parameter>dPdx</parameter></paramdef>\r
68 <paramdef>float <parameter>dPdy</parameter></paramdef>\r
69 </funcprototype>\r
70 <funcprototype>\r
71 <funcdef>float <function>textureGrad</function></funcdef>\r
72 <paramdef>sampler2DShadow <parameter>sampler</parameter></paramdef>\r
73 <paramdef>vec3 <parameter>P</parameter></paramdef>\r
74 <paramdef>vec2 <parameter>dPdx</parameter></paramdef>\r
75 <paramdef>vec2 <parameter>dPdy</parameter></paramdef>\r
76 </funcprototype>\r
77 <funcprototype>\r
78 <funcdef>gvec4 <function>textureGrad</function></funcdef>\r
79 <paramdef>gsampler1DArray <parameter>sampler</parameter></paramdef>\r
80 <paramdef>vec2 <parameter>P</parameter></paramdef>\r
81 <paramdef>float <parameter>dPdx</parameter></paramdef>\r
82 <paramdef>float <parameter>dPdy</parameter></paramdef>\r
83 </funcprototype>\r
84 <funcprototype>\r
85 <funcdef>gvec4 <function>textureGrad</function></funcdef>\r
86 <paramdef>gsampler2DArray <parameter>sampler</parameter></paramdef>\r
87 <paramdef>vec3 <parameter>P</parameter></paramdef>\r
88 <paramdef>vec2 <parameter>dPdx</parameter></paramdef>\r
89 <paramdef>vec2 <parameter>dPdy</parameter></paramdef>\r
90 </funcprototype>\r
91 <funcprototype>\r
92 <funcdef>float <function>textureGrad</function></funcdef>\r
93 <paramdef>sampler1DArrayShadow <parameter>sampler</parameter></paramdef>\r
94 <paramdef>vec3 <parameter>P</parameter></paramdef>\r
95 <paramdef>float <parameter>dPdx</parameter></paramdef>\r
96 <paramdef>float <parameter>dPdy</parameter></paramdef>\r
97 </funcprototype>\r
98 <funcprototype>\r
99 <funcdef>gvec4 <function>textureGrad</function></funcdef>\r
100 <paramdef>gsamplerCubeArray <parameter>sampler</parameter></paramdef>\r
101 <paramdef>vec4 <parameter>P</parameter></paramdef>\r
102 <paramdef>vec3 <parameter>dPdx</parameter></paramdef>\r
103 <paramdef>vec3 <parameter>dPdy</parameter></paramdef>\r
104 </funcprototype>\r
105 </funcsynopsis>\r
106 </refsynopsisdiv>\r
107 <refsect1 id="parameters"><title>Parameters</title>\r
108 <variablelist>\r
109 <varlistentry>\r
110 <term><parameter>sampler</parameter></term>\r
111 <listitem>\r
112 <para>\r
113 Specifies the sampler to which the texture from which texels will be retrieved is bound.\r
114 </para>\r
115 </listitem>\r
116 </varlistentry>\r
117 <varlistentry>\r
118 <term><parameter>P</parameter></term>\r
119 <listitem>\r
120 <para>\r
121 Specifies the texture coordinates at which texture will be sampled.\r
122 </para>\r
123 </listitem>\r
124 </varlistentry>\r
125 <varlistentry>\r
126 <term><parameter>dPdx</parameter></term>\r
127 <listitem>\r
128 <para>\r
129 Specifies the partial derivative of <parameter>P</parameter> with respect to window x.\r
130 </para>\r
131 </listitem>\r
132 </varlistentry>\r
133 <varlistentry>\r
134 <term><parameter>dPdy</parameter></term>\r
135 <listitem>\r
136 <para>\r
137 Specifies the partial derivative of <parameter>P</parameter> with respect to window y.\r
138 </para>\r
139 </listitem>\r
140 </varlistentry>\r
141 </variablelist>\r
142 </refsect1>\r
143 <refsect1 id="description"><title>Description</title>\r
144 <para>\r
145 <function>textureGrad</function> performs a texture lookup at coordinate <parameter>P</parameter> from the\r
146 texture bound to <parameter>sampler</parameter> with explicit texture coordinate gradiends as specified in\r
147 <parameter>dPdx</parameter> and <parameter>dPdy</parameter>. Set:\r
148 </para>\r
149 <para>\r
150 <inlineequation><mml:math>\r
151 <mml:mfrac>\r
152 <mml:mi>&delta;s</mml:mi>\r
153 <mml:mi>&delta;x</mml:mi>\r
154 </mml:mfrac>\r
155 <mml:mo>=</mml:mo>\r
156 <mml:mfrac>\r
157 <mml:mi>&delta;P</mml:mi>\r
158 <mml:mi>&delta;x</mml:mi>\r
159 </mml:mfrac>\r
160 <mml:mi>&nbsp; for a 1D texture,&nbsp; </mml:mi>\r
161 <mml:mfrac>\r
162 <mml:mi>&delta;P.s</mml:mi>\r
163 <mml:mi>&delta;x</mml:mi>\r
164 </mml:mfrac>\r
165 <mml:mi>&nbsp; otherwise</mml:mi>\r
166 </mml:math></inlineequation>\r
167 </para>\r
168 <para>\r
169 <inlineequation><mml:math>\r
170 <mml:mfrac>\r
171 <mml:mi>&delta;s</mml:mi>\r
172 <mml:mi>&delta;y</mml:mi>\r
173 </mml:mfrac>\r
174 <mml:mo>=</mml:mo>\r
175 <mml:mfrac>\r
176 <mml:mi>&delta;P</mml:mi>\r
177 <mml:mi>&delta;y</mml:mi>\r
178 </mml:mfrac>\r
179 <mml:mi>&nbsp; for a 1D texture,&nbsp; </mml:mi>\r
180 <mml:mfrac>\r
181 <mml:mi>&delta;P.s</mml:mi>\r
182 <mml:mi>&delta;y</mml:mi>\r
183 </mml:mfrac>\r
184 <mml:mi>&nbsp; otherwise</mml:mi>\r
185 </mml:math></inlineequation>\r
186 </para>\r
187 <para>\r
188 <inlineequation><mml:math>\r
189 <mml:mfrac>\r
190 <mml:mi>&delta;t</mml:mi>\r
191 <mml:mi>&delta;x</mml:mi>\r
192 </mml:mfrac>\r
193 <mml:mo>=</mml:mo>\r
194 <mml:mn>0.0</mml:mn>\r
195 <mml:mi>&nbsp; for a 1D texture,&nbsp; </mml:mi>\r
196 <mml:mfrac>\r
197 <mml:mi>&delta;P.t</mml:mi>\r
198 <mml:mi>&delta;x</mml:mi>\r
199 </mml:mfrac>\r
200 <mml:mi> otherwise</mml:mi>\r
201 </mml:math></inlineequation>\r
202 </para>\r
203 <para>\r
204 <inlineequation><mml:math>\r
205 <mml:mfrac>\r
206 <mml:mi>&delta;t</mml:mi>\r
207 <mml:mi>&delta;y</mml:mi>\r
208 </mml:mfrac>\r
209 <mml:mo>=</mml:mo>\r
210 <mml:mn>0.0</mml:mn>\r
211 <mml:mi>&nbsp; for a 1D texture,&nbsp; </mml:mi>\r
212 <mml:mfrac>\r
213 <mml:mi>&delta;P.t</mml:mi>\r
214 <mml:mi>&delta;y</mml:mi>\r
215 </mml:mfrac>\r
216 <mml:mi>&nbsp; otherwise</mml:mi>\r
217 </mml:math></inlineequation>\r
218 </para>\r
219 <para>\r
220 <inlineequation><mml:math>\r
221 <mml:mfrac>\r
222 <mml:mi>&delta;r</mml:mi>\r
223 <mml:mi>&delta;x</mml:mi>\r
224 </mml:mfrac>\r
225 <mml:mo>=</mml:mo>\r
226 <mml:mn>0.0</mml:mn>\r
227 <mml:mi>&nbsp; for a 1D or 2D texture,&nbsp; </mml:mi>\r
228 <mml:mfrac>\r
229 <mml:mi>&delta;P.p</mml:mi>\r
230 <mml:mi>&delta;x</mml:mi>\r
231 </mml:mfrac>\r
232 <mml:mi>&nbsp; otherwise</mml:mi>\r
233 </mml:math></inlineequation>\r
234 </para>\r
235 <para>\r
236 <inlineequation><mml:math>\r
237 <mml:mfrac>\r
238 <mml:mi>&delta;r</mml:mi>\r
239 <mml:mi>&delta;y</mml:mi>\r
240 </mml:mfrac>\r
241 <mml:mo>=</mml:mo>\r
242 <mml:mn>0.0</mml:mn>\r
243 <mml:mi>&nbsp; for a 1D or 2D texture,&nbsp; </mml:mi>\r
244 <mml:mfrac>\r
245 <mml:mi>&delta;P.p</mml:mi>\r
246 <mml:mi>&delta;y</mml:mi>\r
247 </mml:mfrac>\r
248 <mml:mi>&nbsp; otherwise</mml:mi>\r
249 </mml:math></inlineequation>\r
250 </para>\r
251 <para>\r
252 For the cube version, the partial derivatives of <parameter>P</parameter> are assumed to be\r
253 in the coordinate system used before texture coordinates are projected onto the appropriate\r
254 cube face.\r
255 </para>\r
256 </refsect1>\r
257 <refsect1 id="versions"><title>Version Support</title>\r
258 <informaltable frame="topbot">\r
259 #VARTABLECOLS#\r
260 <thead>\r
261 #FUNCTABLEHEADER#\r
262 <row>\r
263 <entry>textureGrad</entry>#newin13#\r
264 </row>\r
265 <row>\r
266 <entry>textureGrad (gsampler2DRect{Shadow})</entry>#newin14#\r
267 </row>\r
268 <row>\r
269 <entry>textureGrad (gsamplerCubeArray)</entry>#newin40#\r
270 </row>\r
271 </thead>\r
272 </tgroup>\r
273 </informaltable>\r
274 </refsect1>\r
275 <refsect1 id="seealso"><title>See Also</title>\r
276 <para>\r
277 <citerefentry><refentrytitle>texelFetch</refentrytitle></citerefentry>,\r
278 <citerefentry><refentrytitle>texelFetchOffset</refentrytitle></citerefentry>,\r
279 <citerefentry><refentrytitle>texture</refentrytitle></citerefentry>,\r
280 <citerefentry><refentrytitle>textureGather</refentrytitle></citerefentry>,\r
281 <citerefentry><refentrytitle>textureGatherOffset</refentrytitle></citerefentry>,\r
282 <citerefentry><refentrytitle>textureGatherOffsets</refentrytitle></citerefentry>,\r
283 <citerefentry><refentrytitle>textureGradOffset</refentrytitle></citerefentry>,\r
284 <citerefentry><refentrytitle>textureLod</refentrytitle></citerefentry>,\r
285 <citerefentry><refentrytitle>textureLodOffset</refentrytitle></citerefentry>,\r
286 <citerefentry><refentrytitle>textureOffset</refentrytitle></citerefentry>,\r
287 <citerefentry><refentrytitle>textureProj</refentrytitle></citerefentry>,\r
288 <citerefentry><refentrytitle>textureProjGrad</refentrytitle></citerefentry>,\r
289 <citerefentry><refentrytitle>textureProjGradOffset</refentrytitle></citerefentry>,\r
290 <citerefentry><refentrytitle>textureProjLod</refentrytitle></citerefentry>,\r
291 <citerefentry><refentrytitle>textureProjLodOffset</refentrytitle></citerefentry>,\r
292 <citerefentry><refentrytitle>textureProjOffset</refentrytitle></citerefentry>,\r
293 <citerefentry><refentrytitle>textureQueryLod</refentrytitle></citerefentry>,\r
294 <citerefentry><refentrytitle>textureSize</refentrytitle></citerefentry>\r
295 </para>\r
296 </refsect1>\r
297 <refsect1 id="Copyright"><title>Copyright</title>\r
298 <para>\r
299 Copyright <trademark class="copyright"></trademark> 2011 Khronos Group. \r
300 This material may be distributed subject to the terms and conditions set forth in \r
301 the Open Publication License, v 1.0, 8 June 1999.\r
302 <ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.\r
303 </para>\r
304 </refsect1>\r
305</refentry>\r