File: glCopyBufferSubData.xml

package info (click to toggle)
khronos-opengl-man4 1.0~svn27841-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 24,888 kB
  • ctags: 377
  • sloc: xml: 188,408; makefile: 1,153; python: 736; sh: 49; php: 7; sed: 2
file content (246 lines) | stat: -rw-r--r-- 11,661 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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
<!DOCTYPE refentry [ <!ENTITY % mathent SYSTEM "math.ent"> %mathent; ]>

<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="glCopyBufferSubData">
    <info>
        <copyright>
            <year>2010-2014</year>
            <holder>Khronos Group</holder>
        </copyright>
    </info>
    <refmeta>
        <refentrytitle>glCopyBufferSubData</refentrytitle>
        <manvolnum>3G</manvolnum>
    </refmeta>
    <refnamediv>
        <refname>glCopyBufferSubData</refname>
        <refname>glCopyNamedBufferSubData</refname>
        <refpurpose>copy all or part of the data store of a buffer object to the data store of another buffer object</refpurpose>
    </refnamediv>
    <refsynopsisdiv><title>C Specification</title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glCopyBufferSubData</function></funcdef>
                <paramdef>GLenum <parameter>readTarget</parameter></paramdef>
                <paramdef>GLenum <parameter>writeTarget</parameter></paramdef>
                <paramdef>GLintptr <parameter>readOffset</parameter></paramdef>
                <paramdef>GLintptr <parameter>writeOffset</parameter></paramdef>
                <paramdef>GLsizeiptr <parameter>size</parameter></paramdef>
            </funcprototype>
            <funcprototype>
                <funcdef>void <function>glCopyNamedBufferSubData</function></funcdef>
                <paramdef>GLuint <parameter>readBuffer</parameter></paramdef>
                <paramdef>GLuint <parameter>writeBuffer</parameter></paramdef>
                <paramdef>GLintptr <parameter>readOffset</parameter></paramdef>
                <paramdef>GLintptr <parameter>writeOffset</parameter></paramdef>
                <paramdef>GLsizei <parameter>size</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
    </refsynopsisdiv>
    <refsect1 xml:id="parameters"><title>Parameters</title>
        <variablelist>
        <varlistentry>
            <term><parameter>readTarget</parameter></term>
            <listitem>
                <para>
                    Specifies the target to which the source buffer object
                    is bound for <function>glCopyBufferSubData</function>
                </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term><parameter>writeTarget</parameter></term>
            <listitem>
                <para>
                    Specifies the target to which the destination buffer
                    object is bound for
                    <function>glCopyBufferSubData</function>.
                </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term><parameter>readBuffer</parameter></term>
            <listitem>
                <para>
                    Specifies the name of the source buffer object for
                    <function>glCopyNamedBufferSubData</function>.
                </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term><parameter>writeBuffer</parameter></term>
            <listitem>
                <para>
                    Specifies the name of the destination buffer object for
                    <function>glCopyNamedBufferSubData</function>.
                </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term><parameter>readOffset</parameter></term>
            <listitem>
                <para>
                    Specifies the offset, in basic machine units, within the
                    data store of the source buffer object at which data
                    will be read.
                </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term><parameter>writeOffset</parameter></term>
            <listitem>
                <para>
                    Specifies the offset, in basic machine units, within the
                    data store of the destination buffer object at which
                    data will be written.
                </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term><parameter>size</parameter></term>
            <listitem>
                <para>
                    Specifies the size, in basic machine units, of the data
                    to be copied from the source buffer object to the
                    destination buffer object.
                </para>
            </listitem>
        </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1 xml:id="description"><title>Description</title>
        <para>
            <function>glCopyBufferSubData</function> and
            <function>glCopyNamedBufferSubData</function> copy part of the
            data store attached to a source buffer object to the data store
            attached to a destination buffer object. The number of basic
            machine units indicated by <parameter>size</parameter> is copied
            from the source at offset <parameter>readOffset</parameter> to
            the destination at <parameter>writeOffset</parameter>.
            <parameter>readOffset</parameter>,
            <parameter>writeOffset</parameter> and
            <parameter>size</parameter> are in terms of basic machine units.
        </para>
        <para>
            For <function>glCopyBufferSubData</function>,
            <parameter>readTarget</parameter> and
            <parameter>writeTarget</parameter> specify the targets to which
            the source and destination buffer objects are bound, and must
            each be one of the buffer binding targets in the following
            table:
        </para>
        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="bufferbindings.xml"/>
        <para>
            Any of these targets may be used, but the targets
            <constant>GL_COPY_READ_BUFFER</constant> and
            <constant>GL_COPY_WRITE_BUFFER</constant> are provided
            specifically to allow copies between buffers without disturbing
            other GL state.
        </para>
        <para>
            <parameter>readOffset</parameter>,
            <parameter>writeOffset</parameter> and
            <parameter>size</parameter> must all be greater than or equal to
            zero. Furthermore, $readOffset+size$ must not exceeed the size
            of the source buffer object, and $writeOffset+size$ must not
            exceeed the size of the buffer bound to
            <parameter>writeTarget</parameter>. If the source and
            destination are the same buffer object, then the source and
            destination ranges must not overlap.
        </para>
    </refsect1>
    <refsect1 xml:id="notes"><title>Notes</title>
        <para>
            The <constant>GL_DISPATCH_INDIRECT_BUFFER</constant> and
            <constant>GL_SHADER_STORAGE_BUFFER</constant> targets are
            available only if the GL version is 4.3 or greater.
        </para>
        <para>
            The <constant>GL_QUERY_BUFFER</constant> target is available
            only if the GL version is 4.4 or greater.
        </para>
    </refsect1>
    <refsect1 xml:id="errors"><title>Errors</title>
        <para>
            <constant>GL_INVALID_ENUM</constant> is generated by
            <function>glCopyBufferSubData</function> if
            <parameter>readTarget</parameter> or
            <parameter>writeTarget</parameter> is not one of the buffer
            binding targets listed above.
        </para>
        <para>
            <constant>GL_INVALID_OPERATION</constant> is generated by
            <function>glCopyBufferSubData</function> if zero is bound to
            <parameter>readTarget</parameter> or
            <parameter>writeTarget</parameter>.
        </para>
        <para>
            <constant>GL_INVALID_OPERATION</constant> is generated by
            <function>glCopyNamedBufferSubData</function> if
            <parameter>readBuffer</parameter> or
            <parameter>writeBuffer</parameter> is not the name of an
            existing buffer object.
        </para>
        <para>
            <constant>GL_INVALID_VALUE</constant> is generated if any of
            <parameter>readOffset</parameter>,
            <parameter>writeOffset</parameter> or
            <parameter>size</parameter> is negative, if $readOffset + size$
            is greater than the size of the source buffer object (its value
            of <constant>GL_BUFFER_SIZE</constant>), or if $writeOffset +
            size$ is greater than the size of the destination buffer object.
        </para>
        <para>
            <constant>GL_INVALID_VALUE</constant> is generated if the source
            and destination are the same buffer object, and the ranges
            $[readOffset,readOffset+size)$ and
            $[writeOffset,writeOffset+size)$ overlap.
        </para>
        <para>
            <constant>GL_INVALID_OPERATION</constant> is generated if either
            the source or destination buffer object is mapped with
            <citerefentry><refentrytitle>glMapBufferRange</refentrytitle></citerefentry>
            or
            <citerefentry><refentrytitle>glMapBuffer</refentrytitle></citerefentry>,
            unless they were mapped with the
            <constant>GL_MAP_PERSISTENT</constant> bit set in the
            <function>glMapBufferRange</function>
            <parameter>access</parameter> flags.
        </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>glCopyBufferSubData</function></entry>
                        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="apiversion.xml" xpointer="xpointer(/*/*[@role='31']/*)"/>
                    </row>
                    <row>
                        <entry><function>glCopyNamedBufferSubData</function></entry>
                        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="apiversion.xml" xpointer="xpointer(/*/*[@role='45']/*)"/>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
    </refsect1>
    <refsect1 xml:id="seealso"><title>See Also</title>
        <para>
            <citerefentry><refentrytitle>glGenBuffers</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glBindBuffer</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glBufferData</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glBufferSubData</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glGetBufferSubData</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glMapBuffer</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glMapBufferRange</refentrytitle></citerefentry>
        </para>
    </refsect1>
    <refsect1 xml:id="Copyright"><title>Copyright</title>
        <para>
            Copyright <trademark class="copyright"/> 2010-2014 Khronos Group.
            This material may be distributed subject to the terms and conditions set forth in
            the Open Publication License, v 1.0, 8 June 1999.
            <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://opencontent.org/openpub/">http://opencontent.org/openpub/</link>.
        </para>
    </refsect1>
</refentry>