15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    NV_framebuffer_multisample
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_NV_framebuffer_multisample
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContributors
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Contributors to EXT_framebuffer_multisample
125bd8deadSopenharmony_ci    Contributors from ANGLE_framebuffer_multisample
135bd8deadSopenharmony_ci
145bd8deadSopenharmony_ci    Gregory Roth, NVIDIA
155bd8deadSopenharmony_ci    Mathias Heyer, NVIDIA
165bd8deadSopenharmony_ci    Xi Chen, NVIDIA
175bd8deadSopenharmony_ci
185bd8deadSopenharmony_ciContacts
195bd8deadSopenharmony_ci
205bd8deadSopenharmony_ci    Mathias Heyer, NVIDIA (mheyer 'at' nvidia 'dot' com)
215bd8deadSopenharmony_ci
225bd8deadSopenharmony_ciStatus
235bd8deadSopenharmony_ci
245bd8deadSopenharmony_ci    Complete
255bd8deadSopenharmony_ci
265bd8deadSopenharmony_ciVersion
275bd8deadSopenharmony_ci
285bd8deadSopenharmony_ci    Last Modified Date: March 03, 2015
295bd8deadSopenharmony_ci    Author Revision: #5
305bd8deadSopenharmony_ci
315bd8deadSopenharmony_ciNumber
325bd8deadSopenharmony_ci
335bd8deadSopenharmony_ci    OpenGL ES Extension #143
345bd8deadSopenharmony_ci
355bd8deadSopenharmony_ciDependencies
365bd8deadSopenharmony_ci
375bd8deadSopenharmony_ci    Requires OpenGL ES 2.0.
385bd8deadSopenharmony_ci
395bd8deadSopenharmony_ci    Requires GL_NV_framebuffer_blit.
405bd8deadSopenharmony_ci
415bd8deadSopenharmony_ci    The extension is written against the OpenGL ES 2.0.25
425bd8deadSopenharmony_ci    (November 2, 2010) specification.
435bd8deadSopenharmony_ci
445bd8deadSopenharmony_ci    OES_texture_3D affects the definition of this extension.
455bd8deadSopenharmony_ci    NV_texture_array affects the definition of this extension.
465bd8deadSopenharmony_ci
475bd8deadSopenharmony_ci    This extension interacts with OpenGL ES 3.0 and later versions.
485bd8deadSopenharmony_ci
495bd8deadSopenharmony_ciOverview
505bd8deadSopenharmony_ci
515bd8deadSopenharmony_ci    This extension extends the framebuffer object framework to
525bd8deadSopenharmony_ci    enable multisample rendering.
535bd8deadSopenharmony_ci
545bd8deadSopenharmony_ci    The new operation RenderbufferStorageMultisampleNV() allocates
555bd8deadSopenharmony_ci    storage for a renderbuffer object that can be used as a multisample
565bd8deadSopenharmony_ci    buffer.  A multisample render buffer image differs from a
575bd8deadSopenharmony_ci    single-sample render buffer image in that a multisample image has a
585bd8deadSopenharmony_ci    number of SAMPLES that is greater than zero.  No method is provided
595bd8deadSopenharmony_ci    for creating multisample texture images.
605bd8deadSopenharmony_ci
615bd8deadSopenharmony_ci    All of the framebuffer-attachable images attached to a framebuffer
625bd8deadSopenharmony_ci    object must have the same number of SAMPLES or else the framebuffer
635bd8deadSopenharmony_ci    object is not "framebuffer complete".  If a framebuffer object with
645bd8deadSopenharmony_ci    multisample attachments is "framebuffer complete", then the
655bd8deadSopenharmony_ci    framebuffer object behaves as if SAMPLE_BUFFERS is one.
665bd8deadSopenharmony_ci
675bd8deadSopenharmony_ci    A resolve operation is executed by calling
685bd8deadSopenharmony_ci    BlitFramebufferNV (provided by the NV_framebuffer_blit
695bd8deadSopenharmony_ci    extension) where the source is a multisample framebuffer object
705bd8deadSopenharmony_ci    and the destination is a single-sample framebuffer object.
715bd8deadSopenharmony_ci    Source and destination framebuffer may be either application-created
725bd8deadSopenharmony_ci    or window-system provided.
735bd8deadSopenharmony_ci
745bd8deadSopenharmony_ciNew Procedures and Functions
755bd8deadSopenharmony_ci
765bd8deadSopenharmony_ci    void RenderbufferStorageMultisampleNV(
775bd8deadSopenharmony_ci            enum target, sizei samples,
785bd8deadSopenharmony_ci            enum internalformat,
795bd8deadSopenharmony_ci            sizei width, sizei height);
805bd8deadSopenharmony_ci
815bd8deadSopenharmony_ciNew Tokens
825bd8deadSopenharmony_ci
835bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetRenderbufferParameteriv:
845bd8deadSopenharmony_ci
855bd8deadSopenharmony_ci        RENDERBUFFER_SAMPLES_NV                     0x8CAB
865bd8deadSopenharmony_ci
875bd8deadSopenharmony_ci    Returned by CheckFramebufferStatus:
885bd8deadSopenharmony_ci
895bd8deadSopenharmony_ci        FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV       0x8D56
905bd8deadSopenharmony_ci
915bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
925bd8deadSopenharmony_ci    and GetFloatv:
935bd8deadSopenharmony_ci
945bd8deadSopenharmony_ci        MAX_SAMPLES_NV                              0x8D57
955bd8deadSopenharmony_ci
965bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL ES 2.0 Specification (Rasterization)
975bd8deadSopenharmony_ci
985bd8deadSopenharmony_ci    Add to the last paragraph of 3.7.2 (Alternate Texture Image Specification)
995bd8deadSopenharmony_ci    (as modified by NV_framebuffer_blit) the following:
1005bd8deadSopenharmony_ci
1015bd8deadSopenharmony_ci    "Calling CopyTexSubImage3DOES, CopyTexSubImage3DNV,
1025bd8deadSopenharmony_ci    CopyTexImage2D or CopyTexSubImage2D will result in INVALID_OPERATION
1035bd8deadSopenharmony_ci    being generated if the object bound to READ_FRAMEBUFFER_BINDING_NV
1045bd8deadSopenharmony_ci    is "framebuffer complete" and the value of SAMPLE_BUFFERS is greater
1055bd8deadSopenharmony_ci    than zero."
1065bd8deadSopenharmony_ci
1075bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL ES 2.0 Specification (Per-Fragment
1085bd8deadSopenharmony_ciOperations and the Framebuffer)
1095bd8deadSopenharmony_ci
1105bd8deadSopenharmony_ci    Add to 4.3.1 (Reading Pixels), right before the subsection titled
1115bd8deadSopenharmony_ci    "Obtaining Pixels from the Framebuffer":
1125bd8deadSopenharmony_ci
1135bd8deadSopenharmony_ci    "ReadPixels generates INVALID_OPERATION if READ_FRAMEBUFFER_BINDING_NV
1145bd8deadSopenharmony_ci    (section 4.4) is non-zero, the read framebuffer is framebuffer
1155bd8deadSopenharmony_ci    complete, and the value of SAMPLE_BUFFERS for the read framebuffer
1165bd8deadSopenharmony_ci    is greater than zero."
1175bd8deadSopenharmony_ci
1185bd8deadSopenharmony_ci    In 4.3.2 (Copying Pixels), add to the section describing BlitFramebufferNV
1195bd8deadSopenharmony_ci    that was added by NV_framebuffer_blit.
1205bd8deadSopenharmony_ci
1215bd8deadSopenharmony_ci    "If SAMPLE_BUFFERS for the read framebuffer is greater than zero and
1225bd8deadSopenharmony_ci    SAMPLE_BUFFERS for the draw framebuffer is zero, the samples
1235bd8deadSopenharmony_ci    corresponding to each pixel location in the source are converted to
1245bd8deadSopenharmony_ci    a single sample before being written to the destination.
1255bd8deadSopenharmony_ci
1265bd8deadSopenharmony_ci    If SAMPLE_BUFFERS for the read framebuffer is zero and
1275bd8deadSopenharmony_ci    SAMPLE_BUFFERS for the draw framebuffer is greater than zero, the
1285bd8deadSopenharmony_ci    value of the source sample is replicated in each of the destination
1295bd8deadSopenharmony_ci    samples.
1305bd8deadSopenharmony_ci
1315bd8deadSopenharmony_ci    If SAMPLE_BUFFERS for both the read and draw framebuffers are
1325bd8deadSopenharmony_ci    greater than zero, and the values of SAMPLES for the read and draw
1335bd8deadSopenharmony_ci    framebuffers are identical, the samples are copied without
1345bd8deadSopenharmony_ci    modification from the read framebuffer to the draw framebuffer.
1355bd8deadSopenharmony_ci    Otherwise, no copy is performed and an INVALID_OPERATION error is
1365bd8deadSopenharmony_ci    generated.
1375bd8deadSopenharmony_ci
1385bd8deadSopenharmony_ci    If SAMPLE_BUFFERS for the read framebuffer is greater than zero and
1395bd8deadSopenharmony_ci    the format of the read and draw framebuffers are not identical, no
1405bd8deadSopenharmony_ci    copy is performed and an INVALID_OPERATION error is generated.
1415bd8deadSopenharmony_ci
1425bd8deadSopenharmony_ci    Furthermore, if SAMPLE_BUFFERS for either the read framebuffer or
1435bd8deadSopenharmony_ci    draw framebuffer is greater than zero, no copy is performed and an
1445bd8deadSopenharmony_ci    INVALID_OPERATION error is generated if the dimensions of the source
1455bd8deadSopenharmony_ci    and destination rectangles provided to BlitFramebufferNV are not
1465bd8deadSopenharmony_ci    identical, or if the formats of the read and draw framebuffers are
1475bd8deadSopenharmony_ci    not identical.
1485bd8deadSopenharmony_ci
1495bd8deadSopenharmony_ci    Modification to 4.4.3 (Renderbuffer Objects)
1505bd8deadSopenharmony_ci
1515bd8deadSopenharmony_ci    Add, just above the definition of RenderbufferStorage:
1525bd8deadSopenharmony_ci
1535bd8deadSopenharmony_ci    "The command
1545bd8deadSopenharmony_ci
1555bd8deadSopenharmony_ci        void RenderbufferStorageMultisampleNV(
1565bd8deadSopenharmony_ci            enum target, sizei samples,
1575bd8deadSopenharmony_ci            enum internalformat,
1585bd8deadSopenharmony_ci            sizei width, sizei height);
1595bd8deadSopenharmony_ci
1605bd8deadSopenharmony_ci    establishes the data storage, format, dimensions, and number of
1615bd8deadSopenharmony_ci    samples of a renderbuffer object's image.  <target> must be
1625bd8deadSopenharmony_ci    RENDERBUFFER.  <internalformat> must be one of the color-renderable,
1635bd8deadSopenharmony_ci    depth-renderable, or stencil-renderable formats described in table 4.5.
1645bd8deadSopenharmony_ci    <width> and <height> are the dimensions in pixels of the renderbuffer.  If
1655bd8deadSopenharmony_ci    either <width> or <height> is greater than the value of
1665bd8deadSopenharmony_ci    MAX_RENDERBUFFER_SIZE, or if <samples> is greater than MAX_SAMPLES_NV,
1675bd8deadSopenharmony_ci    then the error INVALID_VALUE is generated. If OpenGL ES is unable to
1685bd8deadSopenharmony_ci    create a data store of the requested size, the error OUT_OF_MEMORY
1695bd8deadSopenharmony_ci    is generated.
1705bd8deadSopenharmony_ci
1715bd8deadSopenharmony_ci    Upon success, RenderbufferStorageMultisampleNV deletes any existing
1725bd8deadSopenharmony_ci    data store for the renderbuffer image and the contents of the data
1735bd8deadSopenharmony_ci    store after calling RenderbufferStorageMultisampleNV are undefined.
1745bd8deadSopenharmony_ci    RENDERBUFFER_WIDTH is set to <width>, RENDERBUFFER_HEIGHT is
1755bd8deadSopenharmony_ci    set to <height>, and RENDERBUFFER_INTERNAL_FORMAT is set to
1765bd8deadSopenharmony_ci    <internalformat>.
1775bd8deadSopenharmony_ci
1785bd8deadSopenharmony_ci    If <samples> is zero, then RENDERBUFFER_SAMPLES_NV is set to zero.
1795bd8deadSopenharmony_ci    Otherwise <samples> represents a request for a desired minimum
1805bd8deadSopenharmony_ci    number of samples. Since different implementations may support
1815bd8deadSopenharmony_ci    different sample counts for multisampled rendering, the actual
1825bd8deadSopenharmony_ci    number of samples allocated for the renderbuffer image is
1835bd8deadSopenharmony_ci    implementation dependent.  However, the resulting value for
1845bd8deadSopenharmony_ci    RENDERBUFFER_SAMPLES_NV is guaranteed to be greater than or equal
1855bd8deadSopenharmony_ci    to <samples> and no more than the next larger sample count supported
1865bd8deadSopenharmony_ci    by the implementation.
1875bd8deadSopenharmony_ci
1885bd8deadSopenharmony_ci    An OpenGL ES implementation may vary its allocation of internal component
1895bd8deadSopenharmony_ci    resolution based on any RenderbufferStorageMultisampleNV parameter (except
1905bd8deadSopenharmony_ci    target), but the allocation and chosen internal format must not be a
1915bd8deadSopenharmony_ci    function of any other state and cannot be changed once they are
1925bd8deadSopenharmony_ci    established. The actual resolution in bits of each component of the
1935bd8deadSopenharmony_ci    allocated image can be queried with GetRenderbufferParameteriv."
1945bd8deadSopenharmony_ci
1955bd8deadSopenharmony_ci    Modify the definiton of RenderbufferStorage as follows:
1965bd8deadSopenharmony_ci
1975bd8deadSopenharmony_ci    "The command
1985bd8deadSopenharmony_ci
1995bd8deadSopenharmony_ci        void RenderbufferStorage(enum target, enum internalformat,
2005bd8deadSopenharmony_ci                                    sizei width, sizei height);
2015bd8deadSopenharmony_ci
2025bd8deadSopenharmony_ci     is equivalent to calling RenderbufferStorageMultisampleNV with
2035bd8deadSopenharmony_ci     <samples> equal to zero."
2045bd8deadSopenharmony_ci
2055bd8deadSopenharmony_ci    In section 4.4.5 (Framebuffer Completeness) in the subsection
2065bd8deadSopenharmony_ci    titled "Framebuffer Completeness" add an entry to the bullet list:
2075bd8deadSopenharmony_ci
2085bd8deadSopenharmony_ci    * The value of RENDERBUFFER_SAMPLES_NV is the same for all attached
2095bd8deadSopenharmony_ci      images.
2105bd8deadSopenharmony_ci      { FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV }
2115bd8deadSopenharmony_ci
2125bd8deadSopenharmony_ci    Also add a paragraph to the end of the section after the definition
2135bd8deadSopenharmony_ci    of CheckFramebufferStatus:
2145bd8deadSopenharmony_ci
2155bd8deadSopenharmony_ci    "The values of SAMPLE_BUFFERS and SAMPLES are derived from the
2165bd8deadSopenharmony_ci    attachments of the currently bound framebuffer object.  If the
2175bd8deadSopenharmony_ci    current DRAW_FRAMEBUFFER_BINDING_NV is not "framebuffer complete",
2185bd8deadSopenharmony_ci    then both SAMPLE_BUFFERS and SAMPLES are undefined.  Otherwise,
2195bd8deadSopenharmony_ci    SAMPLES is equal to the value of RENDERBUFFER_SAMPLES_NV for the
2205bd8deadSopenharmony_ci    attached images (which all must have the same value for
2215bd8deadSopenharmony_ci    RENDERBUFFER_SAMPLES_NV). Further, SAMPLE_BUFFERS is one if
2225bd8deadSopenharmony_ci    SAMPLES is non-zero.  Otherwise, SAMPLE_BUFFERS is zero.
2235bd8deadSopenharmony_ci
2245bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL ES 2.0 Specification (State and State
2255bd8deadSopenharmony_ciRequests)
2265bd8deadSopenharmony_ci
2275bd8deadSopenharmony_ci    In section 6.1.3 (Enumeraged Queries), modify the third paragraph
2285bd8deadSopenharmony_ci    of the description of GetRenderbufferParameteriv as follows:
2295bd8deadSopenharmony_ci
2305bd8deadSopenharmony_ci    "Upon successful return from GetRenderbufferParameteriv, if
2315bd8deadSopenharmony_ci    <pname> is RENDERBUFFER_WIDTH, RENDERBUFFER_HEIGHT,
2325bd8deadSopenharmony_ci    RENDERBUFFER_INTERNAL_FORMAT, or RENDERBUFFER_SAMPLES_NV, then <params>
2335bd8deadSopenharmony_ci    will contain the width in pixels, height in pixels, internal format, or
2345bd8deadSopenharmony_ci    number of samples, respectively, of the image of the renderbuffer
2355bd8deadSopenharmony_ci    currently bound to <target>."
2365bd8deadSopenharmony_ci
2375bd8deadSopenharmony_ciDependencies on OpenGL ES 3.0 and later
2385bd8deadSopenharmony_ci
2395bd8deadSopenharmony_ci    If OpenGL ES 3.0 or later is supported, the described modifications to
2405bd8deadSopenharmony_ci    language for BlitFramebufferNV also apply to BlitFramebuffer:
2415bd8deadSopenharmony_ci
2425bd8deadSopenharmony_ci    (Add to the end of the section describing BlitFramebuffer)
2435bd8deadSopenharmony_ci
2445bd8deadSopenharmony_ci    "If SAMPLE_BUFFERS for the read framebuffer is zero and
2455bd8deadSopenharmony_ci    SAMPLE_BUFFERS for the draw framebuffer is greater than zero, the
2465bd8deadSopenharmony_ci    value of the source sample is replicated in each of the destination
2475bd8deadSopenharmony_ci    samples.
2485bd8deadSopenharmony_ci
2495bd8deadSopenharmony_ci    If SAMPLE_BUFFERS for both the read and draw framebuffers are
2505bd8deadSopenharmony_ci    greater than zero, and the values of SAMPLES for the read and draw
2515bd8deadSopenharmony_ci    framebuffers are identical, the samples are copied without
2525bd8deadSopenharmony_ci    modification from the read framebuffer to the draw framebuffer.
2535bd8deadSopenharmony_ci    Otherwise, no copy is performed and an INVALID_OPERATION error is
2545bd8deadSopenharmony_ci    generated."
2555bd8deadSopenharmony_ci
2565bd8deadSopenharmony_ci    (In the error list for BlitFramebuffer, modify the item "An
2575bd8deadSopenharmony_ci    INVALID_OPERATION error is generated if the draw framebuffer is
2585bd8deadSopenharmony_ci    multisampled.")
2595bd8deadSopenharmony_ci
2605bd8deadSopenharmony_ci        * An INVALID_OPERATION error is generated if both the read and
2615bd8deadSopenharmony_ci          draw buffers are multisampled, and SAMPLE_BUFFERS for the read and
2625bd8deadSopenharmony_ci          draw buffers are not identical.
2635bd8deadSopenharmony_ci
2645bd8deadSopenharmony_ci    (In the error list for BlitFramebuffer, add to the list)
2655bd8deadSopenharmony_ci
2665bd8deadSopenharmony_ci        * An INVALID_OPERATION error is generated if either the read or draw
2675bd8deadSopenharmony_ci          buffer is multisampled, and the formats of the read and draw
2685bd8deadSopenharmony_ci          framebuffers are not identical.
2695bd8deadSopenharmony_ci
2705bd8deadSopenharmony_ciDependencies on NV_framebuffer_blit
2715bd8deadSopenharmony_ci
2725bd8deadSopenharmony_ci    NV_framebuffer_blit is required.  Technically, NV_framebuffer_blit
2735bd8deadSopenharmony_ci    would not be required to support multisampled rendering, except for
2745bd8deadSopenharmony_ci    the fact that it provides the only method of doing a multisample
2755bd8deadSopenharmony_ci    resovle from a multisample renderbuffer.
2765bd8deadSopenharmony_ci
2775bd8deadSopenharmony_ciDependencies on OES_texture_3D and NV_texture_array
2785bd8deadSopenharmony_ci
2795bd8deadSopenharmony_ci    On an OpenGL ES implementation, in the absense of OES_texture_3D or
2805bd8deadSopenharmony_ci    NV_texture_array, omit references to CopyTexSubImage3DOES and
2815bd8deadSopenharmony_ci    CopyTexSubImage3DNV, respectively.
2825bd8deadSopenharmony_ci
2835bd8deadSopenharmony_ci
2845bd8deadSopenharmony_ciErrors
2855bd8deadSopenharmony_ci
2865bd8deadSopenharmony_ci    The error INVALID_OPERATION is generated if ReadPixels or
2875bd8deadSopenharmony_ci    CopyTex{Sub}Image* is called while READ_FRAMEBUFFER_BINDING_NV
2885bd8deadSopenharmony_ci    is non-zero, the read framebuffer is framebuffer complete, and the
2895bd8deadSopenharmony_ci    value of SAMPLE_BUFFERS for the read framebuffer is greater than
2905bd8deadSopenharmony_ci    zero.
2915bd8deadSopenharmony_ci
2925bd8deadSopenharmony_ci    If both the draw and read framebuffers are framebuffer complete and
2935bd8deadSopenharmony_ci    both have a value of SAMPLE_BUFFERS that is greater than zero, then
2945bd8deadSopenharmony_ci    the error INVALID_OPERATION is generated if BlitFramebufferNV is
2955bd8deadSopenharmony_ci    called and the values of SAMPLES for the draw and read framebuffers
2965bd8deadSopenharmony_ci    do not match.
2975bd8deadSopenharmony_ci
2985bd8deadSopenharmony_ci    If both the draw and read framebuffers are framebuffer complete and
2995bd8deadSopenharmony_ci    either has a value of SAMPLE_BUFFERS that is greater than zero, then
3005bd8deadSopenharmony_ci    the error INVALID_OPERATION is generated if BlitFramebufferNV is
3015bd8deadSopenharmony_ci    called and the formats of the draw and read framebuffers are not
3025bd8deadSopenharmony_ci    identical.
3035bd8deadSopenharmony_ci
3045bd8deadSopenharmony_ci    If either the draw or read framebuffer is framebuffer complete and
3055bd8deadSopenharmony_ci    has a value of SAMPLE_BUFFERS that is greater than zero, then the
3065bd8deadSopenharmony_ci    error INVALID_OPERATION is generated if BlitFramebufferNV is called
3075bd8deadSopenharmony_ci    and the specified source and destination dimensions are not
3085bd8deadSopenharmony_ci    identical.
3095bd8deadSopenharmony_ci
3105bd8deadSopenharmony_ci    If RenderbufferStorageMultisampleNV is called with <target> not
3115bd8deadSopenharmony_ci    equal to RENDERBUFFER, the error INVALID_ENUM is generated.
3125bd8deadSopenharmony_ci
3135bd8deadSopenharmony_ci    If RenderbufferStorageMultisampleNV is called with an
3145bd8deadSopenharmony_ci    <internalformat> that is not listed as one of the color-, depth-
3155bd8deadSopenharmony_ci    or stencil-renderable formats in Table 4.5, then the error
3165bd8deadSopenharmony_ci    INVALID_ENUM is generated.
3175bd8deadSopenharmony_ci
3185bd8deadSopenharmony_ci    If RenderbufferStorageMultisampleNV is called with <width> or
3195bd8deadSopenharmony_ci    <height> greater than MAX_RENDERBUFFER_SIZE, then the error
3205bd8deadSopenharmony_ci    INVALID_VALUE is generated.
3215bd8deadSopenharmony_ci
3225bd8deadSopenharmony_ci    If RenderbufferStorageMultisampleNV is called with a value of
3235bd8deadSopenharmony_ci    <samples> that is greater than MAX_SAMPLES_NV or less than zero,
3245bd8deadSopenharmony_ci    then the error INVALID_VALUE is generated.
3255bd8deadSopenharmony_ci
3265bd8deadSopenharmony_ci    The error OUT_OF_MEMORY is generated when
3275bd8deadSopenharmony_ci    RenderbufferStorageMultisampleNV cannot create storage of the
3285bd8deadSopenharmony_ci    specified size.
3295bd8deadSopenharmony_ci
3305bd8deadSopenharmony_ciNew State
3315bd8deadSopenharmony_ci
3325bd8deadSopenharmony_ci    Add to table 6.23 (Renderbuffer State)
3335bd8deadSopenharmony_ci
3345bd8deadSopenharmony_ci    Get Value                        Type    Get Command                 Initial Value  Description             Section
3355bd8deadSopenharmony_ci    -------------------------------  ------  --------------------------  -------------  --------------------    -------
3365bd8deadSopenharmony_ci    RENDERBUFFER_SAMPLES_NV          Z+      GetRenderbufferParameteriv  0              number of samples       4.4.3
3375bd8deadSopenharmony_ci
3385bd8deadSopenharmony_ci
3395bd8deadSopenharmony_ci    Add to table 6.21 (Framebuffer Dependent Values)
3405bd8deadSopenharmony_ci    the following new framebuffer dependent state.
3415bd8deadSopenharmony_ci
3425bd8deadSopenharmony_ci    Get Value          Type  Get Command     Minimum Value    Description             Section
3435bd8deadSopenharmony_ci    -----------------  ----  -----------     -------------    -------------------     -------
3445bd8deadSopenharmony_ci    MAX_SAMPLES_NV     Z+    GetIntegerv     1                Maximum number of       4.4.3
3455bd8deadSopenharmony_ci                                                              samples supported
3465bd8deadSopenharmony_ci                                                              for multisampling
3475bd8deadSopenharmony_ci
3485bd8deadSopenharmony_ci
3495bd8deadSopenharmony_ci
3505bd8deadSopenharmony_ciIssues
3515bd8deadSopenharmony_ci
3525bd8deadSopenharmony_ci    Issues from EXT_framebuffer_multisample have been removed.
3535bd8deadSopenharmony_ci
3545bd8deadSopenharmony_ci    1) How is this extension different from Halti and ARB_framebuffer_object ?
3555bd8deadSopenharmony_ci        - this extension offers the same MSAA functionality as in
3565bd8deadSopenharmony_ci          ARB_framebuffer_object
3575bd8deadSopenharmony_ci        - it is a superset of Halti in that:
3585bd8deadSopenharmony_ci            a) SINGLE-->MSAA and MSAA-->MSAA blits are possible
3595bd8deadSopenharmony_ci            b) the blit region may be relocated during the blit
3605bd8deadSopenharmony_ci
3615bd8deadSopenharmony_ciRevision History
3625bd8deadSopenharmony_ci    Revision 5, 2015/03/03
3635bd8deadSopenharmony_ci      - add interaction with OpenGL ES 3.0 and later
3645bd8deadSopenharmony_ci    Revision 4, 2012/08/31
3655bd8deadSopenharmony_ci      - add interaction with NV_texture_array
3665bd8deadSopenharmony_ci    Revision 3, 2012/08/29
3675bd8deadSopenharmony_ci      - consolidate contributors list
3685bd8deadSopenharmony_ci      - be more explicit about the specification version the text is written against
3695bd8deadSopenharmony_ci    Revision 2, 2012/08/15
3705bd8deadSopenharmony_ci      - explicitly state that resolve blits from the window system provided framebuffer
3715bd8deadSopenharmony_ci        are possible
3725bd8deadSopenharmony_ci      - fix references to table 6.21 and table 6.23
3735bd8deadSopenharmony_ci    Revision 1, 2012/05/15
3745bd8deadSopenharmony_ci      - copied from revision 3 of ANGLE_framebuffer_multisample
3755bd8deadSopenharmony_ci      - re-inserted missing functionality of EXT_framebuffer_blit
3765bd8deadSopenharmony_ci
377