7532aa93a6
Co-authored-by: Reifonas <211114984+Reifonas@users.noreply.github.com>
21 lines
634 B
TypeScript
21 lines
634 B
TypeScript
/**
|
|
* Lightweight registry that lets the XR mirror expose its offscreen canvas
|
|
* as the preferred broadcast source. ShareButton checks here first.
|
|
*/
|
|
let activeCanvas: HTMLCanvasElement | null = null;
|
|
const listeners = new Set<(c: HTMLCanvasElement | null) => void>();
|
|
|
|
export function setBroadcastSource(c: HTMLCanvasElement | null) {
|
|
activeCanvas = c;
|
|
listeners.forEach((cb) => cb(c));
|
|
}
|
|
|
|
export function getBroadcastSource(): HTMLCanvasElement | null {
|
|
return activeCanvas;
|
|
}
|
|
|
|
export function onBroadcastSourceChange(cb: (c: HTMLCanvasElement | null) => void) {
|
|
listeners.add(cb);
|
|
return () => listeners.delete(cb);
|
|
}
|