Crate epaint

Source
Expand description

A simple 2D graphics library for turning simple 2D shapes and text into textured triangles.

Made for egui.

Create some Shape:s and pass them to tessellate_shapes to generate Mesh:es that you can then paint using some graphics API of your choice (e.g. OpenGL).

§Feature flags

Modules§

ahash
AHash is a high performance keyed hash function.
color
Color conversions and types.
emath
Opinionated 2D math library for building GUIs.
image
mutex
Helper module that wraps some Mutex types with different implementations.
shape_transform
stats
Collect statistics about what is being painted.
tessellator
Converts graphics primitives into textured triangles.
text
Everything related to text, fonts, text layout, cursors etc.
textures
util

Macros§

epaint_assert
An assert that is only active when epaint is compiled with the extra_asserts feature or with the extra_debug_asserts feature in debug builds.

Structs§

CircleShape
How to paint a circle.
ClippedPrimitive
A Mesh or PaintCallback within a clip rectangle.
ClippedShape
A Shape within a clip rectangle.
Color32
This format is used for space-efficient color representation (32 bits).
ColorImage
A 2D RGBA color image in RAM.
CubicBezierShape
A cubic Bézier Curve.
FontId
How to select a sized font.
FontImage
A single-channel image designed for the font texture.
Fonts
The collection of fonts used by epaint.
Galley
Text that has been layed out, ready for painting.
ImageDelta
A change to an image.
Mesh
Textured triangles in two dimensions.
Mesh16
A version of Mesh that uses 16-bit indices.
PaintCallback
If you want to paint some 3D shapes inside an egui region, you can use this.
PaintCallbackInfo
Information passed along with PaintCallback (Shape::Callback).
PaintStats
Collected allocation statistics for shapes and meshes.
PathShape
A path which can be stroked and/or filled (if closed).
Pos2
A position on screen.
QuadraticBezierShape
A quadratic Bézier Curve.
Rect
A rectangular region of space.
RectShape
How to paint a rectangle.
Rgba
0-1 linear space RGBA color with premultiplied alpha.
Rounding
How rounded the corners of things should be
Shadow
The color and fuzziness of a fuzzy shape. Can be used for a rectangular shadow with a soft penumbra.
Stroke
Describes the width and color of a line.
TessellationOptions
Tessellation quality options
Tessellator
Converts Shapes into triangles (Mesh).
TextShape
How to paint some text on screen.
TextureAtlas
Contains font data in an atlas, where each character occupied a small rectangle.
TextureHandle
Used to paint images.
TextureManager
Low-level manager for allocating textures.
Vec2
A vector has a direction and length. A Vec2 is often used to represent a size.
Vertex
The 2D vertex type.

Enums§

FontFamily
Font of unknown size.
ImageData
An image stored in RAM.
Primitive
A rendering primitive - either a Mesh or a PaintCallback.
Shape
A paint primitive such as a circle or a piece of text. Coordinates are all screen space points (not physical pixels).
TextureId
What texture to use in a Mesh mesh.

Constants§

WHITE_UV
The UV coordinate of a white region of the texture mesh. The default egui texture has the top-left corner pixel fully white. You need need use a clamping texture sampler for this to work (so it doesn’t do bilinear blending with bottom right corner).

Functions§

pos2
pos2(x, y) == Pos2::new(x, y)
tessellate_shapes
Turns Shape:s into sets of triangles.
vec2
vec2(x, y) == Vec2::new(x, y)