23 lines
579 B
TypeScript
23 lines
579 B
TypeScript
export type RenderCallback = (
|
|
ctx: CanvasRenderingContext2D,
|
|
deltaTime: number,
|
|
realDeltaTime: number,
|
|
) => void;
|
|
|
|
export const useRender = (callback: RenderCallback) => {
|
|
const registerRenderCallback = inject<
|
|
(callback: RenderCallback) => () => void
|
|
>("registerRenderCallback");
|
|
|
|
onMounted(() => {
|
|
if (!registerRenderCallback) {
|
|
throw new Error(
|
|
"Missing registerRenderCallback - useRender must be used within a Screen component",
|
|
);
|
|
}
|
|
|
|
const unregister = registerRenderCallback(callback);
|
|
onUnmounted(unregister);
|
|
});
|
|
};
|