<!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="glGetBufferSubData"> <info> <copyright> <year>2005</year> <holder>Sams Publishing</holder> </copyright> <copyright> <year>2011-2013</year> <holder>Khronos Group</holder> </copyright> </info> <refmeta> <refentrytitle>glGetBufferSubData</refentrytitle> <manvolnum>3G</manvolnum> </refmeta> <refnamediv> <refname>glGetBufferSubData</refname> <refpurpose>returns a subset of a buffer object's data store</refpurpose> </refnamediv> <refsynopsisdiv><title>C Specification</title> <funcsynopsis> <funcprototype> <funcdef>void <function>glGetBufferSubData</function></funcdef> <paramdef>GLenum <parameter>target</parameter></paramdef> <paramdef>GLintptr <parameter>offset</parameter></paramdef> <paramdef>GLsizeiptr <parameter>size</parameter></paramdef> <paramdef>GLvoid * <parameter>data</parameter></paramdef> </funcprototype> </funcsynopsis> </refsynopsisdiv> <refsect1 xml:id="parameters"><title>Parameters</title> <variablelist> <varlistentry> <term><parameter>target</parameter></term> <listitem> <para> Specifies the target buffer object. The symbolic constant must be <constant>GL_ARRAY_BUFFER</constant>, <constant>GL_ATOMIC_COUNTER_BUFFER</constant>, <constant>GL_COPY_READ_BUFFER</constant>, <constant>GL_COPY_WRITE_BUFFER</constant>, <constant>GL_DRAW_INDIRECT_BUFFER</constant>, <constant>GL_DISPATCH_INDIRECT_BUFFER</constant>, <constant>GL_ELEMENT_ARRAY_BUFFER</constant>, <constant>GL_PIXEL_PACK_BUFFER</constant>, <constant>GL_PIXEL_UNPACK_BUFFER</constant>, <constant>GL_QUERY_RESULT_BUFFER</constant>, <constant>GL_TEXTURE_BUFFER</constant>, <constant>GL_TRANSFORM_FEEDBACK_BUFFER</constant>, or <constant>GL_UNIFORM_BUFFER</constant>. </para> </listitem> </varlistentry> <varlistentry> <term><parameter>offset</parameter></term> <listitem> <para> Specifies the offset into the buffer object's data store from which data will be returned, measured in bytes. </para> </listitem> </varlistentry> <varlistentry> <term><parameter>size</parameter></term> <listitem> <para> Specifies the size in bytes of the data store region being returned. </para> </listitem> </varlistentry> <varlistentry> <term><parameter>data</parameter></term> <listitem> <para> Specifies a pointer to the location where buffer object data is returned. </para> </listitem> </varlistentry> </variablelist> </refsect1> <refsect1 xml:id="description"><title>Description</title> <para> <function>glGetBufferSubData</function> returns some or all of the data from the buffer object currently bound to <parameter>target</parameter>. Data starting at byte offset <parameter>offset</parameter> and extending for <parameter>size</parameter> bytes is copied from the data store to the memory pointed to by <parameter>data</parameter>. An error is thrown if the buffer object is currently mapped, or if <parameter>offset</parameter> and <parameter>size</parameter> together define a range beyond the bounds of the buffer object's data store. </para> </refsect1> <refsect1 xml:id="notes"><title>Notes</title> <para> If an error is generated, no change is made to the contents of <parameter>data</parameter>. </para> <para> The <constant>GL_ATOMIC_COUNTER_BUFFER</constant> target is available only if the GL version is 4.2 or greater. </para> <para> The <constant>GL_DISPATCH_INDIRECT_BUFFER</constant> target is available only if the GL version is 4.3 or greater. </para> <para> The <constant>GL_QUERY_RESULT_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 if <parameter>target</parameter> is not <constant>GL_ARRAY_BUFFER</constant>, <constant>GL_ELEMENT_ARRAY_BUFFER</constant>, <constant>GL_PIXEL_PACK_BUFFER</constant>, or <constant>GL_PIXEL_UNPACK_BUFFER</constant>. </para> <para> <constant>GL_INVALID_VALUE</constant> is generated if <parameter>offset</parameter> or <parameter>size</parameter> is negative, or if together they define a region of memory that extends beyond the buffer object's allocated data store. </para> <para> <constant>GL_INVALID_OPERATION</constant> is generated if the reserved buffer object name 0 is bound to <parameter>target</parameter>. </para> <para> <constant>GL_INVALID_OPERATION</constant> is generated if the buffer object being queried is mapped. </para> </refsect1> <refsect1 xml:id="seealso"><title>See Also</title> <para> <citerefentry><refentrytitle>glBindBuffer</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glBufferData</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glBufferSubData</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glMapBuffer</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glUnmapBuffer</refentrytitle></citerefentry> </para> </refsect1> <refsect1 xml:id="Copyright"><title>Copyright</title> <para> Copyright <trademark class="copyright"/> 2005 Addison-Wesley. Copyright <trademark class="copyright"/> 2011-2013 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>