blob: 643df881455e7ed3d47d143764e4959dcbf194ae [file] [log] [blame]
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 <mode> parameter of BlendEquationOES:
FUNC_ADD_OES 0x8006
FUNC_SUBTRACT_OES 0x800A
FUNC_REVERSE_SUBTRACT_OES 0x800B
Accepted by the <pname> 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);
<mode> determines the blend equation. <mode> 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