Crate comfy_wgpu::epaint
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 is a high performance keyed hash function.
- Color conversions and types.
- Opinionated 2D math library for building GUIs.
- Helper module that wraps some Mutex types with different implementations.
- Collect statistics about what is being painted.
- Converts graphics primitives into textured triangles.
- Everything related to text, fonts, text layout, cursors etc.
Macros
- An assert that is only active when
epaintis compiled with theextra_assertsfeature or with theextra_debug_assertsfeature in debug builds.
Structs
- How to paint a circle.
- A
MeshorPaintCallbackwithin a clip rectangle. - A
Shapewithin a clip rectangle. - This format is used for space-efficient color representation (32 bits).
- A 2D RGBA color image in RAM.
- A cubic Bézier Curve.
- How to select a sized font.
- A single-channel image designed for the font texture.
- The collection of fonts used by
epaint. - Text that has been laid out, ready for painting.
- Hue, saturation, value, alpha. All in the range [0, 1]. No premultiplied alpha.
- Like Hsva but with the
vvalue (brightness) being gamma corrected so that it is somewhat perceptually even. - A change to an image.
- Textured triangles in two dimensions.
- A version of
Meshthat uses 16-bit indices. - If you want to paint some 3D shapes inside an egui region, you can use this.
- Information passed along with
PaintCallback(Shape::Callback). - Collected allocation statistics for shapes and meshes.
- A path which can be stroked and/or filled (if closed).
- A position on screen.
- A quadratic Bézier Curve.
- A rectangular region of space.
- How to paint a rectangle.
- 0-1 linear space
RGBAcolor with premultiplied alpha. - How rounded the corners of things should be
- The color and fuzziness of a fuzzy shape. Can be used for a rectangular shadow with a soft penumbra.
- Describes the width and color of a line.
- Tessellation quality options
- How to paint some text on screen.
- Contains font data in an atlas, where each character occupied a small rectangle.
- Used to paint images.
- Low-level manager for allocating textures.
- A vector has a direction and length. A
Vec2is often used to represent a size. - The 2D vertex type.
Enums
- Font of unknown size.
- An image stored in RAM.
- A rendering primitive - either a
Meshor aPaintCallback. - A paint primitive such as a circle or a piece of text. Coordinates are all screen space points (not physical pixels).
- What texture to use in a
Meshmesh.
Constants
- 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(x, y) == Pos2::new(x, y)- Turns
Shape:s into sets of triangles. vec2(x, y) == Vec2::new(x, y)