Expand description
wizdraw
- Portable crate to fill and stroke composite bezier curves (paths)
All operations are done on an offscreen canvas.
The CPU implementation is always available and performs OK.
§Limitations
- Pixels are [R, G, B, A] values with 8-bit components
- Point coordinates are pairs of
f32
- The GLES2 implementation’s output is currently only readable as RGBA5551
§Features
simd
: include the SIMD canvas implementationgles2
: include the OpenGL ES 2.0 canvas implementationcontour
: include path stroking codeshapes
: include basic shape generation code
By default, this crate doesn’t use SIMD because a nightly toolchain is required for that.
§Example
let myrtle = Color::new(255, 100, 100, 255);
let texture = Texture::SolidColor(myrtle);
let oval = [
CubicBezier {
c1: Point::new(50.0, 250.0),
c2: Point::new(50.0, 50.0),
c3: Point::new(450.0, 50.0),
c4: Point::new(450.0, 250.0),
},
CubicBezier {
c1: Point::new(450.0, 250.0),
c2: Point::new(450.0, 450.0),
c3: Point::new(50.0, 450.0),
c4: Point::new(50.0, 250.0),
},
];
let mut canvas = wizdraw::cpu::Canvas::new(500, 500);
canvas.fill_cbc(&oval, &texture, false, SsaaConfig::X4);
// retrieve a framebuffer
let pixels = canvas.pixels();
§Demo: PNG output
Check out the cpu
example to generate this image:
Re-exports§
Modules§
- cpu
- Implementations of
Canvas
using only the CPU - gles2
- Implementations of
Canvas
using OpenGL ES 2.0 - shapes
Structs§
- Bitmap
Handle - Texture handle created using a
Canvas
- Cubic
Bezier - Cubic Bezier Curve, made of 4 control points
Enums§
- Ssaa
Config - Super-Sampling Anti-Aliasing Configuration
- Texture
- The expected content of a filled path
Traits§
- Canvas
- The trait that rendering backends must implement
Functions§
- contour
- Creates a Contour composite bezier curve based on another one.