Name

    EXT_blend_subtract

Name Strings

    GL_EXT_blend_subtract

Version

    $Date: 2005/06/02 18:11:10 $ $Revision: 1.1 $

Number

    38

Dependencies

    EXT_blend_minmax affects the definition of this extension

Overview

    Two additional blending equations are specified using the interface
    defined by EXT_blend_minmax.  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

    None

New Tokens

    Accepted by the <mode> parameter of BlendEquationEXT:

	FUNC_SUBTRACT_EXT                0x800A
	FUNC_REVERSE_SUBTRACT_EXT        0x800B

Additions to Chapter 2 of the GL Specification (OpenGL Operation)

    None

Additions to Chapter 3 of the GL Specification (Rasterization)

    None

Additions to Chapter 4 of the GL Specification (Per-Fragment Operations
and the Framebuffer)

    Two additional blending equations are defined.  If BlendEquationEXT is
    called with <mode> set to FUNC_SUBTRACT_EXT, the blending equation
    becomes

	C' = (Cs * S) - (Cd * D)

	     /  0.0	C' < 0.0
	C = (
	     \   C'	C' >= 0.0

    where Cs and Cd are the source and destination colors, and S and D are
    as specified by BlendFunc.

    If BlendEquationEXT is called with <mode> set to
    FUNC_REVERSE_SUBTRACT_EXT, the blending equation becomes

	C' = (Cd * D) - (Cs * S)

	     /  0.0	C' < 0.0
	C = (
	     \   C'	C' >= 0.0

    In all cases the blending equation is evaluated separately for each
    color component.

Additions to Chapter 5 of the GL Specification (Special Functions)

    None

Additions to Chapter 6 of the GL Specification (State and State Requests)

    None

Additions to the GLX Specification

    None

GLX Protocol

    None

Dependencies on EXT_blend_minmax

    If this extension is supported, but EXT_blend_minmax is not, then
    this extension effectively defines the procedure BlendEquationEXT, its
    parameter FUNC_ADD_EXT, and the query target BLEND_EQUATION_EXT, as
    described in EXT_blend_minmax.  It is therefore as though
    EXT_blend_minmax were also supported, except that equations MIN_EXT
    and MAX_EXT are not supported.

Errors

    INVALID_ENUM is generated by BlendEquationEXT if its single parameter
    is not FUNC_ADD_EXT, MIN_EXT, MAX_EXT, FUNC_SUBTRACT_EXT, or
    FUNC_REVERSE_SUBTRACT_EXT.

    INVALID_OPERATION is generated if BlendEquationEXT is executed between
    the execution of Begin and the corresponding execution to End.

New State

    Get Value		Get Command	Type	Initial Value	Attribute
    ---------		-----------	----	-------------	---------
    BLEND_EQUATION_EXT	GetIntegerv	Z5	FUNC_ADD_EXT	color-buffer

New Implementation Dependent State

    None
