rename upstream-man-pages to upstream-doc
[clinton/guile-figl.git] / upstream-doc / man2 / glEdgeFlagPointer.xml
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="glEdgeFlagPointer">
5 <refmeta>
6 <refmetainfo>
7 <copyright>
8 <year>1991-2006</year>
9 <holder>Silicon Graphics, Inc.</holder>
10 </copyright>
11 </refmetainfo>
12 <refentrytitle>glEdgeFlagPointer</refentrytitle>
13 <manvolnum>3G</manvolnum>
14 </refmeta>
15 <refnamediv>
16 <refname>glEdgeFlagPointer</refname>
17 <refpurpose>define an array of edge flags</refpurpose>
18 </refnamediv>
19 <refsynopsisdiv><title>C Specification</title>
20 <funcsynopsis>
21 <funcprototype>
22 <funcdef>void <function>glEdgeFlagPointer</function></funcdef>
23 <paramdef>GLsizei <parameter>stride</parameter></paramdef>
24 <paramdef>const GLvoid * <parameter>pointer</parameter></paramdef>
25 </funcprototype>
26 </funcsynopsis>
27 </refsynopsisdiv>
28 <!-- eqn: ignoring delim $$ -->
29 <refsect1 id="parameters"><title>Parameters</title>
30 <variablelist>
31 <varlistentry>
32 <term><parameter>stride</parameter></term>
33 <listitem>
34 <para>
35 Specifies the byte offset between consecutive edge flags.
36 If <parameter>stride</parameter> is 0, the edge flags are understood
37 to be tightly packed in the array. The initial value is 0.
38 </para>
39 </listitem>
40 </varlistentry>
41 <varlistentry>
42 <term><parameter>pointer</parameter></term>
43 <listitem>
44 <para>
45 Specifies a pointer to the first edge flag in the array. The initial
46 value is 0.
47 </para>
48 </listitem>
49 </varlistentry>
50 </variablelist>
51 </refsect1>
52 <refsect1 id="description"><title>Description</title>
53 <para>
54 <function>glEdgeFlagPointer</function> specifies the location and data format of an array of boolean edge
55 flags to use when rendering. <parameter>stride</parameter> specifies the byte stride from one
56 edge flag to the next, allowing vertices and attributes
57 to be packed into a single array or stored in separate arrays.
58 </para>
59 <para>
60 If a non-zero named buffer object is bound to the <constant>GL_ARRAY_BUFFER</constant> target
61 (see <citerefentry><refentrytitle>glBindBuffer</refentrytitle></citerefentry>) while an edge flag array is
62 specified, <parameter>pointer</parameter> is treated as a byte offset into the buffer object's data store.
63 Also, the buffer object binding (<constant>GL_ARRAY_BUFFER_BINDING</constant>) is saved as edge flag vertex array
64 client-side state (<constant>GL_EDGE_FLAG_ARRAY_BUFFER_BINDING</constant>).
65 </para>
66 <para>
67 When an edge flag array is
68 specified, <parameter>stride</parameter> and <parameter>pointer</parameter> are saved as client-side
69 state, in addition to the current vertex array buffer object binding.
70 </para>
71 <para>
72 To enable and disable the edge flag array, call
73 <citerefentry><refentrytitle>glEnableClientState</refentrytitle></citerefentry> and <citerefentry><refentrytitle>glDisableClientState</refentrytitle></citerefentry> with the argument
74 <constant>GL_EDGE_FLAG_ARRAY</constant>. If
75 enabled, the edge flag array is used
76 when <citerefentry><refentrytitle>glDrawArrays</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glMultiDrawArrays</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glDrawElements</refentrytitle></citerefentry>,
77 <citerefentry><refentrytitle>glMultiDrawElements</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glDrawRangeElements</refentrytitle></citerefentry>, or
78 <citerefentry><refentrytitle>glArrayElement</refentrytitle></citerefentry> is called.
79 </para>
80 </refsect1>
81 <refsect1 id="notes"><title>Notes</title>
82 <para>
83 <function>glEdgeFlagPointer</function> is available only if the GL version is 1.1 or greater.
84 </para>
85 <para>
86 Edge flags are not supported for interleaved vertex array formats
87 (see <citerefentry><refentrytitle>glInterleavedArrays</refentrytitle></citerefentry>).
88 </para>
89 <para>
90 The edge flag array is initially disabled and isn't accessed when
91 <citerefentry><refentrytitle>glArrayElement</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glDrawElements</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glDrawRangeElements</refentrytitle></citerefentry>,
92 <citerefentry><refentrytitle>glDrawArrays</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glMultiDrawArrays</refentrytitle></citerefentry>, or <citerefentry><refentrytitle>glMultiDrawElements</refentrytitle></citerefentry>
93 is called.
94 </para>
95 <para>
96 Execution of <function>glEdgeFlagPointer</function> is not allowed between the execution of
97 <citerefentry><refentrytitle>glBegin</refentrytitle></citerefentry> and the corresponding execution of <citerefentry><refentrytitle>glEnd</refentrytitle></citerefentry>,
98 but an error may or may not be generated. If no error is generated,
99 the operation is undefined.
100 </para>
101 <para>
102 <function>glEdgeFlagPointer</function> is typically implemented on the client side.
103 </para>
104 <para>
105 Edge flag array parameters are client-side state and are therefore
106 not saved or restored by <citerefentry><refentrytitle>glPushAttrib</refentrytitle></citerefentry> and <citerefentry><refentrytitle>glPopAttrib</refentrytitle></citerefentry>.
107 Use <citerefentry><refentrytitle>glPushClientAttrib</refentrytitle></citerefentry> and
108 <citerefentry><refentrytitle>glPopClientAttrib</refentrytitle></citerefentry> instead.
109 </para>
110 </refsect1>
111 <refsect1 id="errors"><title>Errors</title>
112 <para>
113 <constant>GL_INVALID_ENUM</constant> is generated if <parameter>stride</parameter> is negative.
114 </para>
115 </refsect1>
116 <refsect1 id="associatedgets"><title>Associated Gets</title>
117 <para>
118 <citerefentry><refentrytitle>glIsEnabled</refentrytitle></citerefentry> with argument <constant>GL_EDGE_FLAG_ARRAY</constant>
119 </para>
120 <para>
121 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_EDGE_FLAG_ARRAY_STRIDE</constant>
122 </para>
123 <para>
124 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_EDGE_FLAG_ARRAY_BUFFER_BINDING</constant>
125 </para>
126 <para>
127 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_ARRAY_BUFFER_BINDING</constant>
128 </para>
129 <para>
130 <citerefentry><refentrytitle>glGetPointerv</refentrytitle></citerefentry> with argument <constant>GL_EDGE_FLAG_ARRAY_POINTER</constant>
131 </para>
132 </refsect1>
133 <refsect1 id="seealso"><title>See Also</title>
134 <para>
135 <citerefentry><refentrytitle>glArrayElement</refentrytitle></citerefentry>,
136 <citerefentry><refentrytitle>glBindBuffer</refentrytitle></citerefentry>,
137 <citerefentry><refentrytitle>glColorPointer</refentrytitle></citerefentry>,
138 <citerefentry><refentrytitle>glDisableClientState</refentrytitle></citerefentry>,
139 <citerefentry><refentrytitle>glDrawArrays</refentrytitle></citerefentry>,
140 <citerefentry><refentrytitle>glDrawElements</refentrytitle></citerefentry>,
141 <citerefentry><refentrytitle>glDrawRangeElements</refentrytitle></citerefentry>,
142 <citerefentry><refentrytitle>glEdgeFlag</refentrytitle></citerefentry>,
143 <citerefentry><refentrytitle>glEnableClientState</refentrytitle></citerefentry>,
144 <citerefentry><refentrytitle>glFogCoordPointer</refentrytitle></citerefentry>,
145 <citerefentry><refentrytitle>glIndexPointer</refentrytitle></citerefentry>,
146 <citerefentry><refentrytitle>glInterleavedArrays</refentrytitle></citerefentry>,
147 <citerefentry><refentrytitle>glMultiDrawArrays</refentrytitle></citerefentry>,
148 <citerefentry><refentrytitle>glMultiDrawElements</refentrytitle></citerefentry>,
149 <citerefentry><refentrytitle>glNormalPointer</refentrytitle></citerefentry>,
150 <citerefentry><refentrytitle>glPopClientAttrib</refentrytitle></citerefentry>,
151 <citerefentry><refentrytitle>glPushClientAttrib</refentrytitle></citerefentry>,
152 <citerefentry><refentrytitle>glSecondaryColorPointer</refentrytitle></citerefentry>,
153 <citerefentry><refentrytitle>glTexCoordPointer</refentrytitle></citerefentry>,
154 <citerefentry><refentrytitle>glVertexAttribPointer</refentrytitle></citerefentry>,
155 <citerefentry><refentrytitle>glVertexPointer</refentrytitle></citerefentry>
156 </para>
157 </refsect1>
158 <refsect1 id="Copyright"><title>Copyright</title>
159 <para>
160 Copyright <trademark class="copyright"></trademark> 1991-2006
161 Silicon Graphics, Inc. This document is licensed under the SGI
162 Free Software B License. For details, see
163 <ulink url="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</ulink>.
164 </para>
165 </refsect1>
166 </refentry>