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">
9 <holder>Silicon Graphics, Inc.
</holder>
12 <refentrytitle>glEdgeFlagPointer
</refentrytitle>
13 <manvolnum>3G
</manvolnum>
16 <refname>glEdgeFlagPointer
</refname>
17 <refpurpose>define an array of edge flags
</refpurpose>
19 <refsynopsisdiv><title>C Specification
</title>
22 <funcdef>void
<function>glEdgeFlagPointer
</function></funcdef>
23 <paramdef>GLsizei
<parameter>stride
</parameter></paramdef>
24 <paramdef>const GLvoid *
<parameter>pointer
</parameter></paramdef>
28 <!-- eqn: ignoring delim $$ -->
29 <refsect1 id=
"parameters"><title>Parameters
</title>
32 <term><parameter>stride
</parameter></term>
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.
42 <term><parameter>pointer
</parameter></term>
45 Specifies a pointer to the first edge flag in the array. The initial
52 <refsect1 id=
"description"><title>Description
</title>
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.
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>).
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.
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.
81 <refsect1 id=
"notes"><title>Notes
</title>
83 <function>glEdgeFlagPointer
</function> is available only if the GL version is
1.1 or greater.
86 Edge flags are not supported for interleaved vertex array formats
87 (see
<citerefentry><refentrytitle>glInterleavedArrays
</refentrytitle></citerefentry>).
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>
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.
102 <function>glEdgeFlagPointer
</function> is typically implemented on the client side.
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.
111 <refsect1 id=
"errors"><title>Errors
</title>
113 <constant>GL_INVALID_ENUM
</constant> is generated if
<parameter>stride
</parameter> is negative.
116 <refsect1 id=
"associatedgets"><title>Associated Gets
</title>
118 <citerefentry><refentrytitle>glIsEnabled
</refentrytitle></citerefentry> with argument
<constant>GL_EDGE_FLAG_ARRAY
</constant>
121 <citerefentry><refentrytitle>glGet
</refentrytitle></citerefentry> with argument
<constant>GL_EDGE_FLAG_ARRAY_STRIDE
</constant>
124 <citerefentry><refentrytitle>glGet
</refentrytitle></citerefentry> with argument
<constant>GL_EDGE_FLAG_ARRAY_BUFFER_BINDING
</constant>
127 <citerefentry><refentrytitle>glGet
</refentrytitle></citerefentry> with argument
<constant>GL_ARRAY_BUFFER_BINDING
</constant>
130 <citerefentry><refentrytitle>glGetPointerv
</refentrytitle></citerefentry> with argument
<constant>GL_EDGE_FLAG_ARRAY_POINTER
</constant>
133 <refsect1 id=
"seealso"><title>See Also
</title>
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>
158 <refsect1 id=
"Copyright"><title>Copyright
</title>
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>.