NOTICE: Some of the following might be WIP blenders that have not been implemented or are under research. =========================================================================================== Definitions: FLOPS Floating Point (Decimal) Operations Fidelity The quality of the output across the range of outputs from 0 to 255. Tag Indicators: ~ Alternate Version, Usually with more Fidelity @ Smoothed Version. Includes extra adjustments to increase fidelity in a way that reduces harshness. $ This blender writes directly to the output and doesn't take in any image data. * This blender requires one or more extra 64bit units of data per line of the image being painted. Blending Flags (Used in "Other Mode Notes"): s Invert the source d Invert the destination r Invert the result x Swap the source and destination inputs The source image is always considered to be the top layer, and the desitnation the bottom. These can be swapped to alter output, but the alpha of the REAL source layer is always used. Seen Where Applications: ! DELTA Exclusive (As far as I know, anyway) A Aviary's Peacock P Photoshop N Paint.NET W Listed on Wikipedia Page: http://en.wikipedia.org/wiki/Blend_modes G The GIMP Color Spaces: RGB Red Green Blue HLC Hue Luma Chroma HSB/HSL Hue Saturation Brightness/Lightness HSV Hue Saturation Value Speed Measurement: [Rtg.] Preliminary estimations based on running debug tests. BrawlMario image used as src, RGB used as DST. The baseline figure of the estimation is 39% usage with no data movement and 40% when data is copied. The values come from subtracting this 40% figure from the usage percentage as the blender runs. SPEEDS LISTED IN [] HAVE BEEN SUPERSEEDED BY A TABLE LOOKUP IMPLEMENTATION. ***NOTE THAT ONLY COMPUTATIONS WITH _ONE_ INPUT CAN BE TABLE LOOKUP OPTIMIZED*** SPECIAL VALUES: [!] - This blender is designed for HD Graphics and is EXTREMELY speedy, enough to fill an HD screen in realtime at 60+ FPS. The HD blenders have designated (hardcoded) mode variations based on two of the graphics flags. =========================================================================================== Done?...Notes Seen Where Rtg. Blender Abbreviation, Name, Description, (Alternate Name(s)), [Other Mode Notes] Yes ! [!] HD-NRM -- HD Overwrite Modes: SRC/NSRC/DST/NDST [DST same as a NOP] Yes ! [!] HD-AM1 -- HD Arithmetic Modes #1: ADD/SUB/AVG/AVS Yes ! [!] HD-AM2 -- HD Arithmetic Modes #2: MIN/MAX/GXT/GMR Yes ! [!] HD-AM3 -- HD Arithmetic Modes #3: FMUL/MUL2/DIV2/DIV4 Yes ! [!] HD-BM1 -- HD Bitwise Modes #1: AND/ANDN/NAND/NANDN [NANDN is same as JTD] Yes ! [!] HD-BM2 -- HD Bitwise Modes #2: OR/ORN/NOR/NORN [NORN is same as ALD] Yes ! [!] HD-BM3 -- HD Bitwise Modes #3: XOR/EQL/FLS/TRU [N(XOR) is same as EQL] Yes ! [!] HD-pJMP -- HD with Magic Pink, Jump Optimized (Faster For Predictable Edges) Yes ! [!] HD-pNRM -- HD with Magic Pink, Overwrite Modes: SRC/NSRC/DST/NDST [DST same as a NOP] Yes ! [!] HD-pAM1 -- HD with Magic Pink, Arithmetic Modes #1: ADD/SUB/AVG/AVS Yes ! [!] HD-pAM2 -- HD with Magic Pink, Arithmetic Modes #2: MIN/MAX/GXT/GMR Yes ! [!] HD-pAM3 -- HD with Magic Pink, Arithmetic Modes #3: FMUL/MUL2/DIV2/DIV4 Yes ! [!] HD-pBM1 -- HD with Magic Pink, Bitwise Modes #1: AND/ANDN/NAND/NANDN [NANDN is same as JTD] Yes ! [!] HD-pBM2 -- HD with Magic Pink, Bitwise Modes #2: OR/ORN/NOR/NORN [NORN is same as ALD] Yes ! [!] HD-pBM3 -- HD with Magic Pink, Bitwise Modes #3: XOR/EQL/FLS/TRU [N(XOR) is same as EQL] Yes ! [!] HD-aXF2 -- HD with Extra-Fast Alpha (Heavy Artifacts) [Alternate A-Value Input Format] Yes ! [!] HD-aXFA -- HD with Extra-Fast Alpha (Heavy Artifacts) Yes ! [!] HD-aNRM -- HD with Fast Alpha, Overwrite Modes: SRC/NSRC/DST/NDST [This cannot use destination values.] Yes ! [!] HD-aAM1 -- HD with Fast Alpha, Arithmetic Modes #1: ADD/SUB/AVG/AVS Yes ! [!] HD-aAM2 -- HD with Fast Alpha, Arithmetic Modes #2: MIN/MAX/GXT/GMR Yes ! [!] HD-aAM3 -- HD with Fast Alpha, Arithmetic Modes #3: FMUL/MUL2/DIV2/DIV4 Yes FASTEST APNW 0 NRM -- Normal Draw Operation Yes FASTEST APNW 0 AND -- Bitwise AND Yes FASTEST APNW 0 XOR -- Bitwise Exclusive-OR Yes FASTEST APNW 0 TRU -- Bitwise Tautology Yes PNW 0 ADD/SUB -- Additive/Subtractive (Linear Dodge) Yes W 0 ADS -- Add and Subtract One (Linear Burn) [DIFFERENT THAN SUBTRACTION MODE] Yes ! 0 AVG -- Average Yes ! 0 AVS -- Average Made Subtractive Yes ! 0 XMD -- External Midpoint Yes ! 0 XMP -- External Midpoint, Capped Through Positive Side Yes ! 0 XMN -- External Midpoint, Capped Through Negative Side Yes ! 0 AVD -- Absolute Value of Difference, Internal Yes ! 0 AHD -- Absolute Value of Half of Difference, Internal Yes PNW 0 MAX/MIN -- Maximum/Minimum (Lighten/Darken (Only)) Yes N 0 SMX -- Subtract Minimum From Maximum [sr = Negation] Yes ! 1 CTD -- Contrast Detect Yes ! 1 CTM -- Contrast Maximum Yes ! 3 CTX -- Contrast Mix Yes ! 0 MUL2 -- Multiply By 2 Yes ! 0 DIV2 -- Divide By 2 Yes ! 0 DIV4 -- Divide By 4 Yes ! 0 FMUL -- Fake Multiply (From HD Mode) Yes PNW 1 MUL -- Multiply [sdr = Screen] Yes **Slow: FLOPS Used** ! 3 DIV -- Divide Yes **Slow: FLOPS Used** ! 3 MRC -- Reciprocal of Multiply [Equation: r=(1/sd)] Yes **Slow: FLOPS Used** ! 3 RCP -- Reciprocal Yes **Slow: FLOPS Used** ! 3 [6] MOD -- Modulus Yes **Slow: FLOPS Used** ! 3 [6] ~MOD -- Modulus, With Max Fidelity Yes **Slow: FLOPS Used** ! 3 [6] WHP -- Whole Part Yes **Slow: FLOPS Used** ! 3 [6] ~WHP -- Whole Part (Max Fidelity) Yes **Slow: FLOPS Used** ! 3 SQT -- Square Root Yes **Slow: FLOPS Used** ! 2 RSR -- Reciprocal Square Root [Already Softened] Yes **TABLE LOOKUP** ! 3 [10] LOG -- Logarithm [Equation: log2(Src); Already Softened] Yes **TABLE LOOKUP** ! 3 LOGg -- Grit Logarithm ['Dark & Gritty' Effect] Yes **TABLE LOOKUP** ! 3 [11] EXP -- Exponential [Equation: 2^Src ; Already Softened; 'Intense Colors, High Contrast'] Yes **TABLE LOOKUP** ! 6 [24] POW -- Raise To Power [Equation: Dst^Src ] Yes **TABLE LOOKUP** ! 8 [27] RPW -- Reciprocal of Raise To Power; [Equation: Dst^soft(1/Src)] Yes **Slow: FLOPS Used** ! 5 CFT -- Circular Function T [Semicircle Top Half] Yes **Slow: FLOPS Used** ! 5 CFB -- Circular Function B [Semicircle Bottom Half] Yes **Slow: FLOPS Used** ! 5 CF2 -- Circular Function x2 [Semicircle Top Half, Stretched Up] Yes **Slow: FLOPS Used** ! 5 CFQ -- Quarter Circular Function [Quartercircle BL--->TL_area--->TR] Yes **Slow: FLOPS Used** ! 6 CFQ2 -- Quarter Circular Function x2 Yes **Slow: FLOPS Used** ! 6 CFQ2T -- Quarter Circular Function x2, Half, Top Yes **Slow: FLOPS Used** ! 6 CFQ2B -- Quarter Circular Function x2, Half, Bottom Yes **256v Lookup Table** ! 3 SIN -- Trig Function y=((cos(2pi x)+1)/2) [Already Softened] Yes **256v Lookup Table** ! 3 COS -- Trig Function y=((cos( pi x)+1)/2) [Already Softened] Yes **256v Lookup Table** ! 3 ARC -- Trig Function x=((cos( pi y)+1)/2) [Already Softened] Yes **Slow: FLOPS Used** ! 3 @DIV -- Soft Divide Yes **Slow: FLOPS Used** ! 3 @MRC -- Soft Reciprocal of Multiply Yes **Slow: FLOPS Used** ! 3 @RCP -- Soft Reciprocal Yes **Slow: FLOPS Used** ! 3 [6] @MOD -- Soft Modulus Yes **Slow: FLOPS Used** ! 3 [6] ~@MOD -- Soft Modulus, With Max Fidelity Yes **Slow: FLOPS Used** ! 3 [6] @WHP -- Soft Whole Part Yes **Slow: FLOPS Used** ! 3 [6] ~@WHP -- Soft Whole Part (Max Fidelity) Yes **Slow: FLOPS Used** ! 3 @SQT -- Soft Square Root Yes **EXPENSIVE: 2 Exp2()** ! 8 [27] @RPW -- Soft Reciprocal of Raise To Power Yes P 1 XCL -- Exclusion Yes **Slow: FLOPS Used** PNW 7 CLD/CLB -- Color Dodge/Burn (PDN/PSD) [drx = CD; sr = CD_swap; sx = CB; d = CB_swap] Yes **A BIT EXPENSIVE** ! 14 SuCLDa -- CLD/CLB Combined With Toggle[x] Version Yes **A BIT EXPENSIVE** ! 14 SuCLDb -- CLD/CLB Combined With Toggle[sd] Version Yes **A BIT EXPENSIVE** ! 14 SuCLDc -- CLD/CLB Combined With Toggle[d] Version Yes **A BIT EXPENSIVE** ! 15 CLL -- Color Light [CLD[sdx]*CLD] Yes **COMPUTE EXPENSIVE** ! 32 SuCLL -- Color Light, on Both Sides of Spectrum Yes **COMPUTE EXPENSIVE** N 28 RFL/GLW -- Reflect/Glow [x = Glow] Yes **COMPUTE EXPENSIVE** ! 30 YRX -- SquareRootY/X Yes **COMPUTE EXPENSIVE** ! 27 RLF2 -- Reflect [Horizontal Output] Yes **COMPUTE EXPENSIVE** ! 27 YRX2 -- SquareRootY/X [Horizontal Output] Yes **COMPUTE EXPENSIVE** ! 37 YMX -- RFL Multiplied By YRX2 Yes **COMPUTE EXPENSIVE** ! 39 YMX2 -- RFL2 Multiplied By YRX Yes **XTREME COMPUTE TIME** ! 41 MgRLF -- Mega Reflect Mixer [YMX Multiplied By YMX2] Yes PNW 2 OVL -- Overlay [x = Hard Light] Yes **A BIT EXPENSIVE** P W 13 VLT -- Vivid Light Yes P W 0 LLT -- Linear Light Yes P W 0 PLT -- Pin Light Yes G 0 GXT -- Grain Extract Yes G 0 GMR -- Grain Merge P DSS -- Dissolve Pixels [Blend Alpha% of Pixels Randomly] P *HMX -- Hard Mix PN *PSZ -- Posterize Quality Degrade ! *GRY -- Greyscale-ify With Hues PN *CLZ -- Colorized Source/Dest [Direct Modify HLC color, then Draw] PN *CLS -- Colorizer-Mix With Sprite [Modify Destination HLC color using Source HLC] ! *TLB1 -- 1-Dimensional Byte Table Lookup Blender ! *TLB2 -- 2-Dimensional ARGB Table Lookup Blender ! $MIX -- Shuffle Pixel SubValues ! $SHV -- Shift Pixel SubValues ! $WAV -- Write Arbitrary Value ! $PRI -- Priority Layering Mask Using Alpha ! $RND -- Generate Random Color PN $ACR -- Active Color Replacer ! $PLN -- Generate Values From Perlin Noise ! GGF32 -- Graph Gradient 32bit Data Visualization ! GGF16 -- Graph Gradient 16bit Data Visualization ! GGF08 -- Graph Gradient 16bit Data Visualization