Name OES_blend_subtract Name Strings GL_OES_blend_subtract 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 #3 Dependencies Written based on the wording of the OpenGL ES 1.1 specification. Overview Blending capability is extended by respecifying the entire blend equation. While this document defines only two new equations, the BlendEquationOES procedure that it defines will be used by subsequent extensions to define additional blending equations. In addition to the default blending equation, two new blending equations are specified. These equations are similar to the default blending equation, but produce the difference of its left and right hand sides, rather than the sum. Image differences are useful in many image processing applications. New Procedures and Functions void BlendEquationOES(enum mode); New Tokens Accepted by the parameter of BlendEquationOES: FUNC_ADD_OES 0x8006 FUNC_SUBTRACT_OES 0x800A FUNC_REVERSE_SUBTRACT_OES 0x800B Accepted by the parameter of GetBooleanv, GetIntegerv, and GetFloatv: BLEND_EQUATION_OES 0x8009 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 1st paragraph of the "Blend Equation" discussion in section 4.1.7 (Blending) with the following: "Blending is controlled by the blend equations, defined by the command void BlendEquationOES(enum mode); determines the blend equation. must be one of FUNC_ADD_OES, FUNC_SUBTRACT_OES, or FUNC_REVERSE_SUBTRACT_OES." Replace the last paragraph of the "Blend Equation" discussion in section 4.1.7 (Blending) with the following: "Table 4.blendeq provides the corresponding per-component blend equations for each mode. In the table, the s subscript on a color component abbreviation (R, G, B, or A) refers to the source color component for an incoming fragment and the d subscript on a color component abbreviation refers to the destination color component at the corresponding framebuffer location. A color component abbreviation without a subscript refers to the new color component resulting from blending. Additionally, Sr, Sg, Sb, and Sa are the red, green, blue, and alpha components of the source weighting factors determined by the source blend function, and Dr, Dg , Db, and Da are the red, green, blue, and alpha components of the destination weighting factors determined by the destination blend function. Blend functions are described below. Mode Equation ------------------------- --------------------- FUNC_ADD_OES R = Rs * Sr + Rd * Dr G = Gs * Sg + Gd * Dg B = Bs * Sb + Bd * Db A = As * Sa + Ad * Da ------------------------- --------------------- FUNC_SUBTRACT_OES R = Rs * Sr - Rd * Dr G = Gs * Sg - Gd * Dg B = Bs * Sb - Bd * Db A = As * Sa - Ad * Da ------------------------- --------------------- FUNC_REVERSE_SUBTRACT_OES R = Rd * Dr - Rs * Sr G = Gd * Dg - Gs * Sg B = Bd * Db - Bs * Sb A = Ad * Da - As * Sa ------------------------- --------------------- Table 4.blendeq: Blend equations." In the "Blending State" paragraph, insert the following: "The state required for blending is... one integer indicating the blend equation... The initial blending equation is FUNC_ADD_OES." 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 INVALID_ENUM is generated by BlendEquationOES if its single parameter is not FUNC_ADD_OES, FUNC_SUBTRACT_OES, or FUNC_REVERSE_SUBTRACT_OES. New State Get Value Get Command Type Initial Value --------- ----------- ---- ------------- BLEND_EQUATION_OES GetIntegerv Z3 FUNC_ADD_OES New Implementation Dependent State None Revision History 2009/05/19 Benj Lipchak First draft of true extension specification