skia / external / github.com / KhronosGroup / OpenGL-Registry / 0298d27bc4b344bdf7a57b00610fb97f5e1b9dc4 / . / extensions / OES / OES_blend_subtract.txt

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 | |