<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
              "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
<refentry id="glTexImage2DMultisample">
    <refentryinfo>
        <copyright>
            <year>2013</year>
            <holder>Khronos Group</holder>
        </copyright>
    </refentryinfo>
    <refmeta>
        <refentrytitle>glTexImage2DMultisample</refentrytitle>
        <manvolnum>3G</manvolnum>
    </refmeta>
    <refnamediv>
        <refname>glTexImage2DMultisample</refname>
        <refpurpose>establish the data storage, format, dimensions, and number of samples of a multisample texture's image</refpurpose>
    </refnamediv>
    <refsynopsisdiv><title>C Specification</title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexImage2DMultisample</function></funcdef>
                <paramdef>GLenum <parameter>target</parameter></paramdef>
                <paramdef>GLsizei <parameter>samples</parameter></paramdef>
                <paramdef>GLenum <parameter>internalformat</parameter></paramdef>
                <paramdef>GLsizei <parameter>width</parameter></paramdef>
                <paramdef>GLsizei <parameter>height</parameter></paramdef>
                <paramdef>GLboolean <parameter>fixedsamplelocations</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
    </refsynopsisdiv>
    <refsect1 id="parameters"><title>Parameters</title>
        <variablelist>
        <varlistentry>
            <term><parameter>target</parameter></term>
            <listitem>
                <para>
                    Specifies the target of the operation. <parameter>target</parameter> must be <constant>GL_TEXTURE_2D_MULTISAMPLE</constant> or <constant>GL_PROXY_TEXTURE_2D_MULTISAMPLE</constant>.
                </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term><parameter>samples</parameter></term>
            <listitem>
                <para>
                    The number of samples in the multisample texture's image.
                </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term><parameter>internalformat</parameter></term>
            <listitem>
                <para>
                    The internal format to be used to store the multisample texture's image. <parameter>internalformat</parameter> must specify a color-renderable, depth-renderable, or stencil-renderable format.
                </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term><parameter>width</parameter></term>
            <listitem>
                <para>
                    The width of the multisample texture's image, in texels.
                </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term><parameter>height</parameter></term>
            <listitem>
                <para>
                    The height of the multisample texture's image, in texels.
                </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term><parameter>fixedsamplelocations</parameter></term>
            <listitem>
                <para>
                    Specifies whether the image will use identical sample locations and the same number of samples for all texels in the image, and the sample locations will not
                    depend on the internal format or size of the image.
                </para>
            </listitem>
        </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1 id="description"><title>Description</title>
        <para>
            <function>glTexImage2DMultisample</function> establishes the data storage, format, dimensions and number of samples of a multisample texture's image.
        </para>
        <para>
            <parameter>target</parameter> must be
            <constant>GL_TEXTURE_2D_MULTISAMPLE</constant> or
            <constant>GL_PROXY_TEXTURE_2D_MULTISAMPLE</constant>.
            <parameter>width</parameter> and <parameter>height</parameter>
            are the dimensions in texels of the texture, and must be in the
            range zero to the value of
            <constant>GL_MAX_TEXTURE_SIZE</constant> minus one.
            <parameter>samples</parameter> specifies the number of samples
            in the image and must be in the range zero to the value of
            <constant>GL_MAX_SAMPLES</constant> minus one.
        </para>
        <para>
            <parameter>internalformat</parameter> must be a color-renderable, depth-renderable, or stencil-renderable format.
        </para>
        <para>
            If <parameter>fixedsamplelocations</parameter> is <constant>GL_TRUE</constant>, the image will use identical sample locations and the same
            number of samples for all texels in the image, and the sample locations will not depend on the internal format or size of the image.
        </para>
        <para>
            When a multisample texture is accessed in a shader, the access takes one vector of integers describing which texel to fetch and an integer
            corresponding to the sample numbers describing which sample within the texel to fetch. No standard sampling instructions are allowed on the
            multisample texture targets.
        </para>
    </refsect1>
    <refsect1 id="notes"><title>Notes</title>
        <para>
            <function>glTexImage2DMultisample</function> is available only if the GL version is 3.2 or greater.
        </para>
    </refsect1>
    <refsect1 id="errors"><title>Errors</title>
        <para>
            <constant>GL_INVALID_OPERATION</constant> is generated if <parameter>internalformat</parameter> is a depth- or stencil-renderable format and <parameter>samples</parameter>
            is greater than the value of <constant>GL_MAX_DEPTH_TEXTURE_SAMPLES</constant>.
        </para>
        <para>
            <constant>GL_INVALID_OPERATION</constant> is generated if <parameter>internalformat</parameter> is a color-renderable format and <parameter>samples</parameter> is
            greater than the value of <constant>GL_MAX_COLOR_TEXTURE_SAMPLES</constant>.
        </para>
        <para>
            <constant>GL_INVALID_OPERATION</constant> is generated if <parameter>internalformat</parameter> is a signed or unsigned integer format and <parameter>samples</parameter>
            is greater than the value of <constant>GL_MAX_INTEGER_SAMPLES</constant>.
        </para>
        <para>
            <constant>GL_INVALID_VALUE</constant> is generated if either <parameter>width</parameter> or <parameter>height</parameter> negative or is greater than <constant>GL_MAX_TEXTURE_SIZE</constant>.
        </para>
        <para>
            <constant>GL_INVALID_VALUE</constant> is generated if <parameter>samples</parameter> is greater than <constant>GL_MAX_SAMPLES</constant>.
        </para>
    </refsect1>
    <refsect1 id="seealso"><title>See Also</title>
        <para>
            <citerefentry><refentrytitle>glTexImage3D</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glTexImage2DMultisample</refentrytitle></citerefentry>
        </para>
    </refsect1>
    <refsect1 id="Copyright"><title>Copyright</title>
        <para>
            Copyright <trademark class="copyright"></trademark> 2010-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.
            <ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
        </para>
    </refsect1>
</refentry>
