<!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="glRenderbufferStorage">
  <info>
    <copyright>
      <year>2010-2014</year>

      <holder>Khronos Group</holder>
    </copyright>
  </info>

  <refmeta>
    <refentrytitle>glRenderbufferStorage</refentrytitle>

    <manvolnum>3G</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>glRenderbufferStorage</refname>

    <refname>glNamedRenderbufferStorage</refname>

    <refpurpose>establish data storage, format and dimensions of a
    renderbuffer object's image</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <title>C Specification</title>

    <funcsynopsis>
      <funcprototype>
        <funcdef>void <function>glRenderbufferStorage</function></funcdef>

        <paramdef>GLenum <parameter>target</parameter></paramdef>

        <paramdef>GLenum <parameter>internalformat</parameter></paramdef>

        <paramdef>GLsizei <parameter>width</parameter></paramdef>

        <paramdef>GLsizei <parameter>height</parameter></paramdef>
      </funcprototype>

      <funcprototype>
        <funcdef>void <function>glNamedRenderbufferStorage</function></funcdef>

        <paramdef>GLuint <parameter>renderbuffer</parameter></paramdef>

        <paramdef>GLenum <parameter>internalformat</parameter></paramdef>

        <paramdef>GLsizei <parameter>width</parameter></paramdef>

        <paramdef>GLsizei <parameter>height</parameter></paramdef>
      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>

  <refsect1 xml:id="parameters">
    <title>Parameters</title>

    <variablelist>
      <varlistentry>
        <term><parameter>target</parameter></term>

        <listitem>
          <para>Specifies a binding target of the allocation for
          <function>glRenderbufferStorage</function> function. Must be
          <constant>GL_RENDERBUFFER</constant>.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>renderbuffer</parameter></term>

        <listitem>
          <para>Specifies the name of the renderbuffer object for
          <function>glNamedRenderbufferStorage</function> function.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>internalformat</parameter></term>

        <listitem>
          <para>Specifies the internal format to use for the renderbuffer
          object's image.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>width</parameter></term>

        <listitem>
          <para>Specifies the width of the renderbuffer, in pixels.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>height</parameter></term>

        <listitem>
          <para>Specifies the height of the renderbuffer, in pixels.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1 xml:id="description">
    <title>Description</title>

    <para><function>glRenderbufferStorage</function> is equivalent to calling
    <citerefentry><refentrytitle>glRenderbufferStorageMultisample</refentrytitle></citerefentry>
    with the <parameter>samples</parameter> set to zero, and
    <function>glNamedRenderbufferStorage</function> is equivalent to calling
    <function>glNamedRenderbufferStorageMultisample</function> with the
    samples set to zero.</para>

    <para>For <function>glRenderbufferStorage</function>, the target of the
    operation, specified by <parameter>target</parameter> must be
    <constant>GL_RENDERBUFFER</constant>. For
    <function>glNamedRenderbufferStorage</function>,
    <parameter>renderbuffer</parameter> must be a name of an existing
    renderbuffer object. <parameter>internalformat</parameter> specifies the
    internal format to be used for the renderbuffer object's storage and must
    be a color-renderable, depth-renderable, or stencil-renderable format.
    <parameter>width</parameter> and <parameter>height</parameter> are the
    dimensions, in pixels, of the renderbuffer. Both
    <parameter>width</parameter> and <parameter>height</parameter> must be
    less than or equal to the value of
    <constant>GL_MAX_RENDERBUFFER_SIZE</constant>.</para>

    <para>Upon success, <function>glRenderbufferStorage</function> and
    <function>glNamedRenderbufferStorage</function> delete any existing data
    store for the renderbuffer image and the contents of the data store after
    calling <function>glRenderbufferStorage</function> are undefined.</para>
  </refsect1>

  <refsect1 xml:id="errors">
    <title>Errors</title>

    <para><constant>GL_INVALID_ENUM</constant> is generated by
    <function>glRenderbufferStorage</function> if
    <parameter>target</parameter> is not
    <constant>GL_RENDERBUFFER</constant>.</para>

    <para><constant>GL_INVALID_OPERATION</constant> is generated by
    glNamedRenderbufferStorage if <parameter>renderbuffer</parameter> is not
    the name of an existing renderbuffer object.</para>

    <para><constant>GL_INVALID_VALUE</constant> is generated if either of
    <parameter>width</parameter> or <parameter>height</parameter> is negative,
    or greater than the value of
    <constant>GL_MAX_RENDERBUFFER_SIZE</constant>.</para>

    <para><constant>GL_INVALID_ENUM</constant> is generated if
    <parameter>internalformat</parameter> is not a color-renderable,
    depth-renderable, or stencil-renderable format.</para>

    <para><constant>GL_OUT_OF_MEMORY</constant> is generated if the GL is
    unable to create a data store of the requested size.</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>glNamedRenderbufferStorage</function></entry>
                        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="apiversion.xml" xpointer="xpointer(/*/*[@role='45']/*)"/>
                    </row>
                    <row>
                        <entry><function>glRenderbufferStorage</function></entry>
                        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="apiversion.xml" xpointer="xpointer(/*/*[@role='30']/*)"/>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
    </refsect1>

  <refsect1 xml:id="seealso">
    <title>See Also</title>

    <para>
        <citerefentry><refentrytitle>glGenRenderbuffers</refentrytitle></citerefentry>,
        <citerefentry><refentrytitle>glBindRenderbuffer</refentrytitle></citerefentry>,
        <!-- FIX: link to glRenderbufferStorageMultisample --> <function>glNamedRenderbufferStorageMultisample</function>,
        <citerefentry><refentrytitle>glRenderbufferStorageMultisample</refentrytitle></citerefentry>,
        <citerefentry><refentrytitle>glFramebufferRenderbuffer</refentrytitle></citerefentry>,
        <citerefentry><refentrytitle>glDeleteRenderbuffers</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>
