freya_core/
rendering_ticker.rs1use crate::prelude::consume_root_context;
2
3pub type RenderingTickerSender = async_broadcast::Sender<()>;
4
5#[derive(Clone)]
6pub struct RenderingTicker {
7 rx: async_broadcast::Receiver<()>,
8}
9
10impl RenderingTicker {
11 pub fn get() -> Self {
12 consume_root_context()
13 }
14 pub fn new() -> (async_broadcast::Sender<()>, Self) {
15 let (tx, rx) = async_broadcast::broadcast(256);
16 (tx, Self { rx })
17 }
18
19 pub async fn tick(&mut self) {
20 self.rx.recv().await.ok();
21 }
22}