15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    OES_required_internalformat
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_OES_required_internalformat
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContributors
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Aaftab Munshi
125bd8deadSopenharmony_ci    Jeremy Sandmel
135bd8deadSopenharmony_ci    Members of the Khronos OpenGL ES working group
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ciContact
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ci    Benj Lipchak, Apple, Inc. (lipchak 'at' apple.com)
185bd8deadSopenharmony_ci    
195bd8deadSopenharmony_ciNotice
205bd8deadSopenharmony_ci
215bd8deadSopenharmony_ci    Copyright (c) 2007-2013 The Khronos Group Inc. Copyright terms at
225bd8deadSopenharmony_ci        http://www.khronos.org/registry/speccopyright.html
235bd8deadSopenharmony_ci
245bd8deadSopenharmony_ciSpecification Update Policy
255bd8deadSopenharmony_ci
265bd8deadSopenharmony_ci    Khronos-approved extension specifications are updated in response to
275bd8deadSopenharmony_ci    issues and bugs prioritized by the Khronos OpenGL ES Working Group. For
285bd8deadSopenharmony_ci    extensions which have been promoted to a core Specification, fixes will
295bd8deadSopenharmony_ci    first appear in the latest version of that core Specification, and will
305bd8deadSopenharmony_ci    eventually be backported to the extension document. This policy is
315bd8deadSopenharmony_ci    described in more detail at
325bd8deadSopenharmony_ci        https://www.khronos.org/registry/OpenGL/docs/update_policy.php
335bd8deadSopenharmony_ci
345bd8deadSopenharmony_ciStatus
355bd8deadSopenharmony_ci
365bd8deadSopenharmony_ci    Complete.
375bd8deadSopenharmony_ci    Approved by the Khronos Promoters on April 26, 2012.
385bd8deadSopenharmony_ci
395bd8deadSopenharmony_ciVersion
405bd8deadSopenharmony_ci
415bd8deadSopenharmony_ci    Last Modified Date: January 29, 2010
425bd8deadSopenharmony_ci    Author Revision: 0.19
435bd8deadSopenharmony_ci
445bd8deadSopenharmony_ciNumber
455bd8deadSopenharmony_ci
465bd8deadSopenharmony_ci    XXX TBD
475bd8deadSopenharmony_ci
485bd8deadSopenharmony_ciDependencies
495bd8deadSopenharmony_ci
505bd8deadSopenharmony_ci    OpenGL ES 1.0 is required.
515bd8deadSopenharmony_ci
525bd8deadSopenharmony_ci    This extension is written against the OpenGL ES 1.1 specification.
535bd8deadSopenharmony_ci
545bd8deadSopenharmony_ci    OpenGL ES 2.0 affects the definition of this extension.
555bd8deadSopenharmony_ci    
565bd8deadSopenharmony_ci    OES_framebuffer_object affects the definition of this extension.
575bd8deadSopenharmony_ci
585bd8deadSopenharmony_ci    OES_depth_texture affects the definition of this extension.
595bd8deadSopenharmony_ci    
605bd8deadSopenharmony_ci    OES_depth24 and OES_depth32 affect the definition of this extension.
615bd8deadSopenharmony_ci    
625bd8deadSopenharmony_ci    OES_packed_depth_stencil affects the definition of this extension.
635bd8deadSopenharmony_ci
645bd8deadSopenharmony_ci    OES_rgb8_rgba8 affects the definition of this extension.
655bd8deadSopenharmony_ci
665bd8deadSopenharmony_ci    OES_stencil1, OES_stencil4, and OES_stencil8 affect the definition of this
675bd8deadSopenharmony_ci    extension.
685bd8deadSopenharmony_ci    
695bd8deadSopenharmony_ci    OES_texture_3D affects the definition of this extension.
705bd8deadSopenharmony_ci    
715bd8deadSopenharmony_ci    EXT_texture_type_2_10_10_10_REV affects the definition of this extension.
725bd8deadSopenharmony_ci
735bd8deadSopenharmony_ciOverview
745bd8deadSopenharmony_ci
755bd8deadSopenharmony_ci    The ES 1.1 API allows an implementation to store texture data internally
765bd8deadSopenharmony_ci    with arbitrary precision, regardless of the format and type of the data
775bd8deadSopenharmony_ci    supplied by the application.  Similarly, ES allows an implementation to
785bd8deadSopenharmony_ci    choose an arbitrary precision for the internal storage of image data
795bd8deadSopenharmony_ci    allocated by glRenderbufferStorageOES.
805bd8deadSopenharmony_ci
815bd8deadSopenharmony_ci    While this allows flexibility for implementations, it does mean that an 
825bd8deadSopenharmony_ci    application does not have a reliable means to request the implementation 
835bd8deadSopenharmony_ci    maintain a specific precision or to find out what precision the 
845bd8deadSopenharmony_ci    implementation will maintain for a given texture or renderbuffer image.
855bd8deadSopenharmony_ci
865bd8deadSopenharmony_ci    For reference, "Desktop" OpenGL uses the <internalformat> argument to 
875bd8deadSopenharmony_ci    glTexImage*, glCopyTexImage* and glRenderbufferStorageEXT as a hint, 
885bd8deadSopenharmony_ci    defining the particular base format and precision that the application wants 
895bd8deadSopenharmony_ci    the implementation to maintain when storing the image data.  Further, the 
905bd8deadSopenharmony_ci    application can choose an <internalformat> with a different base internal 
915bd8deadSopenharmony_ci    format than the source format specified by <format>.  The implementation is
925bd8deadSopenharmony_ci    not required to exactly match the precision specified by <internalformat>
935bd8deadSopenharmony_ci    when choosing an internal storage precision, but it is required to match the 
945bd8deadSopenharmony_ci    base internal format of <internalformat>.
955bd8deadSopenharmony_ci
965bd8deadSopenharmony_ci    In addition, ES 1.1 does not allow an implementation to fail a request to
975bd8deadSopenharmony_ci    glTexImage2D for any of the legal <format> and <type> combinations listed in
985bd8deadSopenharmony_ci    Table 3.4, even if the implementation does not natively support data stored
995bd8deadSopenharmony_ci    in that external <format> and <type>.  However, there are no additional
1005bd8deadSopenharmony_ci    requirements placed on the implementation.  The ES implementation is free to
1015bd8deadSopenharmony_ci    store the texture data with lower precision than originally specified, for
1025bd8deadSopenharmony_ci    instance.  Further, since ES removes the ability to query the texture object
1035bd8deadSopenharmony_ci    to find out what internal format it chose, there is no way for the
1045bd8deadSopenharmony_ci    application to find out that this has happened.
1055bd8deadSopenharmony_ci
1065bd8deadSopenharmony_ci    This extension addresses the situation in two ways:
1075bd8deadSopenharmony_ci    
1085bd8deadSopenharmony_ci        1) This extension introduces the ability for an application to specify
1095bd8deadSopenharmony_ci        the desired "sized" internal formats for texture image allocation.
1105bd8deadSopenharmony_ci    
1115bd8deadSopenharmony_ci        2) This extension guarantees to maintain at least the specified
1125bd8deadSopenharmony_ci        precision of all available sized internal formats.
1135bd8deadSopenharmony_ci        
1145bd8deadSopenharmony_ci    An implementation that exports this extension is committing to support all
1155bd8deadSopenharmony_ci    of the legal values for <internalformat> in Tables 3.4, 3.4.x, and 3.4.y,
1165bd8deadSopenharmony_ci    subject to the extension dependencies described herein.  That is to say, the 
1175bd8deadSopenharmony_ci    implementation is guaranteeing that choosing an <internalformat> argument
1185bd8deadSopenharmony_ci    with a value from these tables will not cause an image allocation request to
1195bd8deadSopenharmony_ci    fail.  Furthermore, it is guaranteeing that for any sized internal format,
1205bd8deadSopenharmony_ci    the renderbuffer or texture data will be stored with at least the precision
1215bd8deadSopenharmony_ci    prescribed by the sized internal format.
1225bd8deadSopenharmony_ci    
1235bd8deadSopenharmony_ciIssues
1245bd8deadSopenharmony_ci
1255bd8deadSopenharmony_ci    1.  What API should we use to allow an application to indicate it wants 
1265bd8deadSopenharmony_ci        storage of at least a certain precision for a particular source format/
1275bd8deadSopenharmony_ci        type combination?
1285bd8deadSopenharmony_ci        
1295bd8deadSopenharmony_ci        RESOLVED
1305bd8deadSopenharmony_ci        
1315bd8deadSopenharmony_ci        We use the "sized" <internalformat> enums to indicate that an
1325bd8deadSopenharmony_ci        application desires some minimum precision for internal storage and 
1335bd8deadSopenharmony_ci        that the GL should not use less than the specified precision.
1345bd8deadSopenharmony_ci
1355bd8deadSopenharmony_ci        We originally had considered using a new "UNPACK" parameter for
1365bd8deadSopenharmony_ci        glPixelStorei that indicated the external <format> and <type> arguments 
1375bd8deadSopenharmony_ci        must be supported with no "downsampling" of the precision.
1385bd8deadSopenharmony_ci
1395bd8deadSopenharmony_ci        However, this latter approach ran into the problem that glCopyTexImage2D 
1405bd8deadSopenharmony_ci        and glRenderbufferStorageOES don't use the pixel store "UNPACK" state 
1415bd8deadSopenharmony_ci        nor do they have external <format> or <type> arguments to indicate the 
1425bd8deadSopenharmony_ci        application's requested precision.
1435bd8deadSopenharmony_ci
1445bd8deadSopenharmony_ci        Another option was to create a new set of glTexImage*, glCopyTexImage*,
1455bd8deadSopenharmony_ci        and glRenderbufferStorageOES entry points that implied a minimum
1465bd8deadSopenharmony_ci        required precision.
1475bd8deadSopenharmony_ci
1485bd8deadSopenharmony_ci        However, it seems the simplest thing to do is to just use the
1495bd8deadSopenharmony_ci        <internalformat> argument for this purpose and keep the existing entry 
1505bd8deadSopenharmony_ci        points.  It's also the most compatible with desktop OpenGL code.
1515bd8deadSopenharmony_ci
1525bd8deadSopenharmony_ci    2.  Should this specification make any mention of "optionally supported"
1535bd8deadSopenharmony_ci        <internalformat> values at all?  Or should we just move all of those to 
1545bd8deadSopenharmony_ci        separate defined extensions?
1555bd8deadSopenharmony_ci        
1565bd8deadSopenharmony_ci        RESOLVED, all the values for <internalformat> in Tables 3.4, 3.4.x, and
1575bd8deadSopenharmony_ci        3.4.y in this extension must be accepted by their respective commands.
1585bd8deadSopenharmony_ci        All sized formats in these tables must be stored with at least the
1595bd8deadSopenharmony_ci        corresponding minimum precision.
1605bd8deadSopenharmony_ci
1615bd8deadSopenharmony_ci        Other extensions may introduce new values for <internalformat>.  If they
1625bd8deadSopenharmony_ci        do, they should modify Tables 3.4, 3.4.x, and 3.4.y.  If an 
1635bd8deadSopenharmony_ci        implementation can support the new <internalformat> values, it will
1645bd8deadSopenharmony_ci        export the extension.
1655bd8deadSopenharmony_ci        
1665bd8deadSopenharmony_ci        The primary motivation for moving "optionally supported" formats to
1675bd8deadSopenharmony_ci        their own extensions is so that a well-behaved application never gets 
1685bd8deadSopenharmony_ci        the idea that it is supposed to check for errors in order to query for 
1695bd8deadSopenharmony_ci        available functionality.  Well-behaved applications should always query
1705bd8deadSopenharmony_ci        for extension strings and other implementation-dependent state to check
1715bd8deadSopenharmony_ci        for available functionality on a particular implementation.
1725bd8deadSopenharmony_ci
1735bd8deadSopenharmony_ci    3.  What should be the recommended way to add new formats in the future?
1745bd8deadSopenharmony_ci    
1755bd8deadSopenharmony_ci        RESOLVED
1765bd8deadSopenharmony_ci        
1775bd8deadSopenharmony_ci        Just like before, new extensions can add new values for <internalformat> 
1785bd8deadSopenharmony_ci        for *TexImage* and RenderbufferStorageOES.  Unless otherwise stated by
1795bd8deadSopenharmony_ci        future extensions, new sized internal formats will provide the same kind
1805bd8deadSopenharmony_ci        of minimum precision guarantees as the formats described herein.
1815bd8deadSopenharmony_ci
1825bd8deadSopenharmony_ci    4.  How should we handle render vs. texture buffers?
1835bd8deadSopenharmony_ci    
1845bd8deadSopenharmony_ci        RESOLVED
1855bd8deadSopenharmony_ci        
1865bd8deadSopenharmony_ci        We have three tables in the spec, one for textures specified with 
1875bd8deadSopenharmony_ci        TexImage*, one for textures specified with CopyTexImage2D, and one for 
1885bd8deadSopenharmony_ci        renderbuffers allocated with RenderbufferStorageOES.
1895bd8deadSopenharmony_ci        
1905bd8deadSopenharmony_ci    5.  Should this extension require RGBA8?  For both texture and render?
1915bd8deadSopenharmony_ci    
1925bd8deadSopenharmony_ci        RESOLVED
1935bd8deadSopenharmony_ci        
1945bd8deadSopenharmony_ci        Yes, for both.  OpenGL ES 2.0 implementations are very likely to have 
1955bd8deadSopenharmony_ci        this support anyway, and OpenGL ES 1.x implementations can choose to 
1965bd8deadSopenharmony_ci        export this extension or not, depending on whether they support 8 bit/
1975bd8deadSopenharmony_ci        component for textures and renderbuffers.
1985bd8deadSopenharmony_ci        
1995bd8deadSopenharmony_ci        Note, this extension does not require RGB8 for renderbuffers.  
2005bd8deadSopenharmony_ci        Availability of RGB8 renderbuffers is still based on presence of the
2015bd8deadSopenharmony_ci        OES_rgb8_rgba8 extension.
2025bd8deadSopenharmony_ci        
2035bd8deadSopenharmony_ci    6.  What should this extension say, if anything, about depth and stencil
2045bd8deadSopenharmony_ci        internal formats for RenderbufferStorageOES?
2055bd8deadSopenharmony_ci        
2065bd8deadSopenharmony_ci        RESOLVED
2075bd8deadSopenharmony_ci        
2085bd8deadSopenharmony_ci        Stencil and depth formats are listed in the Table 3.4.x.  If an
2095bd8deadSopenharmony_ci        implementation that supports this extension doesn't support one or more
2105bd8deadSopenharmony_ci        of the stencil/depth format extensions then this extension behaves as if 
2115bd8deadSopenharmony_ci        those enums are NOT listed in Table 3.4.x.
2125bd8deadSopenharmony_ci        
2135bd8deadSopenharmony_ci    7.  Should we allow every combination of <format>, <type>, and
2145bd8deadSopenharmony_ci        <internalformat>?
2155bd8deadSopenharmony_ci    
2165bd8deadSopenharmony_ci        RESOLVED
2175bd8deadSopenharmony_ci        
2185bd8deadSopenharmony_ci        No, we specifically disallow conversions between "base" formats (between 
2195bd8deadSopenharmony_ci        RGBA and LUMINANCE_ALPHA, for instance).  Further, we also disallow 
2205bd8deadSopenharmony_ci        requested "expansions" to larger data types.  That is, Table 3.4.x 
2215bd8deadSopenharmony_ci        allows the user to request that the GL use a lower precision than the 
2225bd8deadSopenharmony_ci        external <type> would require, but that table does not include any 
2235bd8deadSopenharmony_ci        entries that would require the GL to use more precision than the 
2245bd8deadSopenharmony_ci        external <type> would require.
2255bd8deadSopenharmony_ci
2265bd8deadSopenharmony_ci        We intentionally don't include this feature here because the
2275bd8deadSopenharmony_ci        <internalformat> represents a required minimum precision for the GL.  We
2285bd8deadSopenharmony_ci        don't want to allow an application to require more precision internally
2295bd8deadSopenharmony_ci        than they provide externally because it would necessitate a format
2305bd8deadSopenharmony_ci        conversion.  If some implementation really wants to add this 
2315bd8deadSopenharmony_ci        functionality, it would need to create an additional extension, say 
2325bd8deadSopenharmony_ci        FOO_expanded_internalformat.
2335bd8deadSopenharmony_ci
2345bd8deadSopenharmony_ci        Note that in the opposite situation where an application provides higher
2355bd8deadSopenharmony_ci        precision source data and asks it to be stored at lower precision, an
2365bd8deadSopenharmony_ci        implementation is still free to store at the higher precision, thereby
2375bd8deadSopenharmony_ci        avoiding format conversion.
2385bd8deadSopenharmony_ci
2395bd8deadSopenharmony_ci    8.  Should we split this extension into multiple extensions?
2405bd8deadSopenharmony_ci    
2415bd8deadSopenharmony_ci        RESOLVED
2425bd8deadSopenharmony_ci
2435bd8deadSopenharmony_ci        No.  No vendor has expressed interest in subsetting these 3 features:
2445bd8deadSopenharmony_ci        
2455bd8deadSopenharmony_ci            Feature 1:  This extension allows an application to specify sized 
2465bd8deadSopenharmony_ci            <internalformats> enums for texture and render buffer image 
2475bd8deadSopenharmony_ci            allocation.
2485bd8deadSopenharmony_ci
2495bd8deadSopenharmony_ci            Feature 2:  This extension allows the implementation to export a 
2505bd8deadSopenharmony_ci            list of sized <internalformats> for which it will guarantee to 
2515bd8deadSopenharmony_ci            maintain the specified minimum precision when those formats are used 
2525bd8deadSopenharmony_ci            for texture or renderbuffer image allocation.
2535bd8deadSopenharmony_ci
2545bd8deadSopenharmony_ci            Feature 3:  This extension defines a minimum set of sized
2555bd8deadSopenharmony_ci            <internalformat> enums that are required to be exported by the query 
2565bd8deadSopenharmony_ci            mechanism in #2 above.
2575bd8deadSopenharmony_ci
2585bd8deadSopenharmony_ci    9.  Should we add a query that lets the implementation advertise which 
2595bd8deadSopenharmony_ci        sized internal formats it supports with minimum precision?
2605bd8deadSopenharmony_ci
2615bd8deadSopenharmony_ci        RESOLVED 
2625bd8deadSopenharmony_ci
2635bd8deadSopenharmony_ci        No, we'll leave it to a future extension to add this mechanism if
2645bd8deadSopenharmony_ci        necessary.  Today all sized internal formats have guaranteed minimum
2655bd8deadSopenharmony_ci        precision.  For posterity, we were close to choosing query mechanism 'c'
2665bd8deadSopenharmony_ci        from the list below before we dropped the query entirely:
2675bd8deadSopenharmony_ci         
2685bd8deadSopenharmony_ci            a) a query for a single format's support like this:
2695bd8deadSopenharmony_ci         
2705bd8deadSopenharmony_ci            boolean QuerySupportOES(enum param, int count, const enum* list); 
2715bd8deadSopenharmony_ci
2725bd8deadSopenharmony_ci            which takes a <list> of <count> sized internal format enums and 
2735bd8deadSopenharmony_ci            returns GL_FALSE if any of them, when used as a sized internal 
2745bd8deadSopenharmony_ci            format with the currently bound context, would result in an internal 
2755bd8deadSopenharmony_ci            format of lower precision than requested.  The <param> could be
2765bd8deadSopenharmony_ci            GL_SUPPORTED_TEXTURE_INTERNALFORMAT for querying supported texture 
2775bd8deadSopenharmony_ci            precisions and GL_SUPPORTED_RENDERBUFFER_INTERNALFORMAT for querying
2785bd8deadSopenharmony_ci            supported renderbuffer precisions.
2795bd8deadSopenharmony_ci        
2805bd8deadSopenharmony_ci            b) a query for all supported formats that the implementation can 
2815bd8deadSopenharmony_ci               guarantee minimum precision, like this:
2825bd8deadSopenharmony_ci        
2835bd8deadSopenharmony_ci            void GetSupportedInternalFormatsOES(enum param, 
2845bd8deadSopenharmony_ci                                                int* count, 
2855bd8deadSopenharmony_ci                                                enum* list);
2865bd8deadSopenharmony_ci        
2875bd8deadSopenharmony_ci            where <param> must be TEXTURE_INTERNALFORMAT or
2885bd8deadSopenharmony_ci            RENDERBUFFER_INTERNALFORMAT.  On input <count> is the maximum
2895bd8deadSopenharmony_ci            number of internal formats to return, and on output <count>
2905bd8deadSopenharmony_ci            is the number of internal formats in <list>.  On output, <list> 
2915bd8deadSopenharmony_ci            contains all the values of <internalformat> for which the 
2925bd8deadSopenharmony_ci            implementation will guarantee specified precision.  <list> will 
2935bd8deadSopenharmony_ci            contain <count> entries.
2945bd8deadSopenharmony_ci            
2955bd8deadSopenharmony_ci            c) a query of a single internalformat providing a yes/no answer:
2965bd8deadSopenharmony_ci
2975bd8deadSopenharmony_ci            boolean IsPreciseInternalformatOES(enum param, enum internalformat);
2985bd8deadSopenharmony_ci
2995bd8deadSopenharmony_ci            where <param> must be TEXTURE or RENDERBUFFER_OES, and
3005bd8deadSopenharmony_ci            <internalformat> is the internal format for which the app is
3015bd8deadSopenharmony_ci            checking the minimum precision storage guarantee.
3025bd8deadSopenharmony_ci
3035bd8deadSopenharmony_ci    10. What is the OES_framebuffer_object interaction?  Are FBOs a 
3045bd8deadSopenharmony_ci        prerequisite (even on ES 1.1), or should we strike mention of
3055bd8deadSopenharmony_ci        renderbuffers if FBOs aren't available?
3065bd8deadSopenharmony_ci
3075bd8deadSopenharmony_ci        RESOLVED
3085bd8deadSopenharmony_ci
3095bd8deadSopenharmony_ci        Sized format hints and minimum precision guarantees for textures are
3105bd8deadSopenharmony_ci        useful even on implementations where FBOs aren't supported.  We won't
3115bd8deadSopenharmony_ci        make FBOs a prerequisite. 
3125bd8deadSopenharmony_ci
3135bd8deadSopenharmony_ci    11. Should we add retroactive support for EXT_texture_type_2_10_10_10_REV?
3145bd8deadSopenharmony_ci
3155bd8deadSopenharmony_ci        RESOLVED
3165bd8deadSopenharmony_ci
3175bd8deadSopenharmony_ci        Yes.  We introduced two new sized internal formats, RGB10_A2_EXT and
3185bd8deadSopenharmony_ci        RGB10_EXT.  This format continues to be unrenderable, consistent with
3195bd8deadSopenharmony_ci        the EXT_texture_type_2_10_10_10_REV spec.  These formats join the rest
3205bd8deadSopenharmony_ci        of existing sized internal formats on the required list of formats for
3215bd8deadSopenharmony_ci        which precision is guaranteed.
3225bd8deadSopenharmony_ci
3235bd8deadSopenharmony_ci    12. Do we need different token values from OpenGL?
3245bd8deadSopenharmony_ci
3255bd8deadSopenharmony_ci        RESOLVED
3265bd8deadSopenharmony_ci
3275bd8deadSopenharmony_ci        No. Initially some new tokens (such as ALPHA8_OES) were given new
3285bd8deadSopenharmony_ci        values, which was due to a difference in the meaning relative to
3295bd8deadSopenharmony_ci        OpenGL: in OpenGL 2.1, sized internal formats were purely hints,
3305bd8deadSopenharmony_ci        whereas in this extension they are lower bounds. However, OpenGL
3315bd8deadSopenharmony_ci        now specifies a number of formats as being "required" in the
3325bd8deadSopenharmony_ci        same sense of a lower bound on precision, and the token values
3335bd8deadSopenharmony_ci        are not changed.
3345bd8deadSopenharmony_ci
3355bd8deadSopenharmony_ciNew Procedures and Functions
3365bd8deadSopenharmony_ci
3375bd8deadSopenharmony_ci    None.
3385bd8deadSopenharmony_ci
3395bd8deadSopenharmony_ciNew Types
3405bd8deadSopenharmony_ci
3415bd8deadSopenharmony_ci    None.
3425bd8deadSopenharmony_ci
3435bd8deadSopenharmony_ciNew Tokens
3445bd8deadSopenharmony_ci    
3455bd8deadSopenharmony_ci     Accepted by the <internalformat> argument of TexImage2D, TexImage3DOES, and 
3465bd8deadSopenharmony_ci     CopyTexImage2D:
3475bd8deadSopenharmony_ci         
3485bd8deadSopenharmony_ci         ALPHA8_OES                       0x803C
3495bd8deadSopenharmony_ci         LUMINANCE8_OES                   0x8040
3505bd8deadSopenharmony_ci         LUMINANCE8_ALPHA8_OES            0x8045
3515bd8deadSopenharmony_ci         LUMINANCE4_ALPHA4_OES            0x8043
3525bd8deadSopenharmony_ci         RGB565_OES                       0x8D62
3535bd8deadSopenharmony_ci         RGB8_OES                         0x8051
3545bd8deadSopenharmony_ci         RGBA4_OES                        0x8056
3555bd8deadSopenharmony_ci         RGB5_A1_OES                      0x8057
3565bd8deadSopenharmony_ci         RGBA8_OES                        0x8058
3575bd8deadSopenharmony_ci         DEPTH_COMPONENT16_OES            0x81A5
3585bd8deadSopenharmony_ci         DEPTH_COMPONENT24_OES            0x81A6
3595bd8deadSopenharmony_ci         DEPTH_COMPONENT32_OES            0x81A7
3605bd8deadSopenharmony_ci         DEPTH24_STENCIL8_OES             0x88F0
3615bd8deadSopenharmony_ci         RGB10_EXT                        0x8052
3625bd8deadSopenharmony_ci         RGB10_A2_EXT                     0x8059
3635bd8deadSopenharmony_ci         
3645bd8deadSopenharmony_ci     Accepted by the <internalformat> argument of RenderbufferStorageOES:
3655bd8deadSopenharmony_ci         
3665bd8deadSopenharmony_ci         RGBA8_OES                        0x8058
3675bd8deadSopenharmony_ci         
3685bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL ES 1.1 Specification (OpenGL ES Operation)
3695bd8deadSopenharmony_ci
3705bd8deadSopenharmony_ci    None.
3715bd8deadSopenharmony_ci
3725bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL ES 1.1 Specification (Rasterization)
3735bd8deadSopenharmony_ci
3745bd8deadSopenharmony_ci    In section 3.6.2 ("Unpacking"), p.69 (p. 60/61 of ES 2.0 spec), modify
3755bd8deadSopenharmony_ci    Table 3.4 and replace the preceding paragraph as follows:
3765bd8deadSopenharmony_ci
3775bd8deadSopenharmony_ci
3785bd8deadSopenharmony_ci            Format            Type                            External Bytes per Pixel Internal format
3795bd8deadSopenharmony_ci            ------            ----                            ------------------------ ---------------
3805bd8deadSopenharmony_ci            RGBA              UNSIGNED_INT_2_10_10_10_REV_EXT 4                        RGBA, RGB10_A2_EXT, RGB5_A1
3815bd8deadSopenharmony_ci            RGBA              UNSIGNED_BYTE                   4                        RGBA, RGBA8, RGB5_A1, RGBA4  
3825bd8deadSopenharmony_ci            RGB               UNSIGNED_INT_2_10_10_10_REV_EXT 4                        RGB,  RGB10_EXT, RGB8, RGB565 
3835bd8deadSopenharmony_ci            RGB               UNSIGNED_BYTE                   3                        RGB,  RGB8, RGB565         
3845bd8deadSopenharmony_ci            RGBA              UNSIGNED_SHORT_4_4_4_4          2                        RGBA, RGBA4
3855bd8deadSopenharmony_ci            RGBA              UNSIGNED_SHORT_5_5_5_1          2                        RGBA, RGB5_A1
3865bd8deadSopenharmony_ci            RGB               UNSIGNED_SHORT_5_6_5            2                        RGB,  RGB565
3875bd8deadSopenharmony_ci            LUMINANCE_ALPHA   UNSIGNED_BYTE                   2                        LUMINANCE_ALPHA, LUMINANCE8_ALPHA8, LUMINANCE4_ALPHA4
3885bd8deadSopenharmony_ci            LUMINANCE         UNSIGNED_BYTE                   1                        LUMINANCE,  LUMINANCE8
3895bd8deadSopenharmony_ci            ALPHA             UNSIGNED_BYTE                   1                        ALPHA, ALPHA8
3905bd8deadSopenharmony_ci            DEPTH_COMPONENT   UNSIGNED_SHORT                  2                        DEPTH_COMPONENT, DEPTH_COMPONENT16_OES 
3915bd8deadSopenharmony_ci            DEPTH_COMPONENT   UNSIGNED_INT                    4                        DEPTH_COMPONENT, DEPTH_COMPONENT32_OES, DEPTH_COMPONENT24_OES, DEPTH_COMPONENT16_OES
3925bd8deadSopenharmony_ci            DEPTH_STENCIL_OES UNSIGNED_INT_24_8_OES           4                        DEPTH_STENCIL_OES, DEPTH24_STENCIL8_OES
3935bd8deadSopenharmony_ci
3945bd8deadSopenharmony_ci            Table 3.4: Valid combinations of <format>, <type>, and
3955bd8deadSopenharmony_ci            <internalformat> for TexImage2D and TexImage3DOES
3965bd8deadSopenharmony_ci
3975bd8deadSopenharmony_ci        When calling TexImage2D or TexImage3DOES, not all combinations of 
3985bd8deadSopenharmony_ci        <format>, <type>, and <internalformat> are valid.  The valid 
3995bd8deadSopenharmony_ci        combinations accepted by the GL are defined in Table 3.4.  If TexImage2D 
4005bd8deadSopenharmony_ci        or TexImage3DOES is called with a combination of <format>, <type>, and 
4015bd8deadSopenharmony_ci        <internalformat> not listed in Table 3.4, then INVALID_OPERATION is 
4025bd8deadSopenharmony_ci        generated.
4035bd8deadSopenharmony_ci        
4045bd8deadSopenharmony_ci        In addition, only certain values for <internalformat> are valid when 
4055bd8deadSopenharmony_ci        calling RenderbufferStorageOES and CopyTexImage2D.  The valid values of 
4065bd8deadSopenharmony_ci        <internalformat> are listed in Tables 3.4.x and 3.4.y.  If
4075bd8deadSopenharmony_ci        RenderbufferStorageOES is called with a value of <internalformat> not
4085bd8deadSopenharmony_ci        listed in Table 3.4.x then INVALID_ENUM is generated.  Similarly, if
4095bd8deadSopenharmony_ci        CopyTexImage2D is called with a value of <internalformat> not listed in
4105bd8deadSopenharmony_ci        Table 3.4.y, then INVALID_ENUM is generated.
4115bd8deadSopenharmony_ci
4125bd8deadSopenharmony_ci            Internal format
4135bd8deadSopenharmony_ci            ---------------
4145bd8deadSopenharmony_ci            RGBA4_OES
4155bd8deadSopenharmony_ci            RGB5_A1_OES
4165bd8deadSopenharmony_ci            RGBA8_OES
4175bd8deadSopenharmony_ci            RGB565_OES
4185bd8deadSopenharmony_ci            RGB8_OES
4195bd8deadSopenharmony_ci            STENCIL_INDEX1_OES
4205bd8deadSopenharmony_ci            STENCIL_INDEX4_OES
4215bd8deadSopenharmony_ci            STENCIL_INDEX8_OES
4225bd8deadSopenharmony_ci            DEPTH_COMPONENT16_OES
4235bd8deadSopenharmony_ci            DEPTH_COMPONENT24_OES
4245bd8deadSopenharmony_ci            DEPTH_COMPONENT32_OES
4255bd8deadSopenharmony_ci            DEPTH24_STENCIL8_OES
4265bd8deadSopenharmony_ci
4275bd8deadSopenharmony_ci            Table 3.4.x:  Legal values of <internalformat> for
4285bd8deadSopenharmony_ci            RenderbufferStorageOES
4295bd8deadSopenharmony_ci
4305bd8deadSopenharmony_ci            Internal format
4315bd8deadSopenharmony_ci            ---------------    
4325bd8deadSopenharmony_ci            RGBA
4335bd8deadSopenharmony_ci            RGBA4_OES
4345bd8deadSopenharmony_ci            RGB5_A1_OES
4355bd8deadSopenharmony_ci            RGBA8_OES
4365bd8deadSopenharmony_ci            RGB10_A2_EXT
4375bd8deadSopenharmony_ci            RGB
4385bd8deadSopenharmony_ci            RGB565_OES
4395bd8deadSopenharmony_ci            RGB8_OES
4405bd8deadSopenharmony_ci            RGB10_EXT
4415bd8deadSopenharmony_ci            LUMINANCE_ALPHA
4425bd8deadSopenharmony_ci            LUMINANCE4_ALPHA4_OES
4435bd8deadSopenharmony_ci            LUMINANCE8_ALPHA8_OES
4445bd8deadSopenharmony_ci            LUMINANCE
4455bd8deadSopenharmony_ci            LUMINANCE8_OES
4465bd8deadSopenharmony_ci            ALPHA
4475bd8deadSopenharmony_ci            ALPHA8_OES
4485bd8deadSopenharmony_ci
4495bd8deadSopenharmony_ci            Table 3.4.y:  Legal values of <internalformat> for CopyTexImage2D
4505bd8deadSopenharmony_ci
4515bd8deadSopenharmony_ci        An implementation must accept all of the values for <internalformat> 
4525bd8deadSopenharmony_ci        specified in Tables 3.4, 3.4.x, 3.4.y.  Furthermore, an implementation
4535bd8deadSopenharmony_ci        must respect the minimum precision requirements of sized internal
4545bd8deadSopenharmony_ci        formats -- those with explicit component resolutions -- by storing each
4555bd8deadSopenharmony_ci        component with at least the number of bits prescribed.
4565bd8deadSopenharmony_ci
4575bd8deadSopenharmony_ci        If one of the base "unsized" formats (RGBA, RGB, LUMINANCE_ALPHA, 
4585bd8deadSopenharmony_ci        LUMINANCE, ALPHA, DEPTH_COMPONENT, or DEPTH_STENCIL_OES) is specified
4595bd8deadSopenharmony_ci        for <internalformat> to TexImage2D, TexImage3DOES, or CopyTexImage2D,
4605bd8deadSopenharmony_ci        the GL is free to choose the precision that it will maintain for the
4615bd8deadSopenharmony_ci        texture.  ES implementations are still encouraged, however, to maintain
4625bd8deadSopenharmony_ci        as much precision as possible, given the source arguments to those
4635bd8deadSopenharmony_ci        commands.
4645bd8deadSopenharmony_ci
4655bd8deadSopenharmony_ci    In section 3.7.9 (3.7.10 for ES 2.0), update the definition of texture
4665bd8deadSopenharmony_ci    completeness (and cube completeness for ES 2.0 or in the presence of
4675bd8deadSopenharmony_ci    OES_texture_cube_map) to read:
4685bd8deadSopenharmony_ci
4695bd8deadSopenharmony_ci        "... were each specified with the same format, type, and internal
4705bd8deadSopenharmony_ci        format."
4715bd8deadSopenharmony_ci        
4725bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL ES 1.1 Specification (Per-Fragment 
4735bd8deadSopenharmony_ciOperations and the Frame Buffer)
4745bd8deadSopenharmony_ci
4755bd8deadSopenharmony_ci    None.
4765bd8deadSopenharmony_ci
4775bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL ES 1.1 Specification (Special Functions)
4785bd8deadSopenharmony_ci
4795bd8deadSopenharmony_ci    None.
4805bd8deadSopenharmony_ci
4815bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL ES 1.1 Specification (State and State 
4825bd8deadSopenharmony_ciRequests)
4835bd8deadSopenharmony_ci
4845bd8deadSopenharmony_ci    None.
4855bd8deadSopenharmony_ci
4865bd8deadSopenharmony_ciAdditions to Appendix A of the OpenGL ES 1.1 Specification (Invariance)
4875bd8deadSopenharmony_ci
4885bd8deadSopenharmony_ci    None.
4895bd8deadSopenharmony_ci
4905bd8deadSopenharmony_ciAdditions to the AGL/EGL/GLX/WGL Specifications
4915bd8deadSopenharmony_ci
4925bd8deadSopenharmony_ci    None.
4935bd8deadSopenharmony_ci
4945bd8deadSopenharmony_ciGLX Protocol
4955bd8deadSopenharmony_ci
4965bd8deadSopenharmony_ci    XXX TBD
4975bd8deadSopenharmony_ci
4985bd8deadSopenharmony_ciErrors
4995bd8deadSopenharmony_ci
5005bd8deadSopenharmony_ci   If TexImage2D or TexImage3DOES is called with a combination of <format>, 
5015bd8deadSopenharmony_ci   <type>, and <internalformat> not listed in Table 3.4, then INVALID_OPERATION
5025bd8deadSopenharmony_ci   is generated.
5035bd8deadSopenharmony_ci
5045bd8deadSopenharmony_ci   If RenderbufferStorageOES or CopyTexImage2D is called with a value of
5055bd8deadSopenharmony_ci   <internalformat> not listed in Table 3.4.x or 3.4.y, respectively, then 
5065bd8deadSopenharmony_ci   INVALID_ENUM is generated.
5075bd8deadSopenharmony_ci   
5085bd8deadSopenharmony_ciNew State
5095bd8deadSopenharmony_ci
5105bd8deadSopenharmony_ci    None.
5115bd8deadSopenharmony_ci
5125bd8deadSopenharmony_ciNew Implementation Dependent State
5135bd8deadSopenharmony_ci
5145bd8deadSopenharmony_ci    None.
5155bd8deadSopenharmony_ci    
5165bd8deadSopenharmony_ciDependencies on OpenGL ES 2.0
5175bd8deadSopenharmony_ci
5185bd8deadSopenharmony_ci    If OpenGL ES 2.0 is supported, the following tokens do not have the
5195bd8deadSopenharmony_ci    "_OES" suffix: RGB565, RGBA4, RGB5_A1, DEPTH_COMPONENT16, STENCIL_INDEX8,
5205bd8deadSopenharmony_ci    and RENDERBUFFER.  Also, RenderbufferStorage does not have the "OES" suffix.
5215bd8deadSopenharmony_ci
5225bd8deadSopenharmony_ciDependencies on OES_depth_texture
5235bd8deadSopenharmony_ci    
5245bd8deadSopenharmony_ci    If OES_depth_texture is not supported, then all references to
5255bd8deadSopenharmony_ci    DEPTH_COMPONENT as a legal value for <format> when calling TexImage2D and 
5265bd8deadSopenharmony_ci    TexImage3DOES should be deleted.
5275bd8deadSopenharmony_ci
5285bd8deadSopenharmony_ciDependencies on OES_depth24 and OES_depth32
5295bd8deadSopenharmony_ci
5305bd8deadSopenharmony_ci    If OES_depth24 is not supported, then all references to
5315bd8deadSopenharmony_ci    DEPTH_COMPONENT24_OES should be deleted.
5325bd8deadSopenharmony_ci
5335bd8deadSopenharmony_ci    If OES_depth32 is not supported, then all references to
5345bd8deadSopenharmony_ci    DEPTH_COMPONENT32_OES should be deleted.
5355bd8deadSopenharmony_ci
5365bd8deadSopenharmony_ciDependencies on OES_framebuffer_object
5375bd8deadSopenharmony_ci
5385bd8deadSopenharmony_ci    If OES_framebuffer_object is not supported and OpenGL ES 2.0 is not 
5395bd8deadSopenharmony_ci    supported, then all references to RENDERBUFFER_OES and renderbuffers should
5405bd8deadSopenharmony_ci    be deleted, including Table 3.4.x.
5415bd8deadSopenharmony_ci
5425bd8deadSopenharmony_ciDependencies on OES_packed_depth_stencil
5435bd8deadSopenharmony_ci    
5445bd8deadSopenharmony_ci    If OES_packed_depth_stencil is not supported, then all references to
5455bd8deadSopenharmony_ci    DEPTH_STENCIL_OES, DEPTH24_STENCIL8_OES, and UNSIGNED_INT_24_8_OES should be 
5465bd8deadSopenharmony_ci    deleted.
5475bd8deadSopenharmony_ci
5485bd8deadSopenharmony_ciDependencies on OES_rgb8_rgba8
5495bd8deadSopenharmony_ci
5505bd8deadSopenharmony_ci    If OES_rgb8_rgba8 is not supported, then references to RGB8_OES as a 
5515bd8deadSopenharmony_ci    renderbuffer format in Table 3.4.x should be deleted.
5525bd8deadSopenharmony_ci
5535bd8deadSopenharmony_ciDependencies on OES_stencil1, OES_stencil4, and OES_stencil8 
5545bd8deadSopenharmony_ci
5555bd8deadSopenharmony_ci    If OES_stencil1 is not supported, then all references to STENCIL_INDEX1_OES
5565bd8deadSopenharmony_ci    should be deleted.
5575bd8deadSopenharmony_ci
5585bd8deadSopenharmony_ci    If OES_stencil4 is not supported, then all references to STENCIL_INDEX4_OES
5595bd8deadSopenharmony_ci    should be deleted.
5605bd8deadSopenharmony_ci
5615bd8deadSopenharmony_ci    If OES_stencil8 is not supported and OpenGL ES 2.0 is not supported, then 
5625bd8deadSopenharmony_ci    all references to STENCIL_INDEX8_OES should be deleted.
5635bd8deadSopenharmony_ci
5645bd8deadSopenharmony_ciDependencies on OES_texture_3D
5655bd8deadSopenharmony_ci
5665bd8deadSopenharmony_ci    If OES_texture_3D is not supported, then all references to TexImage3DOES 
5675bd8deadSopenharmony_ci    should be deleted.
5685bd8deadSopenharmony_ci
5695bd8deadSopenharmony_ciDependencies on EXT_texture_type_2_10_10_10_REV
5705bd8deadSopenharmony_ci
5715bd8deadSopenharmony_ci    If EXT_texture_type_2_10_10_10_REV is not supported, then all references to
5725bd8deadSopenharmony_ci    RGB10_A2_EXT, RGB10_EXT, and UNSIGNED_INT_2_10_10_10_REV_EXT should be
5735bd8deadSopenharmony_ci    deleted.
5745bd8deadSopenharmony_ci
5755bd8deadSopenharmony_ciSample Code
5765bd8deadSopenharmony_ci
5775bd8deadSopenharmony_ci    // ====================================================================
5785bd8deadSopenharmony_ci    // Example 1: 
5795bd8deadSopenharmony_ci    // An application that requires support for RGBA with >= 8888 storage
5805bd8deadSopenharmony_ci    // can indicate so by simply checking for the OES_required_internalformat
5815bd8deadSopenharmony_ci    // extension string, since RGBA8_OES availability is a prerequisite.
5825bd8deadSopenharmony_ci    // ====================================================================
5835bd8deadSopenharmony_ci    
5845bd8deadSopenharmony_ci    // First, check for presence of this extension.
5855bd8deadSopenharmony_ci    bool reqSupportAvailable = 
5865bd8deadSopenharmony_ci        MyExtensionQuery("GL_OES_required_internalformat");
5875bd8deadSopenharmony_ci    if (!reqSupportAvailable)
5885bd8deadSopenharmony_ci    {
5895bd8deadSopenharmony_ci        printf("No support for GL_OES_required_internalformat!\n");
5905bd8deadSopenharmony_ci        exit(1);
5915bd8deadSopenharmony_ci    }
5925bd8deadSopenharmony_ci
5935bd8deadSopenharmony_ci    // This texture is guaranteed to be stored with at least 8-bit per component
5945bd8deadSopenharmony_ci    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8_OES, 32, 32, 0,
5955bd8deadSopenharmony_ci                 GL_RGBA, GL_UNSIGNED_BYTE, myTexelData);
5965bd8deadSopenharmony_ci
5975bd8deadSopenharmony_ci    // ====================================================================
5985bd8deadSopenharmony_ci    // Example 2: 
5995bd8deadSopenharmony_ci    // An application that requires support for DEPTH_COMPONENT with >= 32 bit
6005bd8deadSopenharmony_ci    // storage can indicate so by checking for both OES_required_internalformat
6015bd8deadSopenharmony_ci    // and OES_depth32 extension strings.  That will guarantee minimum precision
6025bd8deadSopenharmony_ci    // for 32-bit depth values stored in renderbuffers.  If the application also
6035bd8deadSopenharmony_ci    // needs 32-bit depth stored in textures, it can check for the 
6045bd8deadSopenharmony_ci    // OES_depth_texture extension, too.
6055bd8deadSopenharmony_ci    // ====================================================================
6065bd8deadSopenharmony_ci
6075bd8deadSopenharmony_ci    // First, check for presence of this extension.
6085bd8deadSopenharmony_ci    bool reqSupportAvailable = CheckExtension("GL_OES_required_internalformat");
6095bd8deadSopenharmony_ci    if (!reqSupportAvailable)
6105bd8deadSopenharmony_ci    {
6115bd8deadSopenharmony_ci        printf("No support for GL_OES_required_internalformat.\n");
6125bd8deadSopenharmony_ci        printf("Minimum precision guarantees cannot be made!\n");
6135bd8deadSopenharmony_ci        exit(1);
6145bd8deadSopenharmony_ci    }
6155bd8deadSopenharmony_ci    
6165bd8deadSopenharmony_ci    // Now check for the presence of the depth32 extension.
6175bd8deadSopenharmony_ci    bool depth32_available = CheckExtension("GL_OES_depth32");
6185bd8deadSopenharmony_ci    if (!depth32_available)
6195bd8deadSopenharmony_ci    {
6205bd8deadSopenharmony_ci        printf("No support for OES_depth32.\n");
6215bd8deadSopenharmony_ci        printf("32-bit depth renderbuffers not available!\n");
6225bd8deadSopenharmony_ci        exit(1);
6235bd8deadSopenharmony_ci    }
6245bd8deadSopenharmony_ci
6255bd8deadSopenharmony_ci    // We're now guaranteed minimum 32-bit depth renderbuffers
6265bd8deadSopenharmony_ci    glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT32_OES,
6275bd8deadSopenharmony_ci                             32, 32);
6285bd8deadSopenharmony_ci
6295bd8deadSopenharmony_ci    // Now check for the presence of the depth texture extension.
6305bd8deadSopenharmony_ci    bool depth_texture_available = CheckExtension("GL_OES_depth_texture");
6315bd8deadSopenharmony_ci    if (!depth_texture_available)
6325bd8deadSopenharmony_ci    {
6335bd8deadSopenharmony_ci        printf("No support for OES_depth_texture.\n");
6345bd8deadSopenharmony_ci        printf("32-bit depth textures not available!\n");
6355bd8deadSopenharmony_ci        exit(1);
6365bd8deadSopenharmony_ci    }
6375bd8deadSopenharmony_ci
6385bd8deadSopenharmony_ci    // We're now guaranteed minimum 32-bit depth textures
6395bd8deadSopenharmony_ci    glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT32_OES, 32, 32, 0,
6405bd8deadSopenharmony_ci                 GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, myD32TexelData);
6415bd8deadSopenharmony_ci
6425bd8deadSopenharmony_ciRevision History
6435bd8deadSopenharmony_ci
6445bd8deadSopenharmony_ci    0.19, 01/29/2010, bmerry
6455bd8deadSopenharmony_ci    - changed token values for six formats where they were different
6465bd8deadSopenharmony_ci      from equivalent OpenGL tokens, and added issue 12
6475bd8deadSopenharmony_ci
6485bd8deadSopenharmony_ci    0.18, 11/26/2008, benj
6495bd8deadSopenharmony_ci    - RGBA8 is mandated as a renderbuffer format, while RGB8 is only available
6505bd8deadSopenharmony_ci      if OES_rgb8_rgba8 is present.
6515bd8deadSopenharmony_ci
6525bd8deadSopenharmony_ci    0.17, 11/19/2008, benj
6535bd8deadSopenharmony_ci    - treat OES_rgb8_rgba8 as optional like other renderbuffer format extensions
6545bd8deadSopenharmony_ci    - update Dependencies section
6555bd8deadSopenharmony_ci    - assign enum values for new tokens
6565bd8deadSopenharmony_ci    - fix minor typos
6575bd8deadSopenharmony_ci
6585bd8deadSopenharmony_ci    0.16, 11/03/2008, benj
6595bd8deadSopenharmony_ci    - remove query mechanism since all sized internal formats have guaranteed
6605bd8deadSopenharmony_ci      minimum precision today
6615bd8deadSopenharmony_ci    - mention OES_rgb8_rgba8 requirement under Dependencies section
6625bd8deadSopenharmony_ci    - remove more tokens introduced by other extensions from New Tokens
6635bd8deadSopenharmony_ci    - update overview, issues list, and sample code
6645bd8deadSopenharmony_ci
6655bd8deadSopenharmony_ci    0.15, 10/29/2008, benj
6665bd8deadSopenharmony_ci    - fix sample code bugs reported by Acorn
6675bd8deadSopenharmony_ci    - firm up the definition of texture completeness, requested by Acorn
6685bd8deadSopenharmony_ci
6695bd8deadSopenharmony_ci    0.14, 10/29/2008, benj
6705bd8deadSopenharmony_ci    - fix spec bug reported by Ben in New Tokens section: split up token list
6715bd8deadSopenharmony_ci    - remove unrenderable RGB10_A2_EXT and RGB10_EXT formats from Table 3.4.x
6725bd8deadSopenharmony_ci    - get rid of gl, GL, and GL_ prefixes
6735bd8deadSopenharmony_ci    - switch query mechanism to new glIsRespectedInternalFormat
6745bd8deadSopenharmony_ci    - update issues list and sample code
6755bd8deadSopenharmony_ci
6765bd8deadSopenharmony_ci    0.13, 10/28/2008, benj
6775bd8deadSopenharmony_ci    - major overhaul
6785bd8deadSopenharmony_ci    - remove double pointer from query command
6795bd8deadSopenharmony_ci    - fix extension names for depth and stencil extensions
6805bd8deadSopenharmony_ci    - sync up with latest 10/10/10/2 texture and depth texture extensions
6815bd8deadSopenharmony_ci    - don't allow RGBA8 or RGBA4 internal formats for 10/10/10/2 textures
6825bd8deadSopenharmony_ci      since that would require expanding the alpha channel
6835bd8deadSopenharmony_ci    - add OES suffix to most tokens, EXT for 10/10/10/2 tokens
6845bd8deadSopenharmony_ci    - remove tokens that aren't introduced by this extension from New Tokens
6855bd8deadSopenharmony_ci    - add missing ALPHA8_OES and DEPTH_COMPONENT16_OES to New Tokens
6865bd8deadSopenharmony_ci    - remove unsized formats from Table 3.4.x, add missing DEPTH_COMPONENT16
6875bd8deadSopenharmony_ci    - remove L, A, and LA formats from Table 3.4.x and Table 3.6.x
6885bd8deadSopenharmony_ci      RENDERBUFFER_OES section
6895bd8deadSopenharmony_ci    - add interactions with ES 2.0 and OES_framebuffer_object
6905bd8deadSopenharmony_ci    - change error for invalid combination of format/type/internalformat from
6915bd8deadSopenharmony_ci      INVALID_ENUM to INVALID_OPERATION
6925bd8deadSopenharmony_ci    - reformat for 80 columns
6935bd8deadSopenharmony_ci    - update issues list and sample code
6945bd8deadSopenharmony_ci
6955bd8deadSopenharmony_ci    0.12, 02/27/2008, jsandmel
6965bd8deadSopenharmony_ci    - added glGetSupportedInternalFormatsOES to new procedures section
6975bd8deadSopenharmony_ci    - fixed typo in argument name for <internalformatlist>
6985bd8deadSopenharmony_ci
6995bd8deadSopenharmony_ci    0.11, 02/05/2008, jsandmel
7005bd8deadSopenharmony_ci    - reworked API after the Portland F2F
7015bd8deadSopenharmony_ci    - added query for supported internal formats
7025bd8deadSopenharmony_ci    - updated section 3.6.2.1 on how the required list works
7035bd8deadSopenharmony_ci    - added table 3.6.x for the list of required <internalformats>
7045bd8deadSopenharmony_ci    - added a sample code example of the query for supported <internalformats>
7055bd8deadSopenharmony_ci    - added dependency on packed depth stencil
7065bd8deadSopenharmony_ci
7075bd8deadSopenharmony_ci    0.10, 10/16/2007, jsandmel
7085bd8deadSopenharmony_ci    - fixed several typos and non-ascii characters, no functional changes
7095bd8deadSopenharmony_ci
7105bd8deadSopenharmony_ci    0.9, 10/15/2007, jsandmel
7115bd8deadSopenharmony_ci    - added issues 12 and 13
7125bd8deadSopenharmony_ci    - included Acorn's suggestion for a query for supported formats that
7135bd8deadSopenharmony_ci      respect the minimum precision guarantee
7145bd8deadSopenharmony_ci
7155bd8deadSopenharmony_ci    0.8, 05/27/2007, jsandmel
7165bd8deadSopenharmony_ci    - added contributors section
7175bd8deadSopenharmony_ci    - updated spec with recent group decisions
7185bd8deadSopenharmony_ci    - added explicit dependencies on OES_stencil, OES_depth extensions
7195bd8deadSopenharmony_ci    - split table 3.4.x into two tables: one for RenderbufferStorageOES
7205bd8deadSopenharmony_ci      and one for CopyTexImage since you can create a depth/stencil
7215bd8deadSopenharmony_ci      renderbuffer but not texture.
7225bd8deadSopenharmony_ci
7235bd8deadSopenharmony_ci    0.7, 05/21/2007, jsandmel
7245bd8deadSopenharmony_ci    - updated spec with recent group decisions
7255bd8deadSopenharmony_ci    - removed concept of "optionally supported" extensions
7265bd8deadSopenharmony_ci    - added second table for RenderBuffer storage
7275bd8deadSopenharmony_ci
7285bd8deadSopenharmony_ci    0.6, 05/03/2007, jsandmel
7295bd8deadSopenharmony_ci    - fixed some typos refering to OpenGL 1.5 spec that should be ES 1.1 spec
7305bd8deadSopenharmony_ci
7315bd8deadSopenharmony_ci    0.5, 4/28/2007, jsandmel
7325bd8deadSopenharmony_ci    - changed a few more references to LUMINANCE/ALPHA instead of L/A
7335bd8deadSopenharmony_ci    - also clarified overview wrt to required <internalformat> semantics
7345bd8deadSopenharmony_ci
7355bd8deadSopenharmony_ci    0.4, 4/25/2007, jsandmel
7365bd8deadSopenharmony_ci    - corrected table 3.4 and 3.4x to use LUMINANCE/ALPHA instead of L/A
7375bd8deadSopenharmony_ci
7385bd8deadSopenharmony_ci    0.3, 4/24/2007, jsandmel
7395bd8deadSopenharmony_ci    - added issue 5 to discuss whether we should move all the "optionally
7405bd8deadSopenharmony_ci      supported" <internalformat> values to their own extensions
7415bd8deadSopenharmony_ci
7425bd8deadSopenharmony_ci    0.2, 4/24/2007, jsandmel
7435bd8deadSopenharmony_ci    - fixed up a few typos and lingering references to UNPACK state
7445bd8deadSopenharmony_ci
7455bd8deadSopenharmony_ci    0.1, 4/23/2007, jsandmel
7465bd8deadSopenharmony_ci    - switch to start using <internalformat> instead of adding a new
7475bd8deadSopenharmony_ci      UNPACK parameter.
7485bd8deadSopenharmony_ci    
7495bd8deadSopenharmony_ci    0.0, 4/17/2007, jsandmel
7505bd8deadSopenharmony_ci    - initial revision
751