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