mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-30 13:08:07 -06:00
20 lines
609 B
Rust
20 lines
609 B
Rust
use std::cell::Cell;
|
|
use std::thread::LocalKey;
|
|
|
|
thread_local! {
|
|
/// Scratch rows allocated by the 32-bit ZIP un-predictor.
|
|
pub static SCRATCH: Cell<usize> = const { Cell::new(0) };
|
|
/// `inside the mask rect` evaluations of the layer-mask loop.
|
|
pub static INSIDE: Cell<usize> = const { Cell::new(0) };
|
|
/// `square_to_quad` solves.
|
|
pub static QUAD: Cell<usize> = const { Cell::new(0) };
|
|
}
|
|
|
|
pub fn bump(c: &'static LocalKey<Cell<usize>>) {
|
|
c.with(|c| c.set(c.get() + 1));
|
|
}
|
|
/// Read and reset.
|
|
pub fn take(c: &'static LocalKey<Cell<usize>>) -> usize {
|
|
c.with(|c| c.replace(0))
|
|
}
|