Crate piet_common

Source
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, and image for image manipulation.

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.

Modules§

kurbo
2D geometry, with a focus on curves.
util
utilities shared by various backends Code useful for multiple backends

Structs§

BitmapTarget
A struct provides a RenderContext and then can have its bitmap extracted.
Device
A struct that can be used to create bitmap render contexts.
FixedLinearGradient
Specification of a linear gradient.
FixedRadialGradient
Specification of a radial gradient in image-space.
FontFamily
A reference to a font family.
FontWeight
A font weight, represented as a value in the range 1..=1000.
GradientStop
Specification of a gradient stop.
HitTestPoint
Result of hit testing a point in a TextLayout.
HitTestPosition
Result of hit testing a text position in a TextLayout.
ImageBuf
An in-memory pixel buffer.
LineMetric
Metadata about each line in a text layout.
LinearGradient
A description of a linear gradient in the unit rect, which can be resolved to a fixed gradient.
RadialGradient
A description of a radial gradient in the unit rect, which can be resolved to a fixed gradient.
StrokeDash
A type that represents an alternating pattern of drawn and undrawn segments.
StrokeStyle
Options for drawing stroked lines.
UnitPoint
A representation of a point relative to a unit rectangle.

Enums§

Color
A datatype representing color.
ColorParseError
Errors that can occur when parsing a hex color.
Error
An error that can occur while rendering 2D graphics.
FixedGradient
Any fixed gradient.
FontStyle
A font style, which may be italic or regular.
ImageFormat
The pixel format for bitmap images.
InterpolationMode
A requested interpolation mode for drawing images.
LineCap
Options for the cap of stroked lines.
LineJoin
Options for angled joins in strokes.
PaintBrush
A color or a gradient.
ScaleMode
Mappings from the unit square into a non-square rectangle.
TextAlignment
The alignment of text in a TextLayout.
TextAttribute
Attributes that can be applied to text.

Traits§

GradientStops
A flexible, ergonomic way to describe gradient stops.
Image
A trait for a backend’s bitmap image type.
IntoBrush
A trait for various types that can be used as brushes.
RenderContext
The main trait for rendering graphics.
RoundFrom
A trait for types that can be converted with precision loss.
RoundInto
The companion to RoundFrom.
Text
The Piet text API.
TextLayout
A drawable text object.
TextLayoutBuilder
A trait for laying out text.
TextStorage
A type that stores text.

Type Aliases§

Brush
The associated brush type for this backend.
Piet
The RenderContext for the Cairo backend, which is selected.
PietImage
The associated image type for this backend.
PietText
The associated text factory for this backend.
PietTextLayout
The associated text layout type for this backend.
PietTextLayoutBuilder
The associated text layout builder for this backend.