Module sixtyfps_corelib::graphics[][src]

Graphics Abstractions.

This module contains the abstractions and convenience types used for rendering.

The run-time library also makes use of RenderingCache to store the rendering primitives created by the backend in a type-erased manner.

Structs

CachedGraphicsData

CachedGraphicsData allows the graphics backend to store an arbitrary piece of data associated with an item, which is typically computed by accessing properties. The dependency_tracker is used to allow for a lazy computation. Typically backends store either compute intensive data or handles that refer to data that’s stored in GPU memory.

Color

Color represents a color in the SixtyFPS run-time, represented using 8-bit channels for red, green, blue and the alpha (opacity). It can be conveniently constructed and destructured using the to_ and from_ (a)rgb helper functions:

FontRequest

FontRequest collects all the developer-configurable properties for fonts, such as family, weight, etc. It is submitted as a request to the platform font system (i.e. CoreText on macOS) and in exchange the backend returns a Box.

GradientStop

GradientStop describes a single color stop in a gradient. The colors between multiple stops are interpolated.

LinearGradientBrush

The LinearGradientBrush describes a way of filling a shape with different colors, which are interpolated between different stops. The colors are aligned with a line that’s rotated by the LinearGradient’s angle.

PathArcTo

PathArcTo describes the event of moving the cursor on the path across an arc to the specified x/y coordinates, with the specified x/y radius and additional properties.

PathArcToFieldsOffsets

Helper struct containing the offsets of the fields of the struct PathArcTo

PathCubicTo

PathCubicTo describes a smooth Bézier curve from the path’s current position to the specified x/y location, using two control points.

PathCubicToFieldsOffsets

Helper struct containing the offsets of the fields of the struct PathCubicTo

PathDataIterator

PathDataIterator is a data structure that acts as starting point for iterating through the low-level events of a path. If the path was constructed from said events, then it is a very thin abstraction. If the path was created from higher-level elements, then an intermediate lyon path is required/built.

PathLineTo

PathLineTo describes the event of moving the cursor on the path to the specified location along a straight line.

PathLineToFieldsOffsets

Helper struct containing the offsets of the fields of the struct PathLineTo

PathMoveTo

PathMoveTo describes the event of setting the cursor on the path to use as starting point for sub-sequent events, such as LineTo. Moving the cursor also implicitly closes sub-paths and therefore beings a new sub-path.

PathMoveToFieldsOffsets

Helper struct containing the offsets of the fields of the struct PathMoveTo

PathQuadraticTo

PathCubicTo describes a smooth Bézier curve from the path’s current position to the specified x/y location, using one control points.

PathQuadraticToFieldsOffsets

Helper struct containing the offsets of the fields of the struct PathQuadraticTo

RgbaColor

RgbaColor stores the red, green, blue and alpha components of a color with the precision of the generic parameter T. For example if T is f32, the values are normalized between 0 and 1. If T is u8, they values range is 0 to 255. This is merely a helper class for use with Color.

Enums

Brush

A brush is a data structure that is used to describe how a shape, such as a rectangle, path or even text, shall be filled. A brush can also be applied to the outline of a shape, that means the fill of the outline itself.

ImageReference

A resource is a reference to binary data, for example images. They can be accessible on the file system or embedded in the resulting binary. Or they might be URLs to a web server and a downloaded is necessary before they can be used.

PathData

PathData represents a path described by either high-level elements or low-level events and coordinates.

PathElement

PathElement describes a single element on a path, such as move-to, line-to, etc.

PathEvent

PathEvent is a low-level data structure describing the composition of a path. Typically it is generated at compile time from a higher-level description, such as SVG commands.

Traits

FontMetrics

The FontMetrics trait is constructed from a FontRequest by the graphics backend and supplied to text related items in order to measure text.

Functions

line_for_angle

Returns the start / end points of a gradiant within the [-0.5; 0.5] unit square, based on the angle (in degree).

Type Definitions

IntRect

2D Rectangle with integer coordinates

Point

2D Point

Rect

2D Rectangle

RenderingCache

The RenderingCache, in combination with CachedGraphicsData, allows backends to store data that’s either intensive to compute or has bad CPU locality. Backends typically keep a RenderingCache instance and use the item’s cached_rendering_data() integer as index in the vec_arena::Arena.

Size

2D Size

Transform

2D Transform