<!DOCTYPE refentry [ <!ENTITY % mathent SYSTEM "math.ent"> %mathent; ]>

<!-- Converted by db4-upgrade version 1.1 -->

<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="glBlendEquation">
    <info>
        <copyright>
            <year>1991-2006</year>
            <holder>Silicon Graphics, Inc.</holder>
        </copyright>
        <copyright>
            <year>2010-2015</year>
            <holder>Khronos Group</holder>
        </copyright>
    </info>
    <refmeta>
        <refentrytitle>glBlendEquation</refentrytitle>
        <manvolnum>3G</manvolnum>
    </refmeta>
    <refnamediv>
        <refname>glBlendEquation</refname>
        <refpurpose>specify the equation used for both the RGB blend equation and the Alpha blend equation</refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>C Specification</title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glBlendEquation</function></funcdef>
                <paramdef>GLenum <parameter>mode</parameter></paramdef>
            </funcprototype>
            <funcprototype>
                <funcdef>void <function>glBlendEquationi</function></funcdef>
                <paramdef>GLuint <parameter>buf</parameter></paramdef>
                <paramdef>GLenum <parameter>mode</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
    </refsynopsisdiv>
    <refsect1 xml:id="parameters"><title>Parameters</title>
        <variablelist>
        <varlistentry>
            <term><parameter>buf</parameter></term>
            <listitem>
                <para>
                    for <function>glBlendEquationi</function>, specifies the index of the draw buffer
                    for which to set the blend equation.
                </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term><parameter>mode</parameter></term>
            <listitem>
                <para>
                    specifies how source and destination colors are combined.
                    It must be <constant>GL_FUNC_ADD</constant>, <constant>GL_FUNC_SUBTRACT</constant>,
                    <constant>GL_FUNC_REVERSE_SUBTRACT</constant>, <constant>GL_MIN</constant>, <constant>GL_MAX</constant>.
                </para>
            </listitem>
        </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1 xml:id="description"><title>Description</title>
        <para>
            The blend equations determine how a new pixel (the ''source'' color)
            is combined with a pixel already in the framebuffer (the ''destination''
            color).  This function sets both the RGB blend equation and the alpha
            blend equation to a single equation. <function>glBlendEquationi</function>
            specifies the blend equation for a single draw buffer whereas <function>glBlendEquation</function>
            sets the blend equation for all draw buffers.
        </para>
        <para>
            Some of these equations use the source and destination blend factors
            specified by either <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry> or
            <citerefentry><refentrytitle>glBlendFuncSeparate</refentrytitle></citerefentry>.
            See <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry> or <citerefentry><refentrytitle>glBlendFuncSeparate</refentrytitle></citerefentry>
            for a description of the various blend factors.
        </para>
        <para>
            In the equations that follow, source and destination
            color components are referred to as
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <!-- eqn: ( R sub s, G sub s, B sub s, A sub s ): -->
                <mml:mfenced open="(" close=")">
                    <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
                    <mml:mi mathvariant="italic">s</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
                    <mml:mi mathvariant="italic">s</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
                    <mml:mi mathvariant="italic">s</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                    <mml:mi mathvariant="italic">s</mml:mi>
                    </mml:msub>
                </mml:mfenced>
            </mml:math></inlineequation>
            and
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <!-- eqn: ( R sub d, G sub d, B sub d, A sub d ): -->
                <mml:mfenced open="(" close=")">
                    <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
                    <mml:mi mathvariant="italic">d</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
                    <mml:mi mathvariant="italic">d</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
                    <mml:mi mathvariant="italic">d</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                    <mml:mi mathvariant="italic">d</mml:mi>
                    </mml:msub>
                </mml:mfenced>
            </mml:math></inlineequation>,
            respectively.
        </para>
        <para>
            The result color is referred to as
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <!-- eqn: ( R sub r, G sub r, B sub r, A sub r ): -->
                <mml:mfenced open="(" close=")">
                    <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
                    <mml:mi mathvariant="italic">r</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
                    <mml:mi mathvariant="italic">r</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
                    <mml:mi mathvariant="italic">r</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                    <mml:mi mathvariant="italic">r</mml:mi>
                    </mml:msub>
                </mml:mfenced>
            </mml:math></inlineequation>.
            The source and destination blend factors are denoted
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <!-- eqn: ( s sub R, s sub G, s sub B, s sub A ): -->
                <mml:mfenced open="(" close=")">
                    <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
                    <mml:mi mathvariant="italic">R</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
                    <mml:mi mathvariant="italic">G</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
                    <mml:mi mathvariant="italic">B</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
                    <mml:mi mathvariant="italic">A</mml:mi>
                    </mml:msub>
                </mml:mfenced>
            </mml:math></inlineequation>
            and
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <!-- eqn: ( d sub R, d sub G, d sub B, d sub A ): -->
                <mml:mfenced open="(" close=")">
                    <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
                    <mml:mi mathvariant="italic">R</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
                    <mml:mi mathvariant="italic">G</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
                    <mml:mi mathvariant="italic">B</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
                    <mml:mi mathvariant="italic">A</mml:mi>
                    </mml:msub>
                </mml:mfenced>
            </mml:math></inlineequation>,
            respectively.
            For these equations all color components are understood to have values
            in the range
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <!-- eqn: [0,1]: -->
                <mml:mfenced open="[" close="]">
                    <mml:mn>0</mml:mn>
                    <mml:mn>1</mml:mn>
                </mml:mfenced>
            </mml:math></inlineequation>.

        <informaltable>
            <tgroup cols="3" align="left">
                <colspec colwidth="1.1*"/>
                <colspec colwidth="1*"/>
                <colspec colwidth="1*"/>
                <thead>
                    <row>
                        <entry>
                            <emphasis role="bold"> Mode </emphasis>
                        </entry>
                        <entry>
                            <emphasis role="bold"> RGB Components </emphasis>
                        </entry>
                        <entry>
                            <emphasis role="bold"> Alpha Component </emphasis>
                        </entry>
                    </row>
                </thead>
                <tbody>
                    <row>
                        <entry>
                        <constant>GL_FUNC_ADD</constant>
                        </entry>
                        <entry>
                        <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                            <!-- eqn: Rr  =      R sub s s sub R  +  R sub d d sub R : -->
                            <mml:mrow>
                                <mml:mi mathvariant="italic">Rr</mml:mi>
                                <mml:mo>=</mml:mo>
                                <mml:mrow>
                                    <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
                                    <mml:mi mathvariant="italic">s</mml:mi>
                                    </mml:msub>
                                    <mml:mo>&it;</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
                                    <mml:mi mathvariant="italic">R</mml:mi>
                                    </mml:msub>
                                    <mml:mo>+</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
                                    <mml:mi mathvariant="italic">d</mml:mi>
                                    </mml:msub>
                                    <mml:mo>&it;</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
                                    <mml:mi mathvariant="italic">R</mml:mi>
                                    </mml:msub>
                                </mml:mrow>
                            </mml:mrow>
                        </mml:math></inlineequation>
                        <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                            <!-- eqn: Gr  =    G sub s s sub G  +  G sub d d sub G : -->
                            <mml:mrow>
                                <mml:mi mathvariant="italic">Gr</mml:mi>
                                <mml:mo>=</mml:mo>
                                <mml:mrow>
                                    <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
                                    <mml:mi mathvariant="italic">s</mml:mi>
                                    </mml:msub>
                                    <mml:mo>&it;</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
                                    <mml:mi mathvariant="italic">G</mml:mi>
                                    </mml:msub>
                                    <mml:mo>+</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
                                    <mml:mi mathvariant="italic">d</mml:mi>
                                    </mml:msub>
                                    <mml:mo>&it;</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
                                    <mml:mi mathvariant="italic">G</mml:mi>
                                    </mml:msub>
                                </mml:mrow>
                            </mml:mrow>
                        </mml:math></inlineequation>
                        <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                            <!-- eqn: Br  =    B sub s s sub B  +  B sub d d sub B : -->
                            <mml:mrow>
                                <mml:mi mathvariant="italic">Br</mml:mi>
                                <mml:mo>=</mml:mo>
                                <mml:mrow>
                                    <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
                                    <mml:mi mathvariant="italic">s</mml:mi>
                                    </mml:msub>
                                    <mml:mo>&it;</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
                                    <mml:mi mathvariant="italic">B</mml:mi>
                                    </mml:msub>
                                    <mml:mo>+</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
                                    <mml:mi mathvariant="italic">d</mml:mi>
                                    </mml:msub>
                                    <mml:mo>&it;</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
                                    <mml:mi mathvariant="italic">B</mml:mi>
                                    </mml:msub>
                                </mml:mrow>
                            </mml:mrow>
                        </mml:math></inlineequation>
                        </entry>
                        <entry>
                        <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                            <!-- eqn: Ar  =    A sub s s sub A  +  A sub d d sub A : -->
                            <mml:mrow>
                                <mml:mi mathvariant="italic">Ar</mml:mi>
                                <mml:mo>=</mml:mo>
                                <mml:mrow>
                                    <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                    <mml:mi mathvariant="italic">s</mml:mi>
                                    </mml:msub>
                                    <mml:mo>&it;</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
                                    <mml:mi mathvariant="italic">A</mml:mi>
                                    </mml:msub>
                                    <mml:mo>+</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                    <mml:mi mathvariant="italic">d</mml:mi>
                                    </mml:msub>
                                    <mml:mo>&it;</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
                                    <mml:mi mathvariant="italic">A</mml:mi>
                                    </mml:msub>
                                </mml:mrow>
                            </mml:mrow>
                        </mml:math></inlineequation>
                        </entry>
                    </row>
                    <row>
                        <entry>
                        <constant>GL_FUNC_SUBTRACT</constant>
                        </entry>
                        <entry>
                        <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                            <!-- eqn: Rr  =      R sub s s sub R  -  R sub d d sub R : -->
                            <mml:mrow>
                                <mml:mi mathvariant="italic">Rr</mml:mi>
                                <mml:mo>=</mml:mo>
                                <mml:mrow>
                                    <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
                                    <mml:mi mathvariant="italic">s</mml:mi>
                                    </mml:msub>
                                    <mml:mo>&it;</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
                                    <mml:mi mathvariant="italic">R</mml:mi>
                                    </mml:msub>
                                    <mml:mo>-</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
                                    <mml:mi mathvariant="italic">d</mml:mi>
                                    </mml:msub>
                                    <mml:mo>&it;</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
                                    <mml:mi mathvariant="italic">R</mml:mi>
                                    </mml:msub>
                                </mml:mrow>
                            </mml:mrow>
                        </mml:math></inlineequation>
                        <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                            <!-- eqn: Gr  =    G sub s s sub G  -  G sub d d sub G : -->
                            <mml:mrow>
                                <mml:mi mathvariant="italic">Gr</mml:mi>
                                <mml:mo>=</mml:mo>
                                <mml:mrow>
                                    <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
                                    <mml:mi mathvariant="italic">s</mml:mi>
                                    </mml:msub>
                                    <mml:mo>&it;</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
                                    <mml:mi mathvariant="italic">G</mml:mi>
                                    </mml:msub>
                                    <mml:mo>-</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
                                    <mml:mi mathvariant="italic">d</mml:mi>
                                    </mml:msub>
                                    <mml:mo>&it;</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
                                    <mml:mi mathvariant="italic">G</mml:mi>
                                    </mml:msub>
                                </mml:mrow>
                            </mml:mrow>
                        </mml:math></inlineequation>
                        <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                            <!-- eqn: Br  =    B sub s s sub B  -  B sub d d sub B : -->
                            <mml:mrow>
                                <mml:mi mathvariant="italic">Br</mml:mi>
                                <mml:mo>=</mml:mo>
                                <mml:mrow>
                                    <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
                                    <mml:mi mathvariant="italic">s</mml:mi>
                                    </mml:msub>
                                    <mml:mo>&it;</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
                                    <mml:mi mathvariant="italic">B</mml:mi>
                                    </mml:msub>
                                    <mml:mo>-</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
                                    <mml:mi mathvariant="italic">d</mml:mi>
                                    </mml:msub>
                                    <mml:mo>&it;</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
                                    <mml:mi mathvariant="italic">B</mml:mi>
                                    </mml:msub>
                                </mml:mrow>
                            </mml:mrow>
                        </mml:math></inlineequation>
                        </entry>
                        <entry>
                        <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                            <!-- eqn: Ar  =    A sub s s sub A  -  A sub d d sub A : -->
                            <mml:mrow>
                                <mml:mi mathvariant="italic">Ar</mml:mi>
                                <mml:mo>=</mml:mo>
                                <mml:mrow>
                                    <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                    <mml:mi mathvariant="italic">s</mml:mi>
                                    </mml:msub>
                                    <mml:mo>&it;</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
                                    <mml:mi mathvariant="italic">A</mml:mi>
                                    </mml:msub>
                                    <mml:mo>-</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                    <mml:mi mathvariant="italic">d</mml:mi>
                                    </mml:msub>
                                    <mml:mo>&it;</mml:mo>
                                    <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
                                    <mml:mi mathvariant="italic">A</mml:mi>
                                    </mml:msub>
                                </mml:mrow>
                            </mml:mrow>
                        </mml:math></inlineequation>
                        </entry>
                    </row>
                    <row>
                        <entry>
                        <constant>GL_FUNC_REVERSE_SUBTRACT</constant>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: Rr  =      R sub d d sub R  -  R sub s s sub R : -->
                                <mml:mrow>
                                    <mml:mi mathvariant="italic">Rr</mml:mi>
                                    <mml:mo>=</mml:mo>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                        <mml:mo>&it;</mml:mo>
                                        <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
                                        <mml:mi mathvariant="italic">R</mml:mi>
                                        </mml:msub>
                                        <mml:mo>-</mml:mo>
                                        <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                        <mml:mo>&it;</mml:mo>
                                        <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
                                        <mml:mi mathvariant="italic">R</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                </mml:mrow>
                            </mml:math></inlineequation>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: Gr  =    G sub d d sub G  -  G sub s s sub G : -->
                                <mml:mrow>
                                    <mml:mi mathvariant="italic">Gr</mml:mi>
                                    <mml:mo>=</mml:mo>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                        <mml:mo>&it;</mml:mo>
                                        <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
                                        <mml:mi mathvariant="italic">G</mml:mi>
                                        </mml:msub>
                                        <mml:mo>-</mml:mo>
                                        <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                        <mml:mo>&it;</mml:mo>
                                        <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
                                        <mml:mi mathvariant="italic">G</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                </mml:mrow>
                            </mml:math></inlineequation>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: Br  =    B sub d d sub B  -  B sub s s sub B : -->
                                <mml:mrow>
                                    <mml:mi mathvariant="italic">Br</mml:mi>
                                    <mml:mo>=</mml:mo>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                        <mml:mo>&it;</mml:mo>
                                        <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
                                        <mml:mi mathvariant="italic">B</mml:mi>
                                        </mml:msub>
                                        <mml:mo>-</mml:mo>
                                        <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                        <mml:mo>&it;</mml:mo>
                                        <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
                                        <mml:mi mathvariant="italic">B</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: Ar  =    A sub d d sub A  -  A sub s s sub A : -->
                                <mml:mrow>
                                    <mml:mi mathvariant="italic">Ar</mml:mi>
                                    <mml:mo>=</mml:mo>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                        <mml:mo>&it;</mml:mo>
                                        <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
                                        <mml:mi mathvariant="italic">A</mml:mi>
                                        </mml:msub>
                                        <mml:mo>-</mml:mo>
                                        <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                        <mml:mo>&it;</mml:mo>
                                        <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
                                        <mml:mi mathvariant="italic">A</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        </entry>
                    </row>
                    <row>
                        <entry>
                        <constant>GL_MIN</constant>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: Rr  =      min ( R sub s, R sub d): -->
                                <mml:mrow>
                                    <mml:mi mathvariant="italic">Rr</mml:mi>
                                    <mml:mo>=</mml:mo>
                                    <mml:mrow>
                                        <mml:mi mathvariant="italic">min</mml:mi>
                                        <mml:mo>&af;</mml:mo>
                                        <mml:mfenced open="(" close=")">
                                            <mml:mrow>
                                                <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
                                                <mml:mi mathvariant="italic">s</mml:mi>
                                                </mml:msub>
                                            </mml:mrow>
                                            <mml:mrow>
                                                <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
                                                <mml:mi mathvariant="italic">d</mml:mi>
                                                </mml:msub>
                                            </mml:mrow>
                                        </mml:mfenced>
                                    </mml:mrow>
                                </mml:mrow>
                            </mml:math></inlineequation>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: Gr  =      min ( G sub s, G sub d): -->
                                <mml:mrow>
                                    <mml:mi mathvariant="italic">Gr</mml:mi>
                                    <mml:mo>=</mml:mo>
                                    <mml:mrow>
                                        <mml:mi mathvariant="italic">min</mml:mi>
                                        <mml:mo>&af;</mml:mo>
                                        <mml:mfenced open="(" close=")">
                                            <mml:mrow>
                                                <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
                                                <mml:mi mathvariant="italic">s</mml:mi>
                                                </mml:msub>
                                            </mml:mrow>
                                            <mml:mrow>
                                                <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
                                                <mml:mi mathvariant="italic">d</mml:mi>
                                                </mml:msub>
                                            </mml:mrow>
                                        </mml:mfenced>
                                    </mml:mrow>
                                </mml:mrow>
                            </mml:math></inlineequation>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: Br  =      min ( B sub s, B sub d): -->
                                <mml:mrow>
                                    <mml:mi mathvariant="italic">Br</mml:mi>
                                    <mml:mo>=</mml:mo>
                                    <mml:mrow>
                                        <mml:mi mathvariant="italic">min</mml:mi>
                                        <mml:mo>&af;</mml:mo>
                                        <mml:mfenced open="(" close=")">
                                            <mml:mrow>
                                                <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
                                                <mml:mi mathvariant="italic">s</mml:mi>
                                                </mml:msub>
                                            </mml:mrow>
                                            <mml:mrow>
                                                <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
                                                <mml:mi mathvariant="italic">d</mml:mi>
                                                </mml:msub>
                                            </mml:mrow>
                                        </mml:mfenced>
                                    </mml:mrow>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: Ar  =      min ( A sub s, A sub d): -->
                                <mml:mrow>
                                    <mml:mi mathvariant="italic">Ar</mml:mi>
                                    <mml:mo>=</mml:mo>
                                    <mml:mrow>
                                        <mml:mi mathvariant="italic">min</mml:mi>
                                        <mml:mo>&af;</mml:mo>
                                        <mml:mfenced open="(" close=")">
                                            <mml:mrow>
                                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                                <mml:mi mathvariant="italic">s</mml:mi>
                                                </mml:msub>
                                            </mml:mrow>
                                            <mml:mrow>
                                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                                <mml:mi mathvariant="italic">d</mml:mi>
                                                </mml:msub>
                                            </mml:mrow>
                                        </mml:mfenced>
                                    </mml:mrow>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        </entry>
                    </row>
                    <row>
                        <entry>
                        <constant>GL_MAX</constant>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: Rr  =      max ( R sub s, R sub d): -->
                                <mml:mrow>
                                    <mml:mi mathvariant="italic">Rr</mml:mi>
                                    <mml:mo>=</mml:mo>
                                    <mml:mrow>
                                        <mml:mi mathvariant="italic">max</mml:mi>
                                        <mml:mo>&af;</mml:mo>
                                        <mml:mfenced open="(" close=")">
                                            <mml:mrow>
                                                <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
                                                <mml:mi mathvariant="italic">s</mml:mi>
                                                </mml:msub>
                                            </mml:mrow>
                                            <mml:mrow>
                                                <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
                                                <mml:mi mathvariant="italic">d</mml:mi>
                                                </mml:msub>
                                            </mml:mrow>
                                        </mml:mfenced>
                                    </mml:mrow>
                                </mml:mrow>
                            </mml:math></inlineequation>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: Gr  =      max ( G sub s, G sub d): -->
                                <mml:mrow>
                                    <mml:mi mathvariant="italic">Gr</mml:mi>
                                    <mml:mo>=</mml:mo>
                                    <mml:mrow>
                                        <mml:mi mathvariant="italic">max</mml:mi>
                                        <mml:mo>&af;</mml:mo>
                                        <mml:mfenced open="(" close=")">
                                            <mml:mrow>
                                                <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
                                                <mml:mi mathvariant="italic">s</mml:mi>
                                                </mml:msub>
                                            </mml:mrow>
                                            <mml:mrow>
                                                <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
                                                <mml:mi mathvariant="italic">d</mml:mi>
                                                </mml:msub>
                                            </mml:mrow>
                                        </mml:mfenced>
                                    </mml:mrow>
                                </mml:mrow>
                            </mml:math></inlineequation>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: Br  =      max ( B sub s, B sub d): -->
                                <mml:mrow>
                                    <mml:mi mathvariant="italic">Br</mml:mi>
                                    <mml:mo>=</mml:mo>
                                    <mml:mrow>
                                        <mml:mi mathvariant="italic">max</mml:mi>
                                        <mml:mo>&af;</mml:mo>
                                        <mml:mfenced open="(" close=")">
                                            <mml:mrow>
                                                <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
                                                <mml:mi mathvariant="italic">s</mml:mi>
                                                </mml:msub>
                                            </mml:mrow>
                                            <mml:mrow>
                                                <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
                                                <mml:mi mathvariant="italic">d</mml:mi>
                                                </mml:msub>
                                            </mml:mrow>
                                        </mml:mfenced>
                                    </mml:mrow>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: Ar  =      max ( A sub s, A sub d): -->
                                <mml:mrow>
                                    <mml:mi mathvariant="italic">Ar</mml:mi>
                                    <mml:mo>=</mml:mo>
                                    <mml:mrow>
                                        <mml:mi mathvariant="italic">max</mml:mi>
                                        <mml:mo>&af;</mml:mo>
                                        <mml:mfenced open="(" close=")">
                                            <mml:mrow>
                                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                                <mml:mi mathvariant="italic">s</mml:mi>
                                                </mml:msub>
                                            </mml:mrow>
                                            <mml:mrow>
                                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                                <mml:mi mathvariant="italic">d</mml:mi>
                                                </mml:msub>
                                            </mml:mrow>
                                        </mml:mfenced>
                                    </mml:mrow>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        </entry>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
        <para>
            For the advanced blending equations, the source and destination color components are premultiplied by the 
            alpha component prior to blending. The base source and destination colours are referred to as
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <!-- eqn: ( R' sub s, G' sub s, B' sub s ): -->
                <mml:mfenced open="(" close=")">
                    <mml:msub><mml:mi mathvariant="italic">R'</mml:mi>
                    <mml:mi mathvariant="italic">s</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">G'</mml:mi>
                    <mml:mi mathvariant="italic">s</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">B'</mml:mi>
                    <mml:mi mathvariant="italic">s</mml:mi>
                    </mml:msub>
                </mml:mfenced>
            </mml:math></inlineequation>
            and
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <!-- eqn: ( R' sub d, G' sub d, B' sub d ): -->
                <mml:mfenced open="(" close=")">
                    <mml:msub><mml:mi mathvariant="italic">R'</mml:mi>
                    <mml:mi mathvariant="italic">d</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">G'</mml:mi>
                    <mml:mi mathvariant="italic">d'</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">B'</mml:mi>
                    <mml:mi mathvariant="italic">d'</mml:mi>
                    </mml:msub>
                </mml:mfenced>
            </mml:math></inlineequation>,
            respectively, and are calculated as follows:
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <!-- eqn: (Rs', Gs', Bs')  = (R sub s / A sub s, G sub s / A sub s, B sub s / A sub s : -->
                <mml:mfenced open="(" close=")">
                    <mml:msub><mml:mi mathvariant="italic">R'</mml:mi>
                    <mml:mi mathvariant="italic">s</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">G'</mml:mi>
                    <mml:mi mathvariant="italic">s</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">B'</mml:mi>
                    <mml:mi mathvariant="italic">s</mml:mi>
                    </mml:msub>
                </mml:mfenced>
                <mml:mo>=</mml:mo> 
                <mml:mfenced open="(" close=")">
                    <mml:msub><mml:mi mathvariant="italic">0</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">0</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">0</mml:mi>
                    </mml:msub>
                </mml:mfenced>
            </mml:math></inlineequation>,
            if
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                    <mml:mi mathvariant="italic">s</mml:mi>
                </mml:msub>
                <mml:mo>==</mml:mo>
            </mml:math></inlineequation>
            0, otherwise
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <!-- eqn: (Rs', Gs', Bs')  = (R sub s / A sub s, G sub s / A sub s, B sub s / A sub s : -->
                <mml:mfenced open="(" close=")">
                    <mml:msub><mml:mi mathvariant="italic">R'</mml:mi>
                    <mml:mi mathvariant="italic">s</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">G'</mml:mi>
                    <mml:mi mathvariant="italic">s</mml:mi>
                    </mml:msub>
                    <mml:msub><mml:mi mathvariant="italic">B'</mml:mi>
                    <mml:mi mathvariant="italic">s</mml:mi>
                    </mml:msub>
                </mml:mfenced>
                <mml:mo>=</mml:mo> 
                <mml:mfenced open="(" close=")">
                    <mml:mfrac>
                        <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
                        <mml:mi mathvariant="italic">s</mml:mi>
                        </mml:msub>
                        <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                        <mml:mi mathvariant="italic">s</mml:mi>
                        </mml:msub>
                    </mml:mfrac>
                    <mml:mfrac>
                        <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
                        <mml:mi mathvariant="italic">s</mml:mi>
                        </mml:msub>
                        <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                        <mml:mi mathvariant="italic">s</mml:mi>
                        </mml:msub>
                    </mml:mfrac>
                    <mml:mfrac>
                        <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
                        <mml:mi mathvariant="italic">s</mml:mi>
                        </mml:msub>
                        <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                        <mml:mi mathvariant="italic">s</mml:mi>
                        </mml:msub>
                    </mml:mfrac>                         
                </mml:mfenced>
            </mml:math></inlineequation>.
            </para>
            <para>
            All of the advanced blending equations perform the following equations:
            </para>
            <variablelist>
            <varlistentry>
                <listitem>
                <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                    <!-- eqn: R  =      f(R' sub s, R' sub d) * p0(A sub s, A sub d) + 
                                         R' sub s * p1(A sub s, A sub d) + 
                                         R' sub d * p2(A sub s, A sub d): -->
                    <mml:mrow>
                        <mml:mi mathvariant="italic">R</mml:mi>
                        <mml:mo>=</mml:mo>
                        <mml:mrow>
                            <mml:mi mathvariant="italic">f</mml:mi>
                            <mml:mo>&af;</mml:mo>
                            <mml:mfenced open="(" close=")">
                                <mml:mrow>
                                    <mml:msub><mml:mi mathvariant="italic">R'</mml:mi>
                                    <mml:mi mathvariant="italic">s</mml:mi>
                                    </mml:msub>
                                </mml:mrow>
                                <mml:mrow>
                                    <mml:msub><mml:mi mathvariant="italic">R'</mml:mi>
                                    <mml:mi mathvariant="italic">d</mml:mi>
                                    </mml:msub>
                                </mml:mrow>
                            </mml:mfenced>
                        </mml:mrow>
                        <mml:mo>*</mml:mo>
                        <mml:mrow>
                            <mml:mi mathvariant="italic">p0</mml:mi>
                            <mml:mo>&af;</mml:mo>
                            <mml:mfenced open="(" close=")">
                                <mml:mrow>
                                    <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                    <mml:mi mathvariant="italic">s</mml:mi>
                                    </mml:msub>
                                </mml:mrow>
                                <mml:mrow>
                                    <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                    <mml:mi mathvariant="italic">d</mml:mi>
                                    </mml:msub>
                                </mml:mrow>
                            </mml:mfenced>
                        </mml:mrow>
                        <mml:mo>+</mml:mo>
                        <mml:msub><mml:mi mathvariant="italic">R'</mml:mi>
                        <mml:mi mathvariant="italic">s</mml:mi>
                        </mml:msub>
                        <mml:mo>*</mml:mo>
                        <mml:mrow>
                            <mml:mi mathvariant="italic">p1</mml:mi>
                            <mml:mo>&af;</mml:mo>
                            <mml:mfenced open="(" close=")">
                                <mml:mrow>
                                    <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                    <mml:mi mathvariant="italic">s</mml:mi>
                                    </mml:msub>
                                </mml:mrow>
                                <mml:mrow>
                                    <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                    <mml:mi mathvariant="italic">d</mml:mi>
                                    </mml:msub>
                                </mml:mrow>
                            </mml:mfenced>
                        </mml:mrow>
                        <mml:mo>+</mml:mo>
                        <mml:msub><mml:mi mathvariant="italic">R'</mml:mi>
                        <mml:mi mathvariant="italic">d</mml:mi>
                        </mml:msub>
                        <mml:mo>*</mml:mo>
                        <mml:mrow>
                            <mml:mi mathvariant="italic">p2</mml:mi>
                            <mml:mo>&af;</mml:mo>
                            <mml:mfenced open="(" close=")">
                                <mml:mrow>
                                    <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                    <mml:mi mathvariant="italic">s</mml:mi>
                                    </mml:msub>
                                </mml:mrow>
                                <mml:mrow>
                                    <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                    <mml:mi mathvariant="italic">d</mml:mi>
                                    </mml:msub>
                                </mml:mrow>
                            </mml:mfenced>
                        </mml:mrow>

                    </mml:mrow>
                </mml:math></inlineequation>
            </listitem>
        </varlistentry>
        <varlistentry>
            <listitem>
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <!-- eqn: G  =      f(G' sub s, G' sub d) * p0(A sub s, A sub d) + 
                                     G' sub s * p1(A sub s, A sub d) + 
                                     G' sub d * p2(A sub s, A sub d): -->
                <mml:mrow>
                    <mml:mi mathvariant="italic">G</mml:mi>
                    <mml:mo>=</mml:mo>
                    <mml:mrow>
                        <mml:mi mathvariant="italic">f</mml:mi>
                        <mml:mo>&af;</mml:mo>
                        <mml:mfenced open="(" close=")">
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">G'</mml:mi>
                                <mml:mi mathvariant="italic">s</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">G'</mml:mi>
                                <mml:mi mathvariant="italic">d</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                        </mml:mfenced>
                    </mml:mrow>
                    <mml:mo>*</mml:mo>
                    <mml:mrow>
                        <mml:mi mathvariant="italic">p0</mml:mi>
                        <mml:mo>&af;</mml:mo>
                        <mml:mfenced open="(" close=")">
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">s</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">d</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                        </mml:mfenced>
                    </mml:mrow>
                    <mml:mo>+</mml:mo>
                    <mml:msub><mml:mi mathvariant="italic">G'</mml:mi>
                    <mml:mi mathvariant="italic">s</mml:mi>
                    </mml:msub>
                    <mml:mo>*</mml:mo>
                    <mml:mrow>
                        <mml:mi mathvariant="italic">p1</mml:mi>
                        <mml:mo>&af;</mml:mo>
                        <mml:mfenced open="(" close=")">
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">s</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">d</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                        </mml:mfenced>
                    </mml:mrow>
                    <mml:mo>+</mml:mo>
                    <mml:msub><mml:mi mathvariant="italic">G'</mml:mi>
                    <mml:mi mathvariant="italic">d</mml:mi>
                    </mml:msub>
                    <mml:mo>*</mml:mo>
                    <mml:mrow>
                        <mml:mi mathvariant="italic">p2</mml:mi>
                        <mml:mo>&af;</mml:mo>
                        <mml:mfenced open="(" close=")">
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">s</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">d</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                        </mml:mfenced>
                    </mml:mrow>

                </mml:mrow>
            </mml:math></inlineequation>
            </listitem>
        </varlistentry>
        <varlistentry>
            <listitem>
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <!-- eqn: B  =      f(B' sub s, B' sub d) * p0(A sub s, A sub d) + 
                                     B' sub s * p1(A sub s, A sub d) + 
                                     B' sub d * p2(A sub s, A sub d): -->
                <mml:mrow>
                    <mml:mi mathvariant="italic">B</mml:mi>
                    <mml:mo>=</mml:mo>
                    <mml:mrow>
                        <mml:mi mathvariant="italic">f</mml:mi>
                        <mml:mo>&af;</mml:mo>
                        <mml:mfenced open="(" close=")">
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">B'</mml:mi>
                                <mml:mi mathvariant="italic">s</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">B'</mml:mi>
                                <mml:mi mathvariant="italic">d</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                        </mml:mfenced>
                    </mml:mrow>
                    <mml:mo>*</mml:mo>
                    <mml:mrow>
                        <mml:mi mathvariant="italic">p0</mml:mi>
                        <mml:mo>&af;</mml:mo>
                        <mml:mfenced open="(" close=")">
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">s</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">d</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                        </mml:mfenced>
                    </mml:mrow>
                    <mml:mo>+</mml:mo>
                    <mml:msub><mml:mi mathvariant="italic">B'</mml:mi>
                    <mml:mi mathvariant="italic">s</mml:mi>
                    </mml:msub>
                    <mml:mo>*</mml:mo>
                    <mml:mrow>
                        <mml:mi mathvariant="italic">p1</mml:mi>
                        <mml:mo>&af;</mml:mo>
                        <mml:mfenced open="(" close=")">
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">s</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">d</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                        </mml:mfenced>
                    </mml:mrow>
                    <mml:mo>+</mml:mo>
                    <mml:msub><mml:mi mathvariant="italic">B'</mml:mi>
                    <mml:mi mathvariant="italic">d</mml:mi>
                    </mml:msub>
                    <mml:mo>*</mml:mo>
                    <mml:mrow>
                        <mml:mi mathvariant="italic">p2</mml:mi>
                        <mml:mo>&af;</mml:mo>
                        <mml:mfenced open="(" close=")">
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">s</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">d</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                        </mml:mfenced>
                    </mml:mrow>

                </mml:mrow>
            </mml:math></inlineequation>
            </listitem>
        </varlistentry>
        <varlistentry>
            <listitem>
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <!-- eqn: A  = p0(A sub s, A sub d) + p1(A sub s, A sub d) + p2(A sub s, A sub d): -->
                <mml:mrow>
                    <mml:mi mathvariant="italic">A</mml:mi>
                    <mml:mo>=</mml:mo>
                    <mml:mrow>
                        <mml:mi mathvariant="italic">p0</mml:mi>
                        <mml:mo>&af;</mml:mo>
                        <mml:mfenced open="(" close=")">
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">s</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">d</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                        </mml:mfenced>
                    </mml:mrow>
                    <mml:mo>+</mml:mo>
                    <mml:mrow>
                        <mml:mi mathvariant="italic">p1</mml:mi>
                        <mml:mo>&af;</mml:mo>
                        <mml:mfenced open="(" close=")">
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">s</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">d</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                        </mml:mfenced>
                    </mml:mrow>
                    <mml:mo>+</mml:mo>
                    <mml:mrow>
                        <mml:mi mathvariant="italic">p2</mml:mi>
                        <mml:mo>&af;</mml:mo>
                        <mml:mfenced open="(" close=")">
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">s</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">d</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                        </mml:mfenced>
                    </mml:mrow>
                </mml:mrow>
            </mml:math></inlineequation>
            </listitem>
        </varlistentry>
        </variablelist>
        <para>
        Where the weighting functions 
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
            <mml:mrow>
                <mml:mi mathvariant="italic">p0,</mml:mi>
            </mml:mrow>
            <mml:mrow>
                <mml:mi mathvariant="italic">p1,</mml:mi>
            </mml:mrow>
            <mml:mrow>
                <mml:mi mathvariant="italic">and p2</mml:mi>
            </mml:mrow>
            </mml:math></inlineequation>
            are defined as follows:
        </para>
        <variablelist>
        <varlistentry>
            <listitem>
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <!-- eqn: p0(A sub s, A sub d) = A sub s * A sub d: -->
                <mml:mrow>
                    <mml:mrow>
                        <mml:mi mathvariant="italic">p0</mml:mi>
                        <mml:mo>&af;</mml:mo>
                        <mml:mfenced open="(" close=")">
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">s</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">d</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                        </mml:mfenced>
                    </mml:mrow>
                    <mml:mo>=</mml:mo>
                    <mml:mrow>
                        <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                        <mml:mi mathvariant="italic">s</mml:mi>
                        </mml:msub>
                    </mml:mrow>
                    <mml:mo>*</mml:mo>
                    <mml:mrow>
                        <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                        <mml:mi mathvariant="italic">d</mml:mi>
                        </mml:msub>
                    </mml:mrow>
                </mml:mrow>
            </mml:math></inlineequation>
            </listitem>
        </varlistentry>
        <varlistentry>
            <listitem>
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <!-- eqn: p1(A sub s, A sub d) = A sub s * (1 - A sub d): -->
                <mml:mrow>
                    <mml:mrow>
                        <mml:mi mathvariant="italic">p1</mml:mi>
                        <mml:mo>&af;</mml:mo>
                        <mml:mfenced open="(" close=")">
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">s</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">d</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                        </mml:mfenced>
                    </mml:mrow>
                    <mml:mo>=</mml:mo>
                    <mml:mrow>
                        <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                        <mml:mi mathvariant="italic">s</mml:mi>
                        </mml:msub>
                    </mml:mrow>
                    <mml:mo>*</mml:mo>
                    <mml:mfenced open="(" close=")">
                        <mml:mrow>
                            <mml:mi mathvariant="italic">1</mml:mi>
                            <mml:mo>-</mml:mo>
                            <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                            <mml:mi mathvariant="italic">d</mml:mi>
                            </mml:msub>
                        </mml:mrow>
                    </mml:mfenced>
                </mml:mrow>
            </mml:math></inlineequation>
            </listitem>
        </varlistentry>
        <varlistentry>
            <listitem>
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <!-- eqn: p2(A sub s, A sub d) = A sub d * (1 - A sub s): -->
                <mml:mrow>
                    <mml:mrow>
                        <mml:mi mathvariant="italic">p2</mml:mi>
                        <mml:mo>&af;</mml:mo>
                        <mml:mfenced open="(" close=")">
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">s</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                            <mml:mrow>
                                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                                <mml:mi mathvariant="italic">d</mml:mi>
                                </mml:msub>
                            </mml:mrow>
                        </mml:mfenced>
                    </mml:mrow>
                    <mml:mo>=</mml:mo>
                    <mml:mrow>
                        <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                        <mml:mi mathvariant="italic">d</mml:mi>
                        </mml:msub>
                    </mml:mrow>
                    <mml:mo>*</mml:mo>
                    <mml:mfenced open="(" close=")">
                        <mml:mrow>
                            <mml:mi mathvariant="italic">1</mml:mi>
                            <mml:mo>-</mml:mo>
                            <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                            <mml:mi mathvariant="italic">s</mml:mi>
                            </mml:msub>
                        </mml:mrow>
                    </mml:mfenced>
                </mml:mrow>
            </mml:math></inlineequation>
            </listitem>
        </varlistentry>
        </variablelist>            
        <informaltable>
            <tgroup cols="3" align="left">
                <colspec colwidth="1.1*"/>
                <colspec colwidth="1*"/>
                <colspec colwidth="1*"/>
                <thead>
                    <row>
                        <entry>
                            <emphasis role="bold"> Advanced Mode </emphasis>
                        </entry>
                        <entry>
                            <emphasis role="bold"> Blend Coefficients: </emphasis>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <mml:mrow>
                                    <mml:mi mathvariant="italic">f</mml:mi>
                                    <mml:mo>&af;</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                        <mml:mrow>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">s</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                        <mml:mrow>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">d</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                    </mml:mfenced>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        </entry>
                        <entry>
                            <emphasis role="bold"> Conditions </emphasis>
                        </entry>
                    </row>
                </thead>
                <tbody>
                    <row>
                        <entry>
                        <constant>GL_MULTIPLY</constant>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: f(C sub s, C sub d) = C sub s * C sub d: -->
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>*</mml:mo>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        </entry>
                        <entry>
                        <constant>n/a</constant>
                        </entry>
                    </row>
                    <row>
                        <entry>
                        <constant>GL_SCREEN</constant>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: f(C sub s, C sub d) = C sub s + C sub d - C sub s * C sub d: -->
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>+</mml:mo>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>-</mml:mo>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>*</mml:mo>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        </entry>
                        <entry>
                        <constant>n/a</constant>
                        </entry>
                    </row>
                    <row>
                        <entry>
                        <constant>GL_OVERLAY</constant>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: f(C sub s, C sub d) = 2 * C sub s * C sub d: -->
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:mn>2</mml:mn>
                                    </mml:mrow>
                                    <mml:mo>*</mml:mo>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>*</mml:mo>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        <para>   
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: 1 - 2 * (1 - C sub s) * (1 - C sub d): -->
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:mn>1</mml:mn>
                                    </mml:mrow>
                                    <mml:mo>-</mml:mo>
                                    <mml:mrow>
                                        <mml:mn>2</mml:mn>
                                    </mml:mrow>
                                    <mml:mo>*</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                        <mml:mrow>
                                            <mml:mn>1</mml:mn>
                                            <mml:mo>-</mml:mo>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">s</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                    </mml:mfenced>
                                    <mml:mo>*</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                        <mml:mrow>
                                            <mml:mn>1</mml:mn>
                                            <mml:mo>-</mml:mo>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">d</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                    </mml:mfenced>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        </para> 
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: C sub d <= 0.5: -->
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>&lt;=</mml:mo>
                                    <mml:mn>0.5</mml:mn>
                                </mml:mrow>
                            </mml:math></inlineequation>
                            <para>
                            otherwise
                            </para>
                        </entry>
                    </row>
                    <row>
                        <entry>
                        <constant>GL_DARKEN</constant>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: min(C sub s, C sub d): -->
                                <mml:mrow>
                                    <mml:mo>min</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                        <mml:mrow>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">s</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                        <mml:mrow>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">d</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                    </mml:mfenced>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        </entry>
                        <entry>
                        <constant>n/a</constant>
                        </entry>
                    </row>
                    <row>
                        <entry>
                        <constant>GL_LIGHTEN</constant>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: max(C sub s, C sub d): -->
                                <mml:mrow>
                                    <mml:mo>max</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                        <mml:mrow>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">s</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                        <mml:mrow>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">d</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                    </mml:mfenced>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        </entry>
                        <entry>
                        <constant>n/a</constant>
                        </entry>
                    </row>
                    <row>
                        <entry>
                        <constant>GL_COLORDODGE</constant>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: 0: -->
                                <mml:mrow>
                                    <mml:mn>0</mml:mn>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        <para>   
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: min(1, C sub d / (1 - C sub s)): -->
                                <mml:mrow>
                                    <mml:mo>min</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                        <mml:mrow>
                                            <mml:mn>1</mml:mn>
                                        </mml:mrow>
                                        <mml:mrow>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">d</mml:mi>
                                            </mml:msub>
                                            <mml:mo>/</mml:mo>
                                            <mml:mfenced open="(" close=")">
                                                <mml:mrow>
                                                    <mml:mn>1</mml:mn>
                                                    <mml:mo>-</mml:mo>
                                                    <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                                    <mml:mi mathvariant="italic">s</mml:mi>
                                                    </mml:msub>
                                                </mml:mrow>
                                            </mml:mfenced>
                                        </mml:mrow>
                                    </mml:mfenced>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        </para>
                        <para>
                        <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                            <mml:mrow>
                                <mml:mn>1</mml:mn>
                            </mml:mrow>
                        </mml:math></inlineequation> 
                        </para>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: C sub d <= 0: -->
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>&lt;=</mml:mo>
                                    <mml:mn>0</mml:mn>
                                </mml:mrow>
                            </mml:math></inlineequation>
                            <para>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: C sub d > 0 and C sub s < 1: -->
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>&gt;</mml:mo>
                                    <mml:mn>0</mml:mn>
                                </mml:mrow>
                                <mml:mi mathvariant="italic">and</mml:mi>
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>&lt;</mml:mo>
                                    <mml:mn>1</mml:mn>
                                </mml:mrow>
                            </mml:math></inlineequation>
                            </para>
                            <para>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: C sub d > 0 and C sub s >= 1: -->
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>&gt;</mml:mo>
                                    <mml:mn>0</mml:mn>
                                </mml:mrow>
                                <mml:mi mathvariant="italic">and</mml:mi>
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>&gt;=</mml:mo>
                                    <mml:mn>1</mml:mn>
                                </mml:mrow>
                            </mml:math></inlineequation>
                            </para>
                        </entry>
                    </row>
                    <row>
                        <entry>
                        <constant>GL_COLORBURN</constant>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: 1: -->
                                <mml:mrow>
                                    <mml:mn>1</mml:mn>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        <para>   
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: 1 - min(1, (1 - C sub d) /  C sub s): -->
                                <mml:mrow>
                                    <mml:mn>1</mml:mn>
                                    <mml:mo>- min</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                        <mml:mrow>
                                            <mml:mn>1</mml:mn>
                                        </mml:mrow>
                                        <mml:mrow>
                                            <mml:mfenced open="(" close=")">
                                                <mml:mrow>
                                                    <mml:mn>1</mml:mn>
                                                    <mml:mo>-</mml:mo>
                                                    <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                                    <mml:mi mathvariant="italic">d</mml:mi>
                                                    </mml:msub>
                                                </mml:mrow>
                                            </mml:mfenced>
                                            <mml:mo>/</mml:mo>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">s</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                    </mml:mfenced>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        </para>
                        <para>
                        <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                            <mml:mrow>
                                <mml:mn>0</mml:mn>
                            </mml:mrow>
                        </mml:math></inlineequation> 
                        </para>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: C sub d >= 1: -->
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>&gt;=</mml:mo>
                                    <mml:mn>1</mml:mn>
                                </mml:mrow>
                            </mml:math></inlineequation>
                            <para>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: C sub d < 1 and C sub s > 0: -->
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>&lt;</mml:mo>
                                    <mml:mn>1</mml:mn>
                                </mml:mrow>
                                <mml:mi mathvariant="italic">and</mml:mi>
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>&gt;</mml:mo>
                                    <mml:mn>0</mml:mn>
                                </mml:mrow>
                            </mml:math></inlineequation>
                            </para>
                            <para>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: C sub d < 1 and C sub s <= 0: -->
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>&lt;</mml:mo>
                                    <mml:mn>1</mml:mn>
                                </mml:mrow>
                                <mml:mi mathvariant="italic">and</mml:mi>
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>&lt;=</mml:mo>
                                    <mml:mn>0</mml:mn>
                                </mml:mrow>
                            </mml:math></inlineequation>
                            </para>
                        </entry>
                    </row>
                    <row>
                        <entry>
                        <constant>GL_HARDLIGHT</constant>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: 2 * C sub s * C sub d: -->
                                <mml:mrow>
                                    <mml:mn>2</mml:mn>
                                    <mml:mo>*</mml:mo>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>*</mml:mo>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                </mml:mrow>
                            </mml:math></inlineequation> 
                            <para>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: 1 - 2 * (1 - C sub s) * (1 - C sub d): -->
                                <mml:mrow>
                                    <mml:mn>1</mml:mn>
                                    <mml:mo>-</mml:mo>
                                    <mml:mn>2</mml:mn>
                                    <mml:mo>*</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                        <mml:mrow>
                                            <mml:mn>1</mml:mn>
                                            <mml:mo>-</mml:mo>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">s</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                    </mml:mfenced>
                                    <mml:mo>*</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                            <mml:mrow>
                                                <mml:mn>1</mml:mn>
                                                <mml:mo>-</mml:mo>
                                                <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                                <mml:mi mathvariant="italic">d</mml:mi>
                                                </mml:msub>
                                            </mml:mrow>
                                    </mml:mfenced>
                                </mml:mrow>
                            </mml:math></inlineequation> 
                            </para>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: C sub s <= 0.5: -->
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>&lt;=</mml:mo>
                                    <mml:mn>0.5</mml:mn>
                                </mml:mrow>
                            </mml:math></inlineequation>
                            <para>
                            otherwise
                            </para>
                        </entry>
                    </row>
                    <row>
                        <entry>
                        <constant>GL_SOFTLIGHT</constant>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: C sub d - (1 - 2 * C sub s) * C sub d * (1 - C sub d): -->
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>-</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                    <mml:mrow>
                                        <mml:mn>1</mml:mn>
                                        <mml:mo>-</mml:mo>
                                        <mml:mn>2</mml:mn>
                                        <mml:mo>*</mml:mo>
                                        <mml:mrow>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">s</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                    </mml:mrow>
                                    </mml:mfenced>
                                    <mml:mo>*</mml:mo>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>*</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                    <mml:mrow>
                                        <mml:mn>1</mml:mn>
                                        <mml:mo>-</mml:mo>
                                        <mml:mrow>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">d</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                    </mml:mrow>
                                    </mml:mfenced>
                                </mml:mrow>
                            </mml:math></inlineequation> 
                            <para>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: C sub d + (2 * C sub s - 1) * C sub d * ((16 * C sub d - 12) * C sub d + 3): -->
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>+</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                    <mml:mrow>
                                        <mml:mn>2</mml:mn>
                                        <mml:mo>*</mml:mo>
                                        <mml:mrow>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">s</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                        <mml:mo>-</mml:mo>
                                        <mml:mn>1</mml:mn>
                                    </mml:mrow>
                                    </mml:mfenced>
                                    <mml:mo>*</mml:mo>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>*</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                    <mml:mrow>
                                        <mml:mfenced open="(" close=")">
                                        <mml:mrow>
                                            <mml:mn>16</mml:mn>
                                            <mml:mo>*</mml:mo>
                                            <mml:mrow>
                                                <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                                <mml:mi mathvariant="italic">d</mml:mi>
                                                </mml:msub>
                                            </mml:mrow>
                                        <mml:mo>-</mml:mo>
                                        <mml:mn>12</mml:mn>
                                        </mml:mrow>
                                        </mml:mfenced>
                                        <mml:mo>*</mml:mo>
                                        <mml:mrow>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">d</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                        <mml:mo>+</mml:mo>
                                        <mml:mn>3</mml:mn>
                                    </mml:mrow>
                                    </mml:mfenced>
                                </mml:mrow>
                            </mml:math></inlineequation> 
                            </para>
                            <para>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: C sub d + (2 * C sub s - 1) * (sqrt(C sub d) - C sub d): -->
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>+</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                    <mml:mrow>
                                        <mml:mn>2</mml:mn>
                                        <mml:mo>*</mml:mo>
                                        <mml:mrow>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">s</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                        <mml:mo>-</mml:mo>
                                        <mml:mn>1</mml:mn>
                                    </mml:mrow>
                                    </mml:mfenced>
                                    <mml:mo>*</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                    <mml:mrow>
                                        <mml:mo>sqrt</mml:mo>
                                        <mml:mfenced open="(" close=")">
                                        <mml:mrow>
                                            <mml:mrow>
                                                <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                                <mml:mi mathvariant="italic">d</mml:mi>
                                                </mml:msub>
                                            </mml:mrow>
                                        </mml:mrow>
                                        </mml:mfenced>
                                        <mml:mo>-</mml:mo>
                                        <mml:mrow>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">d</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                    </mml:mrow>
                                    </mml:mfenced>
                                </mml:mrow>
                            </mml:math></inlineequation> 
                            </para>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: C sub s <= 0.5: -->
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>&lt;=</mml:mo>
                                    <mml:mn>0.5</mml:mn>
                                </mml:mrow>
                            </mml:math></inlineequation>
                            <para>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: C sub s > 0.5 and C sub d <= 0.25: -->
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>&gt;</mml:mo>
                                    <mml:mn>0.5</mml:mn>
                                </mml:mrow>
                                <mml:mi mathvariant="italic">and</mml:mi>
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>&lt;=</mml:mo>
                                    <mml:mn>0.25</mml:mn>
                                </mml:mrow>
                            </mml:math></inlineequation>
                            </para>
                            <para>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: C sub s > 0.5 and C sub d > 0.25: -->
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>&gt;</mml:mo>
                                    <mml:mn>0.5</mml:mn>
                                </mml:mrow>
                                <mml:mi mathvariant="italic">and</mml:mi>
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>&gt;</mml:mo>
                                    <mml:mn>0.25</mml:mn>
                                </mml:mrow>
                            </mml:math></inlineequation>
                            </para>
                        </entry>
                    </row>
                    <row>
                        <entry>
                        <constant>GL_DIFFERENCE</constant>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: abs(C sub d - C sub s): -->
                                <mml:mrow>
                                    <mml:mo>abs</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                    <mml:mrow>
                                        <mml:mrow>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">d</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                        <mml:mo>-</mml:mo>
                                        <mml:mrow>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">s</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                    </mml:mrow>
                                    </mml:mfenced>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        </entry>
                        <entry>
                        <constant>n/a</constant>
                        </entry>
                    </row>
                    <row>
                        <entry>
                        <constant>GL_EXCLUSION</constant>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: C sub s + C sub d - 2 * C sub s * C sub d: -->
                                <mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>+</mml:mo>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>-</mml:mo>
                                    <mml:mn>2</mml:mn>
                                    <mml:mo>*</mml:mo>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mo>*</mml:mo>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        </entry>
                        <entry>
                        <constant>n/a</constant>
                        </entry>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
        </para>
        <para>
        For the HSL modes, the following functions are defined:
        </para>
        <variablelist>
        <varlistentry>
            <listitem>
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
			<!-- float minv3(vec3 c) { return min(min(c.r, c.g), c.b); } -->
				<mml:mo>float minv3</mml:mo>
				<mml:mfenced open="(" close=")">
				<mml:mrow>
					<mml:mi mathvariant="italic">vec3 c</mml:mi>
				</mml:mrow>
				</mml:mfenced>
				<mml:mo>{</mml:mo>
				<mml:mrow>
				<mml:mo>return min(min(c.r, c.g), c.b); }</mml:mo>
				</mml:mrow>
            </mml:math></inlineequation>
            </listitem>
        </varlistentry>
        <varlistentry>
            <listitem>
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
      <!--   float maxv3(vec3 c) {
        return max(max(c.r, c.g), c.b);
      }  -->
				<mml:mo>float maxv3</mml:mo>
				<mml:mfenced open="(" close=")">
				<mml:mrow>
					<mml:mi mathvariant="italic">vec3 c</mml:mi>
				</mml:mrow>
				</mml:mfenced>
				<mml:mo>{</mml:mo>
				<mml:mrow>
				<mml:mo>return max(max(c.r, c.g), c.b); }</mml:mo>
				</mml:mrow>
            </mml:math></inlineequation>
            </listitem>
        </varlistentry>
        <varlistentry>
            <listitem>
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
      <!--  float lumv3(vec3 c) {
        return dot(c, vec3(0.30, 0.59, 0.11));
      }  -->
				<mml:mo>float lumv3</mml:mo>
				<mml:mfenced open="(" close=")">
				<mml:mrow>
					<mml:mi mathvariant="italic">vec3 c</mml:mi>
				</mml:mrow>
				</mml:mfenced>
				<mml:mo>{</mml:mo>
				<mml:mrow>
				<mml:mo>return dot(c, vec3(0.30, 0.59, 0.11)); }</mml:mo>
				</mml:mrow>
            </mml:math></inlineequation>
            </listitem>
        </varlistentry>
        <varlistentry>
            <listitem>
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
      <!-- float satv3(vec3 c) {
        return maxv3(c) - minv3(c);
      }
	  -->
				<mml:mo>float satv3</mml:mo>
				<mml:mfenced open="(" close=")">
				<mml:mrow>
					<mml:mi mathvariant="italic">vec3 c</mml:mi>
				</mml:mrow>
				</mml:mfenced>
				<mml:mo>{</mml:mo>
				<mml:mrow>
				<mml:mo>return maxv3(c) - minv3(c); }</mml:mo>
				</mml:mrow>
            </mml:math></inlineequation>
            </listitem>
        </varlistentry>
        <varlistentry>
            <listitem>
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">

				<mml:mo>vec3 SetLum</mml:mo>
				<mml:mfenced open="(" close=")">
				<mml:mrow>
					<mml:mi mathvariant="italic">vec3 cbase</mml:mi>
				</mml:mrow>
				<mml:mrow>
					<mml:mi mathvariant="italic">vec3 clum</mml:mi>
				</mml:mrow>
				</mml:mfenced>
            </mml:math></inlineequation>
            {
            <para>    float lbase = lumv3(cbase); </para>
            <para>float llum = lumv3(clum); </para>
            <para>float ldiff = llum - lbase; </para>
            <para>vec3 color = cbase + vec3(ldiff); </para>
            <para>if (minv3(color)
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll"> 
                <mml:mo>&lt;</mml:mo>
                <mml:mn>0.0</mml:mn>
            </mml:math></inlineequation>
             ) { </para>
            return llum + ((color-llum)*llum) / (llum-minv3(color));  
            <para>} else if (maxv3(color) 
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll"> 
                <mml:mo>&gt;</mml:mo>
                <mml:mn>1.0</mml:mn>
            </mml:math></inlineequation>
            ) { </para>
            return llum + ((color-llum)*(1-llum)) / (maxv3(color)-llum);
            <para>} else { </para>
            <para> return color; </para>
            <para>} </para>
            }
            </listitem>
        </varlistentry>
        <varlistentry>
            <listitem>
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">

				<mml:mo>vec3 SetLumSat</mml:mo>
				<mml:mfenced open="(" close=")">
				<mml:mrow>
					<mml:mi mathvariant="italic">vec3 cbase</mml:mi>
				</mml:mrow>
				<mml:mrow>
					<mml:mi mathvariant="italic">vec3 csat</mml:mi>
				</mml:mrow>
				<mml:mrow>
					<mml:mi mathvariant="italic">vec3 clum</mml:mi>
				</mml:mrow>
				</mml:mfenced>
            </mml:math></inlineequation>
            {
            <para>    float minbase = minv3(cbase); </para>
            <para>float sbase = satv3(cbase); </para>
            <para>float ssat = satv3(csat); </para>
            <para>vec3 color; </para>
            <para>if (sbase
            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll"> 
            <mml:mo>&gt;</mml:mo>
            <mml:mn>0</mml:mn>
            </mml:math></inlineequation>
             ) { </para>
            color = (cbase - minbase) * ssat / sbase;  
            <para>} else { </para>
            color = vec3(0.0);
            <para>} </para>
            <para>return SetLum(color, clum);</para>
            }
            </listitem>
        </varlistentry>
        </variablelist>            
        <informaltable>
            <tgroup cols="2" align="left">
                <colspec colwidth="1.1*"/>
                <colspec colwidth="1*"/>
                <thead>
                    <row>
                        <entry>
                            <emphasis role="bold"> HSL Mode </emphasis>
                        </entry>
                        <entry>
                            <emphasis role="bold"> Blend Coefficients: </emphasis>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <mml:mrow>
                                    <mml:mi mathvariant="italic">f</mml:mi>
                                    <mml:mo>&af;</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                        <mml:mrow>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">s</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                        <mml:mrow>
                                            <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                            <mml:mi mathvariant="italic">d</mml:mi>
                                            </mml:msub>
                                        </mml:mrow>
                                    </mml:mfenced>
                                </mml:mrow>
                            </mml:math></inlineequation>
                        </entry>
                    </row>
                </thead>
                <tbody>
                    <row>
                        <entry>
                        <constant>GL_HSL_HUE</constant>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: SetLumSat(C sub s, C sub d, C sub d): -->
                                <mml:mrow>
                                    <mml:mo>SetLumSat</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    </mml:mfenced>
								</mml:mrow>
                            </mml:math></inlineequation>
                        </entry>
                    </row>
                    <row>
                        <entry>
                        <constant>GL_HSL_SATURATION</constant>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: SetLumSat(C sub d, C sub s, C sub d): -->
                                <mml:mrow>
                                    <mml:mo>SetLumSat</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    </mml:mfenced>
								</mml:mrow>
                            </mml:math></inlineequation>
                        </entry>
                    </row>
                    <row>
                        <entry>
                        <constant>GL_HSL_COLOR</constant>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: SetLum(C sub s, C sub d): -->
                                <mml:mrow>
                                    <mml:mo>SetLum</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    </mml:mfenced>
								</mml:mrow>
                            </mml:math></inlineequation>
                        </entry>
                    </row>
                    <row>
                        <entry>
                        <constant>GL_HSL_LUMINOSITY</constant>
                        </entry>
                        <entry>
                            <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                                <!-- eqn: SetLum(C sub d, C sub s): -->
                                <mml:mrow>
                                    <mml:mo>SetLum</mml:mo>
                                    <mml:mfenced open="(" close=")">
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">d</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    <mml:mrow>
                                        <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
                                        <mml:mi mathvariant="italic">s</mml:mi>
                                        </mml:msub>
                                    </mml:mrow>
                                    </mml:mfenced>
								</mml:mrow>
                            </mml:math></inlineequation>
                        </entry>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
        <para>
            The results of all these equations are clamped to the range
                        <inlineequation><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                            <!-- eqn: [0,1]: -->
                            <mml:mfenced open="[" close="]">
                                <mml:mn>0</mml:mn>
                                <mml:mn>1</mml:mn>
                            </mml:mfenced>
                        </mml:math></inlineequation>.
        </para>
        <para>
            The <constant>GL_MIN</constant> and <constant>GL_MAX</constant> equations are useful for applications
            that analyze image data (image thresholding against a constant color,
            for example).
            The <constant>GL_FUNC_ADD</constant> equation is useful
            for antialiasing and transparency, among other things.
        </para>
        <para>
            Initially, both the RGB blend equation and the alpha blend equation are set to <constant>GL_FUNC_ADD</constant>.
        </para>
        <para>
        </para>
    </refsect1>
    <refsect1 xml:id="notes"><title>Notes</title>
        <para>
            Only the <constant>GL_FUNC_ADD</constant>, <constant>GL_FUNC_SUBTRACT</constant>, and <constant>GL_FUNC_REVERSE_SUBTRACT</constant> 
            equations use the source or destination factors, while the other equations use only the source and destination colors.
        </para>
        <para>
            Advanced blending equations are supported only when rendering to a single
            color buffer using fragment color zero.  If any non-NONE draw buffer uses
            an advanced blend equation the error INVALID_OPERATION is
            generated by <function>glDrawArrays</function> or any other drawing command.
        </para>    
    </refsect1>
    <refsect1 xml:id="errors"><title>Errors</title>
        <para>
            <constant>GL_INVALID_ENUM</constant> is generated if <parameter>mode</parameter> is not one of
            <constant>GL_FUNC_ADD</constant>, <constant>GL_FUNC_SUBTRACT</constant>, <constant>GL_FUNC_REVERSE_SUBTRACT</constant>,
            <constant>GL_MAX</constant>, or <constant>GL_MIN</constant>.
        </para>
        <para>
            <constant>GL_INVALID_VALUE</constant> is generated by <function>glBlendEquationi</function> if <parameter>buf</parameter> is greater
            than or equal to the value of <constant>GL_MAX_DRAW_BUFFERS</constant>.
        </para>
     </refsect1>
    <refsect1 xml:id="associatedgets"><title>Associated Gets</title>
         <para>
            <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with an argument of <constant>GL_BLEND_EQUATION_RGB</constant>
         </para>
         <para>
            <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with an argument of <constant>GL_BLEND_EQUATION_ALPHA</constant>
         </para>
    </refsect1>
    <refsect1 xml:id="versions">
        <title>API Version Support</title>
        <informaltable>
            <tgroup cols="5" align="left">
                <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="apifunchead.xml" xpointer="xpointer(/*/*)"/>
                <tbody>
                    <row>
                        <entry>glBlendEquation</entry>
                        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="apiversion.xml" xpointer="xpointer(/*/*[@role='es20']/*)"/>
                    </row>
                    <row>
                        <entry>glBlendEquationi</entry>
                        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="apiversion.xml" xpointer="xpointer(/*/*[@role='es32']/*)"/>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
    </refsect1>
    <refsect1 xml:id="seealso"><title>See Also</title>
        <para>
            <citerefentry><refentrytitle>glBlendColor</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glBlendEquationSeparate</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glBlendFuncSeparate</refentrytitle></citerefentry>
        </para>
    </refsect1>
    <refsect1 xml:id="Copyright"><title>Copyright</title>
        <para>
            Copyright <trademark class="copyright"/> 1991-2006 Silicon Graphics, Inc.
            Copyright <trademark class="copyright"/> 2010-2015 Khronos Group.
            This document is licensed under the SGI Free Software B License.
            For details, see
            <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</link>.
        </para>
    </refsect1>
</refentry>
