Crate piet_common[][src]

Expand description

A piet backend appropriate for the current platform.

This crate reexports the piet crate, alongside an appropriate backend for the given platform. It also exposes kurbo, which defines shape and curve types useful in drawing.

The intention of this crate is to provide a single dependency that handles the common piet use-case. If you have more complicated needs (such as supporting multiple backends simultaneously) you should use crates such as piet and piet-cairo directly.

The associated types for brushes, text, and images are exported as type definitions (resolving to concrete types within the backend), so they can be used directly. The text-related types are prefixed with “Piet” to avoid conflict with the text traits that would otherwise have the same name.

Also note that all public types for the specific backend are re-exported, but have their docs hidden here. These types can be useful for platform integration, and also potentially to access extensions specific to the backend. The types documented below can be used portable across all backends.


2D geometry, with a focus on curves.

utilities shared by various backends Code useful for multiple backends


A struct provides a RenderContext and then can have its bitmap extracted.

A struct that can be used to create bitmap render contexts.

Specification of a linear gradient.

Specification of a radial gradient in image-space.

A reference to a font family.

A font weight, represented as a value in the range 1..=1000.

Specification of a gradient stop.

Result of hit testing a point in a TextLayout.

Result of hit testing a text position in a TextLayout.

An in-memory pixel buffer.

Metadata about each line in a text layout.

A description of a linear gradient in the unit rect, which can be resolved to a fixed gradient.

A description of a radial gradient in the unit rect, which can be resolved to a fixed gradient.

A type that represents an alternating pattern of drawn and undrawn segments.

Options for drawing stroked lines.

A representation of a point relative to a unit rectangle.


A datatype representing color.

Errors that can occur when parsing a hex color.

An error that can occur while rendering 2D graphics.

Any fixed gradient.

A font style, which may be italic or regular.

The pixel format for bitmap images.

A requested interpolation mode for drawing images.

Options for the cap of stroked lines.

Options for angled joins in strokes.

A color or a gradient.

Mappings from the unit square into a non-square rectangle.

The alignment of text in a TextLayout.

Attributes that can be applied to text.


A flexible, ergonomic way to describe gradient stops.

A trait for a backend’s bitmap image type.

A trait for various types that can be used as brushes.

The main trait for rendering graphics.

A trait for types that can be converted with precision loss.

The companion to RoundFrom.

The Piet text API.

A drawable text object.

A trait for laying out text.

A type that stores text.

Type Definitions

The associated brush type for this backend.

The RenderContext for the Cairo backend, which is selected.

The associated image type for this backend.

The associated text factory for this backend.

The associated text layout type for this backend.

The associated text layout builder for this backend.