API Reference vivid v#1.0.0

Copy Markdown View Source

Modules

Vivid is a 2D rendering engine implemented purely in Elixir.

This module represents an Arc, otherwise known as a circle segment.

Reads bitmap fonts in Adobe's Glyph Bitmap Distribution Format.

A single glyph from a bitmap font: how far the pen advances, and which pixels are lit.

This module represents a Bézier curve of arbitrary degree, defined by a list of control points.

A grid of lit cells - a bitmap - as a shape.

Provides information about the bounds of a box and pixel positions within it.

This protocol is used to calculate the bounds of a given shape.

Short-hand for creating rectangle polygons.

Used to convert a Frame into a buffer for display.

Reads the Compact Font Format table carried by OpenType fonts with PostScript outlines - the ones whose files begin with OTTO.

Interprets Type 2 charstrings, which is how a CFF font describes a glyph.

A single glyph from a CFF font.

Represents a circle based on it's center point and radius.

Describes a font as a map of codepoints to glyphs, along with the metrics needed to lay them out.

Describes an individual character defined by a Hershey font file.

Everything laying out a line of text needs to know about a single glyph.

Frame represents a collection of colours and shapes.

Represents a collection of shapes which can be Rasterized in a single pass.

Supports reading the Hershey Vector Font format and converting them into paths.

Represents a line segment between two Points in 2D space.

I made this because I was constantly importing a small selection of Erlang's :math module, and then manually implementing degrees_to_radians/1 which got pretty annoying after a while.

Reads OpenType fonts - both the TrueType outlines in a .ttf and the PostScript ones in a .otf - and says clearly why it can't when it can't.

Reads a font's character map: the table which says which glyph draws which codepoint.

Describes a path as a series of vertices.

Represents an individual point in (2D) space.

Describes a Polygon as a series of vertices.

Computes the filled area of a polygon by scanline conversion.

Defines a colour in RGBA colour space.

The Rasterize protocol is responsible for converting shapes into bitmaps.

A filled area bounded by one or more closed contours.

Doesn't do anything - is merely a type to represent an arbitrary shape in typespecs.

Handle conversions of arbitrary shapes into strings.

Creates and applies a "pipeline" of transformations to a shape. Transformation operations are collected up and only run once, when apply is called.

An operation that can be applied to a shape.

Standard transformations which can be applied to points without knowing the details of the geometry.

This protocol is used to apply point transformations to a shape.

A single glyph read from a font's glyf table.