Table of Contents

Class ColorCompositePaint

Namespace
Egami.Fonts
Assembly
Egami.Fonts.dll

Two paints composited: the source onto the backdrop with a blend or Porter-Duff mode.

public sealed record ColorCompositePaint : ColorPaint, IEquatable<ColorPaint>, IEquatable<ColorCompositePaint>
Inheritance
ColorCompositePaint
Implements
Inherited Members

Examples

// Color glyphs draw in color by themselves: COLR (layers and gradients), sbix and CBDT (images), per glyph.
using (RasterCanvas<Rgba8> canvas = image.CreateCanvas())
{
    canvas.DrawText("Ship it", new Vector2(8, 40), new Font(text, 24), Rgba8.Black);
    canvas.DrawText("\U0001F680\U0001F389", new Vector2(100, 42), new Font(emoji, 32), Rgba8.Black);
}

// The palette is a font setting; the paint's color fills a glyph's foreground parts and its alpha the whole glyph.
var darkMode = new Font(emoji, 32) { Palette = FontPalette.Dark };
ColorGlyphFormats formats = emoji.ColorFormats;

// The paint graph is there to walk, for writers that draw color glyphs their own way.
emoji.TryGetColorGlyph(emoji.GetGlyph(0x1F680), darkMode.Palette, out ColorGlyph? rocket);

Constructors

ColorCompositePaint(BlendMode, ColorPaint, ColorPaint)

Two paints composited: the source onto the backdrop with a blend or Porter-Duff mode.

public ColorCompositePaint(BlendMode Mode, ColorPaint Source, ColorPaint Backdrop)

Parameters

Mode BlendMode

The mode; COLR's 28 modes map onto Egami's.

Source ColorPaint

The source.

Backdrop ColorPaint

The backdrop.

Examples

// Color glyphs draw in color by themselves: COLR (layers and gradients), sbix and CBDT (images), per glyph.
using (RasterCanvas<Rgba8> canvas = image.CreateCanvas())
{
    canvas.DrawText("Ship it", new Vector2(8, 40), new Font(text, 24), Rgba8.Black);
    canvas.DrawText("\U0001F680\U0001F389", new Vector2(100, 42), new Font(emoji, 32), Rgba8.Black);
}

// The palette is a font setting; the paint's color fills a glyph's foreground parts and its alpha the whole glyph.
var darkMode = new Font(emoji, 32) { Palette = FontPalette.Dark };
ColorGlyphFormats formats = emoji.ColorFormats;

// The paint graph is there to walk, for writers that draw color glyphs their own way.
emoji.TryGetColorGlyph(emoji.GetGlyph(0x1F680), darkMode.Palette, out ColorGlyph? rocket);

Properties

Backdrop

The backdrop.

public ColorPaint Backdrop { get; init; }

Property Value

ColorPaint

Mode

The mode; COLR's 28 modes map onto Egami's.

public BlendMode Mode { get; init; }

Property Value

BlendMode

Source

The source.

public ColorPaint Source { get; init; }

Property Value

ColorPaint

Methods

Accept(IColorPaintVisitor)

Calls the visitor's method for this kind of node.

public override void Accept(IColorPaintVisitor visitor)

Parameters

visitor IColorPaintVisitor

The visitor.