Add shared-data and bundle invalidation signals, and have handles publish them automatically for SAB and graph mutations. Document the raw core worker protocol in a dedicated VitePress site and simplify the glTF import and picking example. Amp-Thread-ID: https://ampcode.com/threads/T-01a01ff8-b91f-724f-8952-f07c6b5042fd Co-authored-by: Heaust Azure <heaust.azure@gmail.com>
33 lines
776 B
Rust
33 lines
776 B
Rust
use super::RenderData;
|
|
|
|
#[test]
|
|
fn dirty_signal_is_consumed_once() {
|
|
let mut data = RenderData::new(64).unwrap();
|
|
|
|
assert!(data.rows("signals").is_some());
|
|
assert!(data.begin_render());
|
|
assert!(!data.begin_render());
|
|
|
|
data.mark_dirty();
|
|
assert!(data.begin_render());
|
|
assert!(!data.render_pending());
|
|
}
|
|
|
|
#[test]
|
|
fn skip_and_bundle_signals_hold_dirty_work() {
|
|
let mut data = RenderData::new(64).unwrap();
|
|
assert!(data.begin_render());
|
|
|
|
data.write_signal(4, 1.0);
|
|
data.mark_dirty();
|
|
assert!(!data.begin_render());
|
|
data.write_signal(4, 0.0);
|
|
assert!(data.begin_render());
|
|
|
|
data.write_signal(6, 1.0);
|
|
data.mark_dirty();
|
|
assert!(!data.begin_render());
|
|
data.loadout_ready();
|
|
assert!(data.begin_render());
|
|
}
|