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