NAME¶
glCopyBufferSubData - copy part of the data store of a buffer object to the data
store of another buffer object
C SPECIFICATION¶
void
glCopyBufferSubData(GLenum readtarget,
GLenum writetarget, GLintptr readoffset,
GLintptr writeoffset,
GLsizeiptr size);
PARAMETERS¶
readtarget
Specifies the target from whose data store
data should be read.
writetarget
Specifies the target to whose data store data
should be written.
readoffset
Specifies the offset, in basic machine units,
within the data store of readtarget from which data should be
read.
writeoffset
Specifies the offset, in basic machine units,
within the data store of writetarget to which data should be
written.
size
Specifies the size, in basic machine units, of
the data to be copied from readtarget to writetarget.
DESCRIPTION¶
glCopyBufferSubData copies part of the data store attached to
readtarget to the data store attached to
writetarget. The number
of basic machine units indicated by
size is copied from the source, at
offset
readoffset to the destination at
writeoffset, also in
basic machine units.
readtarget and
writetarget must be
GL_ARRAY_BUFFER,
GL_COPY_READ_BUFFER,
GL_COPY_WRITE_BUFFER,
GL_ELEMENT_ARRAY_BUFFER,
GL_PIXEL_PACK_BUFFER,
GL_PIXEL_UNPACK_BUFFER,
GL_TEXTURE_BUFFER,
GL_TRANSFORM_FEEDBACK_BUFFER or
GL_UNIFORM_BUFFER. Any of these
targets may be used, although the targets
GL_COPY_READ_BUFFER and
GL_COPY_WRITE_BUFFER are provided specifically to allow copies between
buffers without disturbing other GL state.
readoffset,
writeoffset and
size must all be greater than
or equal to zero. Furthermore,
readoffset +
size must not
exceeed the size of the buffer object bound to
readtarget, and
readoffset +
size must not exceeed the size of the buffer bound
to
writetarget. If the same buffer object is bound to both
readtarget and
writetarget, then the ranges specified by
readoffset,
writeoffset and
size must not overlap.
NOTES¶
glCopyBufferSubData is available only if the GL version is 3.1 or
greater.
ERRORS¶
GL_INVALID_VALUE is generated if any of
readoffset,
writeoffset or
size is negative, if
readoffset +
size exceeds the size of the buffer object bound to
readtarget
or if
writeoffset +
size exceeds the size of the buffer object
bound to
writetarget.
GL_INVALID_VALUE is generated if the same buffer object is bound to both
readtarget and
writetarget and the ranges [
readoffset,
readoffset +
size) and [
writeoffset,
writeoffset +
size) overlap.
GL_INVALID_OPERATION is generated if zero is bound to
readtarget
or
writetarget.
GL_INVALID_OPERATION is generated if the buffer object bound to either
readtarget or
writetarget is mapped.
SEE ALSO¶
glGenBuffers(),
glBindBuffer(),
glBufferData(),
glBufferSubData(),
glGetBufferSubData()
COPYRIGHT¶
Copyright © 2010 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.
http://opencontent.org/openpub/.