| Name |
| |
| OES_blend_func_separate |
| |
| Name Strings |
| |
| GL_OES_blend_func_separate |
| |
| Contact |
| |
| Benj Lipchak, Apple (lipchak 'at' apple.com) |
| |
| Notice |
| |
| Copyright (c) 2009-2013 The Khronos Group Inc. Copyright terms at |
| http://www.khronos.org/registry/speccopyright.html |
| |
| Specification Update Policy |
| |
| Khronos-approved extension specifications are updated in response to |
| issues and bugs prioritized by the Khronos OpenGL ES Working Group. For |
| extensions which have been promoted to a core Specification, fixes will |
| first appear in the latest version of that core Specification, and will |
| eventually be backported to the extension document. This policy is |
| described in more detail at |
| https://www.khronos.org/registry/OpenGL/docs/update_policy.php |
| |
| Status |
| |
| Ratified by the Khronos BOP, July 31, 2009. |
| |
| Version |
| |
| Date: 05/19/2009 Version 1.0 |
| |
| Number |
| |
| OpenGL ES Extension #2 |
| |
| Dependencies |
| |
| Written based on the wording of the OpenGL ES 1.1 specification. |
| |
| Overview |
| |
| Blending capability is extended by defining a function that allows |
| independent setting of the RGB and alpha blend factors for blend |
| operations that require source and destination blend factors. It |
| is not always desired that the blending used for RGB is also applied |
| to alpha. |
| |
| New Procedures and Functions |
| |
| void BlendFuncSeparateOES(enum sfactorRGB, |
| enum dfactorRGB, |
| enum sfactorAlpha, |
| enum dfactorAlpha); |
| |
| New Tokens |
| |
| Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, and |
| GetFloatv: |
| |
| BLEND_DST_RGB_OES 0x80C8 |
| BLEND_SRC_RGB_OES 0x80C9 |
| BLEND_DST_ALPHA_OES 0x80CA |
| BLEND_SRC_ALPHA_OES 0x80CB |
| |
| Additions to Chapter 2 of the OpenGL ES 1.1 Specification (OpenGL Operation) |
| |
| None |
| |
| Additions to Chapter 3 of the OpenGL ES 1.1 Specification (Rasterization) |
| |
| None |
| |
| Additions to Chapter 4 of the OpenGL ES 1.1 Specification (Per-Fragment Operations |
| and the Framebuffer) |
| |
| Replace the "Blend Equation" discussion in section 4.1.7 (Blending) with |
| the following: |
| |
| "The weighting factors used by the blend equation are determined by the |
| blend functions. Blend functions are specified with the commands |
| |
| void BlendFuncSeparateOES(enum srcRGB, enum dstRGB, enum srcAlpha, enum dstAlpha); |
| void BlendFunc(enum src, enum dst); |
| |
| BlendFuncSeparate arguments <srcRGB and dstRGB determine the source |
| and destination RGB blend functions, respectively, while <srcAlpha> and |
| <dstAlpha> determine the source and destination alpha blend functions. |
| BlendFunc argument <src> determines both the RGB and alpha source |
| functions, while <dst> determines both RGB and alpha destination functions. |
| |
| The possible source and destination blend functions and their |
| corresponding computed blend factors are summarized in table 4.blendfunc. |
| |
| Function RGB Blend Factors Alpha Blend Factor |
| (Sr, Sg, Sb) or (Dr, Dg, Db) Sa or Da |
| ------------------ ---------------------------- ------------------ |
| ZERO (0, 0, 0) 0 |
| ONE (1, 1, 1) 1 |
| SRC_COLOR (Rs, Gs, Bs) As |
| ONE_MINUS_SRC_COLOR (1, 1, 1) - (Rs, Gs, Bs) 1 - As |
| DST_COLOR (Rd, Gd, Bd) Ad |
| ONE_MINUS_DST_COLOR (1, 1, 1) - (Rd, Gd, Bd) 1 - Ad |
| SRC_ALPHA (As, As, As) As |
| ONE_MINUS_SRC_ALPHA (1, 1, 1) - (As, As, As) 1 - As |
| DST_ALPHA (Ad, Ad, Ad) Ad |
| ONE_MINUS_DST_ALPHA (1, 1, 1) - (Ad, Ad, Ad) 1 - Ad |
| SRC_ALPHA_SATURATE (*1) (f, f, f) (*2) 1 |
| |
| Table 4.blendfunc: RGB and ALPHA source and destination blending functions |
| and the corresponding blend factors. Addition and subtraction of triplets |
| is performed component-wise. |
| |
| *1 SRC_ALPHA_SATURATE is valid only for source RGB and alpha blending |
| functions. |
| |
| *2 f = min(As, 1 - Ad)." |
| |
| In the "Blending State" paragraph, insert the following in place of |
| existing blend function state: |
| |
| "The state required for blending is... four integers indicating the source |
| and destination blend functions for RGB and alpha.... The initial state |
| for both source functions is ONE. The initial state for both |
| destination functions is ZERO." |
| |
| Additions to Chapter 5 of the OpenGL ES 1.1 Specification (Special Functions) |
| |
| None |
| |
| Additions to Chapter 6 of the OpenGL ES 1.1 Specification (State and State Requests) |
| |
| None |
| |
| Errors |
| |
| GL_INVALID_ENUM is generated if either sfactorRGB, dfactorRGB, |
| sfactorAlpha, or dfactorAlpha is not an accepted value. |
| |
| New State |
| |
| The get values BLEND_SRC and BLEND_DST return the RGB source and |
| destination factor, respectively. |
| |
| Initial |
| Get Value Get Command Type Value |
| --------- ----------- ---- ------- |
| BLEND_SRC_RGB_OES GetIntegerv Z11 ONE |
| BLEND_DST_RGB_OES GetIntegerv Z10 ZERO |
| BLEND_SRC_ALPHA_OES GetIntegerv Z11 ONE |
| BLEND_DST_ALPHA_OES GetIntegerv Z10 ZERO |
| |
| New Implementation Dependent State |
| |
| None |
| |
| Revision History |
| |
| 2009/05/19 Benj Lipchak First draft of true extension specification |
| |