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=
"glViewportIndexed">
9 <holder>Khronos Group
</holder>
12 <refentrytitle>glViewportIndexed
</refentrytitle>
13 <manvolnum>3G
</manvolnum>
16 <refname>glViewportIndexed
</refname>
17 <refpurpose>set a specified viewport
</refpurpose>
19 <refsynopsisdiv><title>C Specification
</title>
22 <funcdef>void
<function>glViewportIndexedf
</function></funcdef>
23 <paramdef>GLuint
<parameter>index
</parameter></paramdef>
24 <paramdef>GLfloat
<parameter>x
</parameter></paramdef>
25 <paramdef>GLfloat
<parameter>y
</parameter></paramdef>
26 <paramdef>GLfloat
<parameter>w
</parameter></paramdef>
27 <paramdef>GLfloat
<parameter>h
</parameter></paramdef>
32 <funcdef>void
<function>glViewportIndexedfv
</function></funcdef>
33 <paramdef>GLuint
<parameter>index
</parameter></paramdef>
34 <paramdef>const GLfloat *
<parameter>v
</parameter></paramdef>
38 <!-- eqn: ignoring delim $$ -->
39 <refsect1 id=
"parameters"><title>Parameters
</title>
42 <term><parameter>index
</parameter></term>
45 Specify the first viewport to set.
50 <term><parameter>x
</parameter></term>
51 <term><parameter>y
</parameter></term>
54 For
<function>glViewportIndexedf
</function>, specifies the lower left corner of
55 the viewport rectangle, in pixels. The initial value is (
0,
0).
60 <term><parameter>width
</parameter></term>
61 <term><parameter>height
</parameter></term>
64 For
<function>glViewportIndexedf
</function>, specifies the width and height
66 When a GL context is first attached to a window,
67 <parameter>width
</parameter> and
<parameter>height
</parameter> are set to the dimensions of that
73 <term><parameter>v
</parameter></term>
76 For
<function>glViewportIndexedfv
</function>, specifies the address of an array containing the viewport parameters.
82 <refsect1 id=
"description"><title>Description
</title>
84 <function>glViewportIndexedf
</function> and
<function>glViewportIndexedfv
</function>
85 specify the parameters for a single viewport.
86 <parameter>index
</parameter> specifies the index of the viewport
88 <parameter>index
</parameter> must be less than the value of
<constant>GL_MAX_VIEWPORTS
</constant>.
89 For
<function>glViewportIndexedf
</function>,
<parameter>x
</parameter>,
<parameter>y
</parameter>,
90 <parameter>w
</parameter>, and
<parameter>h
</parameter> specify the left, bottom, width and height
91 of the viewport in pixels, respectively.
92 For
<function>glViewportIndexedfv
</function>,
<parameter>v
</parameter> contains the address of an array of floating
93 point values specifying the
94 left (
<inlineequation><mml:math><mml:mi mathvariant=
"italic">x
</mml:mi></mml:math></inlineequation>),
95 bottom (
<inlineequation><mml:math><mml:mi mathvariant=
"italic">y
</mml:mi></mml:math></inlineequation>),
96 width (
<inlineequation><mml:math><mml:mi mathvariant=
"italic">w
</mml:mi></mml:math></inlineequation>),
97 and height (
<inlineequation><mml:math><mml:mi mathvariant=
"italic">h
</mml:mi></mml:math></inlineequation>)
98 of each viewport, in that order.
<inlineequation><mml:math><mml:mi mathvariant=
"italic">x
</mml:mi></mml:math></inlineequation>
99 and
<inlineequation><mml:math><mml:mi mathvariant=
"italic">y
</mml:mi></mml:math></inlineequation> give
100 the location of the viewport's lower left corner, and
101 <inlineequation><mml:math><mml:mi mathvariant=
"italic">w
</mml:mi></mml:math></inlineequation>
102 and
<inlineequation><mml:math><mml:mi mathvariant=
"italic">h
</mml:mi></mml:math></inlineequation>
103 give the width and height of the viewport, respectively.
104 The viewport specifies the affine transformation of
105 <inlineequation><mml:math><mml:mi mathvariant=
"italic">x
</mml:mi></mml:math></inlineequation>
107 <inlineequation><mml:math><mml:mi mathvariant=
"italic">y
</mml:mi></mml:math></inlineequation>
109 normalized device coordinates to window coordinates.
111 <inlineequation><mml:math>
112 <!-- eqn: (x sub nd, y sub nd): -->
113 <mml:mfenced open=
"(" close=
")">
114 <mml:msub><mml:mi mathvariant=
"italic">x
</mml:mi>
115 <mml:mi mathvariant=
"italic">nd
</mml:mi>
117 <mml:msub><mml:mi mathvariant=
"italic">y
</mml:mi>
118 <mml:mi mathvariant=
"italic">nd
</mml:mi>
121 </mml:math></inlineequation>
122 be normalized device coordinates.
123 Then the window coordinates
124 <inlineequation><mml:math>
125 <!-- eqn: (x sub w, y sub w): -->
126 <mml:mfenced open=
"(" close=
")">
127 <mml:msub><mml:mi mathvariant=
"italic">x
</mml:mi>
128 <mml:mi mathvariant=
"italic">w
</mml:mi>
130 <mml:msub><mml:mi mathvariant=
"italic">y
</mml:mi>
131 <mml:mi mathvariant=
"italic">w
</mml:mi>
134 </mml:math></inlineequation>
135 are computed as follows:
138 <informalequation><mml:math>
139 <!-- eqn: x sub w = ( x sub nd + 1 ) left ( width over 2 right ) + x: -->
141 <mml:msub><mml:mi mathvariant=
"italic">x
</mml:mi>
142 <mml:mi mathvariant=
"italic">w
</mml:mi>
146 <mml:mfenced open=
"(" close=
")">
148 <mml:msub><mml:mi mathvariant=
"italic">x
</mml:mi>
149 <mml:mi mathvariant=
"italic">nd
</mml:mi>
155 <mml:mo>⁢</mml:mo>
156 <mml:mfenced open=
"(" close=
")">
158 <mml:mi mathvariant=
"italic">width
</mml:mi>
163 <mml:mi mathvariant=
"italic">x
</mml:mi>
166 </mml:math></informalequation>
169 <informalequation><mml:math>
170 <!-- eqn: y sub w = ( y sub nd + 1 ) left ( height over 2 right ) + y: -->
172 <mml:msub><mml:mi mathvariant=
"italic">y
</mml:mi>
173 <mml:mi mathvariant=
"italic">w
</mml:mi>
177 <mml:mfenced open=
"(" close=
")">
179 <mml:msub><mml:mi mathvariant=
"italic">y
</mml:mi>
180 <mml:mi mathvariant=
"italic">nd
</mml:mi>
186 <mml:mo>⁢</mml:mo>
187 <mml:mfenced open=
"(" close=
")">
189 <mml:mi mathvariant=
"italic">height
</mml:mi>
194 <mml:mi mathvariant=
"italic">y
</mml:mi>
197 </mml:math></informalequation>
200 The location of the viewport's bottom left corner, given by
201 (
<inlineequation><mml:math><mml:mi mathvariant=
"italic">x
</mml:mi></mml:math></inlineequation>,
<inlineequation><mml:math><mml:mi mathvariant=
"italic">y
</mml:mi></mml:math></inlineequation>)
202 is clamped to be within the implementaiton-dependent viewport bounds range.
203 The viewport bounds range [
<inlineequation><mml:math><mml:mi mathvariant=
"italic">min
</mml:mi></mml:math></inlineequation>,
<inlineequation><mml:math><mml:mi mathvariant=
"italic">max
</mml:mi></mml:math></inlineequation>]
204 can be determined by calling
<citerefentry><refentrytitle>glGet
</refentrytitle></citerefentry> with argument
205 <constant>GL_VIEWPORT_BOUNDS_RANGE
</constant>.
206 Viewport width and height are silently clamped
207 to a range that depends on the implementation.
208 To query this range, call
<citerefentry><refentrytitle>glGet
</refentrytitle></citerefentry> with argument
209 <constant>GL_MAX_VIEWPORT_DIMS
</constant>.
212 The precision with which the GL interprets the floating point viewport bounds is implementation-dependent
213 and may be determined by querying the impementation-defined constant
<constant>GL_VIEWPORT_SUBPIXEL_BITS
</constant>.
216 Calling
<function>glViewportIndexedfv
</function> is equivalent to calling
<citerefentry><refentrytitle>glViewportArray
</refentrytitle></citerefentry>
217 with
<parameter>first
</parameter> set to
<parameter>index
</parameter>,
<parameter>count
</parameter> set to
218 1 and
<parameter>v
</parameter> passsed directly.
<function>glViewportIndexedf
</function> is equivalent
221 <programlisting><![CDATA[ void glViewportIndexedf(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h)
223 const float v[
4] = { x, y, w, h };
224 glViewportArrayv(index,
1, v);
225 }]]
></programlisting>
227 <refsect1 id=
"errors"><title>Errors
</title>
229 <constant>GL_INVALID_VALUE
</constant> is generated if
<parameter>index
</parameter> is greater than or equal to
230 the value of
<constant>GL_MAX_VIEWPORTS
</constant>.
233 <constant>GL_INVALID_VALUE
</constant> is generated if either
<parameter>width
</parameter> or
<parameter>height
</parameter> is negative.
236 <refsect1 id=
"associatedgets"><title>Associated Gets
</title>
238 <citerefentry><refentrytitle>glGet
</refentrytitle></citerefentry> with argument
<constant>GL_VIEWPORT
</constant>
241 <citerefentry><refentrytitle>glGet
</refentrytitle></citerefentry> with argument
<constant>GL_MAX_VIEWPORT_DIMS
</constant>
244 <citerefentry><refentrytitle>glGet
</refentrytitle></citerefentry> with argument
<constant>GL_VIEWPORT_BOUNDS_RANGE
</constant>
247 <citerefentry><refentrytitle>glGet
</refentrytitle></citerefentry> with argument
<constant>GL_VIEWPORT_SUBPIXEL_BITS
</constant>
250 <refsect1 id=
"seealso"><title>See Also
</title>
252 <citerefentry><refentrytitle>glDepthRange
</refentrytitle></citerefentry>,
253 <citerefentry><refentrytitle>glViewport
</refentrytitle></citerefentry>,
254 <citerefentry><refentrytitle>glViewportArray
</refentrytitle></citerefentry>
257 <refsect1 id=
"Copyright"><title>Copyright
</title>
259 Copyright
<trademark class=
"copyright"></trademark> 2010 Khronos Group.
260 This material may be distributed subject to the terms and conditions set forth in
261 the Open Publication License, v
1.0,
8 June
1999.
262 <ulink url=
"http://opencontent.org/openpub/">http://opencontent.org/openpub/
</ulink>.