File: glMultiDrawArrays.xml

package info (click to toggle)
khronos-opengl-man4 1.0~svn33624-3
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 6,304 kB
  • sloc: xml: 93,066; makefile: 730; python: 627; javascript: 55; sh: 50; php: 4
file content (158 lines) | stat: -rw-r--r-- 7,261 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<!DOCTYPE refentry [ <!ENTITY % mathent SYSTEM "math.ent"> %mathent; ]>

<!-- Converted by db4-upgrade version 1.1 -->

<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="glMultiDrawArrays">
    <info>
        <copyright>
            <year>2010-2014</year>
            <holder>Khronos Group</holder>
        </copyright>
    </info>
    <refmeta>
        <refentrytitle>glMultiDrawArrays</refentrytitle>
        <manvolnum>3G</manvolnum>
    </refmeta>
    <refnamediv>
        <refname>glMultiDrawArrays</refname>
        <refpurpose>render multiple sets of primitives from array data</refpurpose>
    </refnamediv>
    <refsynopsisdiv><title>C Specification</title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glMultiDrawArrays</function></funcdef>
                <paramdef>GLenum <parameter>mode</parameter></paramdef>
                <paramdef>const GLint * <parameter>first</parameter></paramdef>
                <paramdef>const GLsizei * <parameter>count</parameter></paramdef>
                <paramdef>GLsizei <parameter>drawcount</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
    </refsynopsisdiv>
    <refsect1 xml:id="parameters"><title>Parameters</title>
        <variablelist>
        <varlistentry>
            <term><parameter>mode</parameter></term>
            <listitem>
                <para>
                    Specifies what kind of primitives to render.
                    Symbolic constants
                    <constant>GL_POINTS</constant>,
                    <constant>GL_LINE_STRIP</constant>,
                    <constant>GL_LINE_LOOP</constant>,
                    <constant>GL_LINES</constant>,
                    <constant>GL_LINE_STRIP_ADJACENCY</constant>,
                    <constant>GL_LINES_ADJACENCY</constant>,
                    <constant>GL_TRIANGLE_STRIP</constant>,
                    <constant>GL_TRIANGLE_FAN</constant>,
                    <constant>GL_TRIANGLES</constant>,
                    <constant>GL_TRIANGLE_STRIP_ADJACENCY</constant>,
                    <constant>GL_TRIANGLES_ADJACENCY</constant> and <constant>GL_PATCHES</constant>
                    are accepted.
                </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term><parameter>first</parameter></term>
            <listitem>
                <para>
                    Points to an array of starting indices in the enabled arrays.
                </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term><parameter>count</parameter></term>
            <listitem>
                <para>
                    Points to an array of the number of indices to be rendered.
                </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term><parameter>drawcount</parameter></term>
            <listitem>
                <para>
                    Specifies the size of the first and count
                </para>
            </listitem>
        </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1 xml:id="description"><title>Description</title>
        <para>
            <function>glMultiDrawArrays</function> specifies multiple sets of geometric primitives
            with very few subroutine calls. Instead of calling a GL procedure
            to pass each individual vertex, normal, texture coordinate, edge
            flag, or color, you can prespecify
            separate arrays of vertices, normals, and colors and use them to
            construct a sequence of primitives with a single
            call to <function>glMultiDrawArrays</function>.
        </para>
        <para>
            <function>glMultiDrawArrays</function> behaves identically to <citerefentry><refentrytitle>glDrawArrays</refentrytitle></citerefentry> except that <parameter>drawcount</parameter>
            separate ranges of elements are specified instead.
        </para>
        <para>
            When <function>glMultiDrawArrays</function> is called, it uses <parameter>count</parameter> sequential elements from each
            enabled array to construct a sequence of geometric primitives,
            beginning with element <parameter>first</parameter>. <parameter>mode</parameter> specifies what kind of
            primitives are constructed, and how the array elements
            construct those primitives.
        </para>
        <para>
            Vertex attributes that are modified by <function>glMultiDrawArrays</function> have an
            unspecified value after <function>glMultiDrawArrays</function> returns. Attributes that aren't
            modified remain well defined.
        </para>
    </refsect1>
    <refsect1 xml:id="notes"><title>Notes</title>
        <para>
            <constant>GL_LINE_STRIP_ADJACENCY</constant>,
            <constant>GL_LINES_ADJACENCY</constant>,
            <constant>GL_TRIANGLE_STRIP_ADJACENCY</constant> and
            <constant>GL_TRIANGLES_ADJACENCY</constant>
            are available only if the GL version is 3.2 or greater.
        </para>
    </refsect1>
    <refsect1 xml:id="errors"><title>Errors</title>
        <para>
            <constant>GL_INVALID_ENUM</constant> is generated if <parameter>mode</parameter> is not an accepted value.
        </para>
        <para>
            <constant>GL_INVALID_VALUE</constant> is generated if <parameter>drawcount</parameter> is negative.
        </para>
        <para>
            <constant>GL_INVALID_OPERATION</constant> is generated if a non-zero buffer object name is bound to an
            enabled array and the buffer object's data store is currently mapped.
        </para>
    </refsect1>
    <refsect1 xml:id="versions"><title>Version Support</title>
        <informaltable>
            <tgroup cols="13" align="left">
                <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="apifunchead.xml" xpointer="xpointer(/*/*)"/>
                <tbody>
                    <row>
                        <entry><function>glMultiDrawArrays</function></entry>
                        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="apiversion.xml" xpointer="xpointer(/*/*[@role='20']/*)"/>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
    </refsect1>
    <refsect1 xml:id="seealso"><title>See Also</title>
        <para>
            <citerefentry><refentrytitle>glDrawElements</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glDrawRangeElements</refentrytitle></citerefentry>
        </para>
    </refsect1>
    <refsect1 xml:id="Copyright"><title>Copyright</title>
        <para>
            Copyright <trademark class="copyright"/> 1991-2006
            Silicon Graphics, Inc.
            Copyright <trademark class="copyright"/> 2010-2014
            Khronos Group.
            This document is licensed under the SGI
            Free Software B License. For details, see
            <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</link>.
        </para>
    </refsect1>
</refentry>