15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    ANGLE_framebuffer_multisample
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_ANGLE_framebuffer_multisample
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContributors
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Contributors to EXT_framebuffer_multisample
125bd8deadSopenharmony_ci    Daniel Koch, TransGaming Inc.
135bd8deadSopenharmony_ci    Shannon Woods, TransGaming Inc.
145bd8deadSopenharmony_ci    Kenneth Russell, Google Inc.
155bd8deadSopenharmony_ci    Vangelis Kokkevis, Google Inc.
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ciContacts
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ci    Daniel Koch, TransGaming Inc. (daniel 'at' transgaming 'dot' com)
205bd8deadSopenharmony_ci
215bd8deadSopenharmony_ciStatus
225bd8deadSopenharmony_ci
235bd8deadSopenharmony_ci    Implemented in ANGLE ES2
245bd8deadSopenharmony_ci
255bd8deadSopenharmony_ciVersion
265bd8deadSopenharmony_ci
275bd8deadSopenharmony_ci    Last Modified Date: Aug 6, 2010 
285bd8deadSopenharmony_ci    Author Revision: #3
295bd8deadSopenharmony_ci
305bd8deadSopenharmony_ciNumber
315bd8deadSopenharmony_ci
325bd8deadSopenharmony_ci    OpenGL ES Extension #84
335bd8deadSopenharmony_ci
345bd8deadSopenharmony_ciDependencies
355bd8deadSopenharmony_ci
365bd8deadSopenharmony_ci    Requires OpenGL ES 2.0.
375bd8deadSopenharmony_ci
385bd8deadSopenharmony_ci    Requires GL_ANGLE_framebuffer_blit (or equivalent functionality).
395bd8deadSopenharmony_ci
405bd8deadSopenharmony_ci    The extension is written against the OpenGL ES 2.0 specification. 
415bd8deadSopenharmony_ci
425bd8deadSopenharmony_ci    OES_texture_3D affects the definition of this extension.
435bd8deadSopenharmony_ci
445bd8deadSopenharmony_ciOverview
455bd8deadSopenharmony_ci
465bd8deadSopenharmony_ci    This extension extends the framebuffer object framework to
475bd8deadSopenharmony_ci    enable multisample rendering.
485bd8deadSopenharmony_ci
495bd8deadSopenharmony_ci    The new operation RenderbufferStorageMultisampleANGLE() allocates
505bd8deadSopenharmony_ci    storage for a renderbuffer object that can be used as a multisample
515bd8deadSopenharmony_ci    buffer.  A multisample render buffer image differs from a
525bd8deadSopenharmony_ci    single-sample render buffer image in that a multisample image has a
535bd8deadSopenharmony_ci    number of SAMPLES that is greater than zero.  No method is provided
545bd8deadSopenharmony_ci    for creating multisample texture images.
555bd8deadSopenharmony_ci
565bd8deadSopenharmony_ci    All of the framebuffer-attachable images attached to a framebuffer
575bd8deadSopenharmony_ci    object must have the same number of SAMPLES or else the framebuffer
585bd8deadSopenharmony_ci    object is not "framebuffer complete".  If a framebuffer object with
595bd8deadSopenharmony_ci    multisample attachments is "framebuffer complete", then the
605bd8deadSopenharmony_ci    framebuffer object behaves as if SAMPLE_BUFFERS is one.
615bd8deadSopenharmony_ci
625bd8deadSopenharmony_ci    The resolve operation is affected by calling 
635bd8deadSopenharmony_ci    BlitFramebufferANGLE (provided by the ANGLE_framebuffer_blit
645bd8deadSopenharmony_ci    extension) where the source is a multisample application-created
655bd8deadSopenharmony_ci    framebuffer object and the destination is a single-sample
665bd8deadSopenharmony_ci    framebuffer object (either application-created or window-system
675bd8deadSopenharmony_ci    provided).
685bd8deadSopenharmony_ci
695bd8deadSopenharmony_ciNew Procedures and Functions
705bd8deadSopenharmony_ci
715bd8deadSopenharmony_ci    void RenderbufferStorageMultisampleANGLE(
725bd8deadSopenharmony_ci            enum target, sizei samples,
735bd8deadSopenharmony_ci            enum internalformat,
745bd8deadSopenharmony_ci            sizei width, sizei height);
755bd8deadSopenharmony_ci
765bd8deadSopenharmony_ciNew Types
775bd8deadSopenharmony_ci
785bd8deadSopenharmony_ci    None.
795bd8deadSopenharmony_ci
805bd8deadSopenharmony_ciNew Tokens
815bd8deadSopenharmony_ci
825bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetRenderbufferParameteriv:
835bd8deadSopenharmony_ci
845bd8deadSopenharmony_ci        RENDERBUFFER_SAMPLES_ANGLE                  0x8CAB
855bd8deadSopenharmony_ci
865bd8deadSopenharmony_ci    Returned by CheckFramebufferStatus:
875bd8deadSopenharmony_ci
885bd8deadSopenharmony_ci        FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE    0x8D56
895bd8deadSopenharmony_ci
905bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
915bd8deadSopenharmony_ci    and GetFloatv:
925bd8deadSopenharmony_ci
935bd8deadSopenharmony_ci        MAX_SAMPLES_ANGLE                           0x8D57
945bd8deadSopenharmony_ci
955bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL ES 2.0 Specification (OpenGL Operation)
965bd8deadSopenharmony_ci
975bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL ES 2.0 Specification (Rasterization)
985bd8deadSopenharmony_ci
995bd8deadSopenharmony_ci    Add to the last paragraph of 3.7.2 (Alternate Texture Image Specification)
1005bd8deadSopenharmony_ci    (as modified by ANGLE_framebuffer_blit) the following:
1015bd8deadSopenharmony_ci
1025bd8deadSopenharmony_ci    "Calling CopyTexSubImage3DOES, CopyTexImage2D or CopyTexSubImage2D will
1035bd8deadSopenharmony_ci    result in INVALID_OPERATION being generated if the object bound to
1045bd8deadSopenharmony_ci    READ_FRAMEBUFFER_BINDING_ANGLE is "framebuffer complete" and the value
1055bd8deadSopenharmony_ci    of SAMPLE_BUFFERS is greater 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_ANGLE
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 BlitFramebuffer
1195bd8deadSopenharmony_ci    that was added by ANGLE_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 draw framebuffer is greater than zero, 
1275bd8deadSopenharmony_ci    no copy is performed and an INVALID_OPERATION error is generated.
1285bd8deadSopenharmony_ci
1295bd8deadSopenharmony_ci    If SAMPLE_BUFFERS for the read framebuffer is greater than zero and
1305bd8deadSopenharmony_ci    <mask> includes DEPTH_BUFFER_BIT or STENCIL_BUFFER_BIT, no copy is 
1315bd8deadSopenharmony_ci    performed and an INVALID_OPERATION error is generated.
1325bd8deadSopenharmony_ci
1335bd8deadSopenharmony_ci    If SAMPLE_BUFFERS for the read framebuffer is greater than zero and 
1345bd8deadSopenharmony_ci    the format of the read and draw framebuffers are not identical, no
1355bd8deadSopenharmony_ci    copy is performed and an INVALID_OPERATION error is generated.
1365bd8deadSopenharmony_ci
1375bd8deadSopenharmony_ci    If SAMPLE_BUFFERS for the read framebuffer is greater than zero, the
1385bd8deadSopenharmony_ci    dimensions of the source and destination rectangles provided to 
1395bd8deadSopenharmony_ci    BlitFramebufferANGLE must be identical and must specify the complete 
1405bd8deadSopenharmony_ci    source and destination buffers, otherwise no copy is performed and 
1415bd8deadSopenharmony_ci    an INVALID_OPERATION error is generated."
1425bd8deadSopenharmony_ci
1435bd8deadSopenharmony_ci    Modification to 4.4.3 (Renderbuffer Objects)
1445bd8deadSopenharmony_ci
1455bd8deadSopenharmony_ci    Add, just above the definition of RenderbufferStorage:
1465bd8deadSopenharmony_ci
1475bd8deadSopenharmony_ci    "The command
1485bd8deadSopenharmony_ci
1495bd8deadSopenharmony_ci        void RenderbufferStorageMultisampleANGLE(
1505bd8deadSopenharmony_ci            enum target, sizei samples,
1515bd8deadSopenharmony_ci            enum internalformat,
1525bd8deadSopenharmony_ci            sizei width, sizei height);
1535bd8deadSopenharmony_ci
1545bd8deadSopenharmony_ci    establishes the data storage, format, dimensions, and number of
1555bd8deadSopenharmony_ci    samples of a renderbuffer object's image.  <target> must be
1565bd8deadSopenharmony_ci    RENDERBUFFER.  <internalformat> must be one of the color-renderable,
1575bd8deadSopenharmony_ci    depth-renderable, or stencil-renderable formats described in table 4.5.
1585bd8deadSopenharmony_ci    <width> and <height> are the dimensions in pixels of the renderbuffer.  If
1595bd8deadSopenharmony_ci    either <width> or <height> is greater than the value of 
1605bd8deadSopenharmony_ci    MAX_RENDERBUFFER_SIZE, or if <samples> is greater than MAX_SAMPLES_ANGLE, 
1615bd8deadSopenharmony_ci    then the error INVALID_VALUE is generated. If OpenGL ES is unable to 
1625bd8deadSopenharmony_ci    create a data store of the requested size, the error OUT_OF_MEMORY 
1635bd8deadSopenharmony_ci    is generated.
1645bd8deadSopenharmony_ci
1655bd8deadSopenharmony_ci    Upon success, RenderbufferStorageMultisampleANGLE deletes any existing
1665bd8deadSopenharmony_ci    data store for the renderbuffer image and the contents of the data
1675bd8deadSopenharmony_ci    store after calling RenderbufferStorageMultisampleANGLE are undefined.
1685bd8deadSopenharmony_ci    RENDERBUFFER_WIDTH is set to <width>, RENDERBUFFER_HEIGHT is
1695bd8deadSopenharmony_ci    set to <height>, and RENDERBUFFER_INTERNAL_FORMAT is set to
1705bd8deadSopenharmony_ci    <internalformat>.
1715bd8deadSopenharmony_ci
1725bd8deadSopenharmony_ci    If <samples> is zero, then RENDERBUFFER_SAMPLES_ANGLE is set to zero.
1735bd8deadSopenharmony_ci    Otherwise <samples> represents a request for a desired minimum
1745bd8deadSopenharmony_ci    number of samples. Since different implementations may support
1755bd8deadSopenharmony_ci    different sample counts for multisampled rendering, the actual
1765bd8deadSopenharmony_ci    number of samples allocated for the renderbuffer image is
1775bd8deadSopenharmony_ci    implementation dependent.  However, the resulting value for
1785bd8deadSopenharmony_ci    RENDERBUFFER_SAMPLES_ANGLE is guaranteed to be greater than or equal
1795bd8deadSopenharmony_ci    to <samples> and no more than the next larger sample count supported
1805bd8deadSopenharmony_ci    by the implementation.
1815bd8deadSopenharmony_ci
1825bd8deadSopenharmony_ci    An OpenGL ES implementation may vary its allocation of internal component
1835bd8deadSopenharmony_ci    resolution based on any RenderbufferStorageMultisampleANGLE parameter (except
1845bd8deadSopenharmony_ci    target), but the allocation and chosen internal format must not be a
1855bd8deadSopenharmony_ci    function of any other state and cannot be changed once they are
1865bd8deadSopenharmony_ci    established. The actual resolution in bits of each component of the 
1875bd8deadSopenharmony_ci    allocated image can be queried with GetRenderbufferParameteriv."
1885bd8deadSopenharmony_ci
1895bd8deadSopenharmony_ci    Modify the definiton of RenderbufferStorage as follows:
1905bd8deadSopenharmony_ci
1915bd8deadSopenharmony_ci    "The command
1925bd8deadSopenharmony_ci
1935bd8deadSopenharmony_ci        void RenderbufferStorage(enum target, enum internalformat,
1945bd8deadSopenharmony_ci                                    sizei width, sizei height);
1955bd8deadSopenharmony_ci
1965bd8deadSopenharmony_ci     is equivalent to calling RenderbufferStorageMultisampleANGLE with
1975bd8deadSopenharmony_ci     <samples> equal to zero."
1985bd8deadSopenharmony_ci
1995bd8deadSopenharmony_ci    In section 4.4.5 (Framebuffer Completeness) in the subsection
2005bd8deadSopenharmony_ci    titled "Framebuffer Completeness" add an entry to the bullet list:
2015bd8deadSopenharmony_ci
2025bd8deadSopenharmony_ci    * The value of RENDERBUFFER_SAMPLES_ANGLE is the same for all attached
2035bd8deadSopenharmony_ci      images.
2045bd8deadSopenharmony_ci      { FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE }
2055bd8deadSopenharmony_ci
2065bd8deadSopenharmony_ci    Also add a paragraph to the end of the section after the definition
2075bd8deadSopenharmony_ci    of CheckFramebufferStatus:
2085bd8deadSopenharmony_ci
2095bd8deadSopenharmony_ci    "The values of SAMPLE_BUFFERS and SAMPLES are derived from the
2105bd8deadSopenharmony_ci    attachments of the currently bound framebuffer object.  If the
2115bd8deadSopenharmony_ci    current DRAW_FRAMEBUFFER_BINDING_ANGLE is not "framebuffer complete",
2125bd8deadSopenharmony_ci    then both SAMPLE_BUFFERS and SAMPLES are undefined.  Otherwise,
2135bd8deadSopenharmony_ci    SAMPLES is equal to the value of RENDERBUFFER_SAMPLES_ANGLE for the
2145bd8deadSopenharmony_ci    attached images (which all must have the same value for
2155bd8deadSopenharmony_ci    RENDERBUFFER_SAMPLES_ANGLE).  Further, SAMPLE_BUFFERS is one if
2165bd8deadSopenharmony_ci    SAMPLES is non-zero.  Otherwise, SAMPLE_BUFFERS is zero.
2175bd8deadSopenharmony_ci
2185bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL ES 2.0 Specification (Special Functions)
2195bd8deadSopenharmony_ci
2205bd8deadSopenharmony_ci
2215bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL ES 2.0 Specification (State and State
2225bd8deadSopenharmony_ciRequests)
2235bd8deadSopenharmony_ci
2245bd8deadSopenharmony_ci    In section 6.1.3 (Enumeraged Queries), modify the third paragraph 
2255bd8deadSopenharmony_ci    of the description of GetRenderbufferParameteriv as follows:
2265bd8deadSopenharmony_ci
2275bd8deadSopenharmony_ci    "Upon successful return from GetRenderbufferParameteriv, if
2285bd8deadSopenharmony_ci    <pname> is RENDERBUFFER_WIDTH, RENDERBUFFER_HEIGHT,
2295bd8deadSopenharmony_ci    RENDERBUFFER_INTERNAL_FORMAT, or RENDERBUFFER_SAMPLES_ANGLE, then <params> 
2305bd8deadSopenharmony_ci    will contain the width in pixels, height in pixels, internal format, or 
2315bd8deadSopenharmony_ci    number of samples, respectively, of the image of the renderbuffer 
2325bd8deadSopenharmony_ci    currently bound to <target>."
2335bd8deadSopenharmony_ci
2345bd8deadSopenharmony_ci
2355bd8deadSopenharmony_ciDependencies on ANGLE_framebuffer_blit    
2365bd8deadSopenharmony_ci
2375bd8deadSopenharmony_ci    ANGLE_framebuffer_blit is required.  Technically, ANGLE_framebuffer_blit
2385bd8deadSopenharmony_ci    would not be required to support multisampled rendering, except for
2395bd8deadSopenharmony_ci    the fact that it provides the only method of doing a multisample
2405bd8deadSopenharmony_ci    resovle from a multisample renderbuffer.
2415bd8deadSopenharmony_ci
2425bd8deadSopenharmony_ciDependencies on OES_texture_3D
2435bd8deadSopenharmony_ci
2445bd8deadSopenharmony_ci    On an OpenGL ES implementation, in the absense of OES_texture_3D,
2455bd8deadSopenharmony_ci    omit references to CopyTexSubImage3DOES.
2465bd8deadSopenharmony_ci
2475bd8deadSopenharmony_ciErrors
2485bd8deadSopenharmony_ci
2495bd8deadSopenharmony_ci    The error INVALID_OPERATION is generated if ReadPixels or 
2505bd8deadSopenharmony_ci    CopyTex{Sub}Image* is called while READ_FRAMEBUFFER_BINDING_ANGLE
2515bd8deadSopenharmony_ci    is non-zero, the read framebuffer is framebuffer complete, and the
2525bd8deadSopenharmony_ci    value of SAMPLE_BUFFERS for the read framebuffer is greater than
2535bd8deadSopenharmony_ci    zero.
2545bd8deadSopenharmony_ci
2555bd8deadSopenharmony_ci    If both the draw and read framebuffers are framebuffer complete and
2565bd8deadSopenharmony_ci    the draw framebuffer has a value of SAMPLE_BUFFERS that is greater 
2575bd8deadSopenharmony_ci    than zero, then the error INVALID_OPERATION is generated if 
2585bd8deadSopenharmony_ci    BlitFramebufferANGLE is called.
2595bd8deadSopenharmony_ci
2605bd8deadSopenharmony_ci    If both the draw and read framebuffers are framebuffer complete and
2615bd8deadSopenharmony_ci    the read framebuffer has a value of SAMPLE_BUFFERS that is greater
2625bd8deadSopenharmony_ci    than zero, the error INVALID_OPERATION is generated if 
2635bd8deadSopenharmony_ci    BlitFramebufferANGLE is called and any of the following conditions
2645bd8deadSopenharmony_ci    are true:
2655bd8deadSopenharmony_ci     - <mask> includes DEPTH_BUFFER_BIT or STENCIL_BUFFER_BIT.
2665bd8deadSopenharmony_ci     - the source or destination rectangles do not specify the entire
2675bd8deadSopenharmony_ci       source or destination buffer.
2685bd8deadSopenharmony_ci
2695bd8deadSopenharmony_ci    If both the draw and read framebuffers are framebuffer complete and
2705bd8deadSopenharmony_ci    either has a value of SAMPLE_BUFFERS that is greater than zero, then
2715bd8deadSopenharmony_ci    the error INVALID_OPERATION is generated if BlitFramebufferANGLE is
2725bd8deadSopenharmony_ci    called and the formats of the draw and read framebuffers are not
2735bd8deadSopenharmony_ci    identical.
2745bd8deadSopenharmony_ci
2755bd8deadSopenharmony_ci    If either the draw or read framebuffer is framebuffer complete and
2765bd8deadSopenharmony_ci    has a value of SAMPLE_BUFFERS that is greater than zero, then the
2775bd8deadSopenharmony_ci    error INVALID_OPERATION is generated if BlitFramebufferANGLE is called
2785bd8deadSopenharmony_ci    and the specified source and destination dimensions are not
2795bd8deadSopenharmony_ci    identical.
2805bd8deadSopenharmony_ci
2815bd8deadSopenharmony_ci    If RenderbufferStorageMultisampleANGLE is called with <target> not
2825bd8deadSopenharmony_ci    equal to RENDERBUFFER, the error INVALID_ENUM is generated.
2835bd8deadSopenharmony_ci
2845bd8deadSopenharmony_ci    If RenderbufferStorageMultisampleANGLE is called with an 
2855bd8deadSopenharmony_ci    <internalformat> that is not listed as one of the color-, depth- 
2865bd8deadSopenharmony_ci    or stencil-renderable formats in Table 4.5, then the error
2875bd8deadSopenharmony_ci    INVALID_ENUM is generated.
2885bd8deadSopenharmony_ci
2895bd8deadSopenharmony_ci    If RenderbufferStorageMultisampleANGLE is called with <width> or 
2905bd8deadSopenharmony_ci    <height> greater than MAX_RENDERBUFFER_SIZE, then the error 
2915bd8deadSopenharmony_ci    INVALID_VALUE is generated.
2925bd8deadSopenharmony_ci
2935bd8deadSopenharmony_ci    If RenderbufferStorageMultisampleANGLE is called with a value of
2945bd8deadSopenharmony_ci    <samples> that is greater than MAX_SAMPLES_ANGLE or less than zero,
2955bd8deadSopenharmony_ci    then the error INVALID_VALUE is generated.
2965bd8deadSopenharmony_ci
2975bd8deadSopenharmony_ci    The error OUT_OF_MEMORY is generated when
2985bd8deadSopenharmony_ci    RenderbufferStorageMultisampleANGLE cannot create storage of the
2995bd8deadSopenharmony_ci    specified size.
3005bd8deadSopenharmony_ci
3015bd8deadSopenharmony_ciNew State
3025bd8deadSopenharmony_ci
3035bd8deadSopenharmony_ci    Add to table 6.22 (Renderbuffer State)
3045bd8deadSopenharmony_ci
3055bd8deadSopenharmony_ci    Get Value                          Type    Get Command                 Initial Value  Description             Section
3065bd8deadSopenharmony_ci    -------------------------------    ------  --------------------------  -------------  --------------------    -------
3075bd8deadSopenharmony_ci    RENDERBUFFER_SAMPLES_ANGLE         Z+      GetRenderbufferParameteriv  0              number of samples       4.4.3
3085bd8deadSopenharmony_ci
3095bd8deadSopenharmony_ci
3105bd8deadSopenharmony_ci    Add to table 6.yy (Framebuffer Dependent Vaues) (added by 
3115bd8deadSopenharmony_ci    ANGLE_framebuffer_blit), the following new framebuffer dependent state.
3125bd8deadSopenharmony_ci
3135bd8deadSopenharmony_ci    Get Value          Type  Get Command     Minimum Value    Description             Section
3145bd8deadSopenharmony_ci    -----------------  ----  -----------     -------------    -------------------     -------
3155bd8deadSopenharmony_ci    MAX_SAMPLES_ANGLE  Z+    GetIntegerv     1                Maximum number of       4.4.3
3165bd8deadSopenharmony_ci                                                              samples supported
3175bd8deadSopenharmony_ci                                                              for multisampling
3185bd8deadSopenharmony_ci                                                            
3195bd8deadSopenharmony_ci
3205bd8deadSopenharmony_ci
3215bd8deadSopenharmony_ciIssues
3225bd8deadSopenharmony_ci    
3235bd8deadSopenharmony_ci    Issues from EXT_framebuffer_multisample have been removed.
3245bd8deadSopenharmony_ci 
3255bd8deadSopenharmony_ci    1) What should we call this extension?
3265bd8deadSopenharmony_ci
3275bd8deadSopenharmony_ci       Resolved: ANGLE_framebuffer_blit.  
3285bd8deadSopenharmony_ci
3295bd8deadSopenharmony_ci       This extension is a result of a collaboration between Google and 
3305bd8deadSopenharmony_ci       TransGaming for the open-source ANGLE project. Typically one would
3315bd8deadSopenharmony_ci       label a multi-vendor extension as EXT, but EXT_framebuffer_mulitsample 
3325bd8deadSopenharmony_ci       is already the name for this on Desktop GL.  Additionally this
3335bd8deadSopenharmony_ci       isn't truely a multi-vendor extension because there is only one
3345bd8deadSopenharmony_ci       implementation of this.  We'll follow the example of the open-source
3355bd8deadSopenharmony_ci       MESA project which uses the project name for the vendor suffix.
3365bd8deadSopenharmony_ci 
3375bd8deadSopenharmony_ci    2) How does this extension differ from EXT_framebuffer_multisample?
3385bd8deadSopenharmony_ci
3395bd8deadSopenharmony_ci       This is designed to be a proper subset of EXT_framebuffer_multisample
3405bd8deadSopenharmony_ci       functionality as applicable to OpenGL ES 2.0.
3415bd8deadSopenharmony_ci
3425bd8deadSopenharmony_ci       Functionality that is unchanged: 
3435bd8deadSopenharmony_ci        - creation of multisample renderbuffers.
3445bd8deadSopenharmony_ci        - whole buffer multi-sample->single-sample resolve.
3455bd8deadSopenharmony_ci        - no format conversions, stretching or flipping supported on multisample blits.
3465bd8deadSopenharmony_ci
3475bd8deadSopenharmony_ci       Additional restrictions on BlitFramebufferANGLE:
3485bd8deadSopenharmony_ci        - multisample resolve is only supported on color buffers.
3495bd8deadSopenharmony_ci        - no blits to multisample destinations (no single->multi or multi-multi).
3505bd8deadSopenharmony_ci        - only entire buffers can be resolved.
3515bd8deadSopenharmony_ci         
3525bd8deadSopenharmony_ciRevision History
3535bd8deadSopenharmony_ci
3545bd8deadSopenharmony_ci    Revision 1, 2010/07/08
3555bd8deadSopenharmony_ci      - copied from revision 7 of EXT_framebuffer_multisample
3565bd8deadSopenharmony_ci      - removed language that was not relevant to ES2 
3575bd8deadSopenharmony_ci      - rebase changes against the Open GL ES 2.0 specification
3585bd8deadSopenharmony_ci      - added ANGLE-specific restrictions
3595bd8deadSopenharmony_ci    Revision 2, 2010/07/19
3605bd8deadSopenharmony_ci      - fix missing error code
3615bd8deadSopenharmony_ci    Revision 3, 2010/08/06
3625bd8deadSopenharmony_ci      - add additional contributors, update implementation status
3635bd8deadSopenharmony_ci      - disallow negative samples 
364