Function freya::hooks::use_canvas
source · pub fn use_canvas(
renderer_cb: impl Fn() -> Box<dyn Fn(&mut CanvasRunnerContext<'_>) + Sync + Send> + 'static,
) -> UseCanvas
Expand description
Register a rendering hook to gain access to the Canvas. Reactivity managed through signals.
§Usage
fn app() -> Element {
let (reference, size) = use_node_signal();
let mut value = use_signal(|| 0);
let platform = use_platform();
let canvas = use_canvas(move || {
let curr = value();
platform.invalidate_drawing_area(size.peek().area);
platform.request_animation_frame();
Box::new(move |ctx| {
// Draw using the canvas !
// use `curr`
})
});
rsx!(rect {
onclick: move |_| {
value += 1;
},
canvas_reference: canvas.attribute(),
reference,
width: "fill",
height: "fill",
})
}