@@ -8,6 +8,7 @@ import { CanvasRenderer } from "@/services/renderer/canvas-renderer";
88import type { RootNode } from "@/services/renderer/nodes/root-node" ;
99import { buildScene } from "@/services/renderer/scene-builder" ;
1010import { getLastFrameTime } from "@/lib/time" ;
11+ import { PreviewInteractionOverlay } from "./preview-interaction-overlay" ;
1112
1213function usePreviewSize ( ) {
1314 const editor = useEditor ( ) ;
@@ -57,7 +58,7 @@ export function PreviewPanel() {
5758}
5859
5960function PreviewCanvas ( ) {
60- const ref = useRef < HTMLCanvasElement > ( null ) ;
61+ const canvasRef = useRef < HTMLCanvasElement > ( null ) ;
6162 const lastFrameRef = useRef ( - 1 ) ;
6263 const lastSceneRef = useRef < RootNode | null > ( null ) ;
6364 const renderingRef = useRef ( false ) ;
@@ -76,7 +77,7 @@ function PreviewCanvas() {
7677 const renderTree = editor . renderer . getRenderTree ( ) ;
7778
7879 const render = useCallback ( ( ) => {
79- if ( ref . current && renderTree && ! renderingRef . current ) {
80+ if ( canvasRef . current && renderTree && ! renderingRef . current ) {
8081 const time = editor . playback . getCurrentTime ( ) ;
8182 const lastFrameTime = getLastFrameTime ( {
8283 duration : renderTree . duration ,
@@ -96,7 +97,7 @@ function PreviewCanvas() {
9697 . renderToCanvas ( {
9798 node : renderTree ,
9899 time : renderTime ,
99- targetCanvas : ref . current ,
100+ targetCanvas : canvasRef . current ,
100101 } )
101102 . then ( ( ) => {
102103 renderingRef . current = false ;
@@ -108,17 +109,20 @@ function PreviewCanvas() {
108109 useRafLoop ( render ) ;
109110
110111 return (
111- < canvas
112- ref = { ref }
113- width = { width }
114- height = { height }
115- className = "block max-h-full max-w-full border"
116- style = { {
117- background :
118- activeProject . settings . background . type === "blur"
119- ? "transparent"
120- : activeProject ?. settings . background . color ,
121- } }
122- />
112+ < div className = "relative" >
113+ < canvas
114+ ref = { canvasRef }
115+ width = { width }
116+ height = { height }
117+ className = "block max-h-full max-w-full border"
118+ style = { {
119+ background :
120+ activeProject . settings . background . type === "blur"
121+ ? "transparent"
122+ : activeProject ?. settings . background . color ,
123+ } }
124+ />
125+ < PreviewInteractionOverlay canvasRef = { canvasRef } />
126+ </ div >
123127 ) ;
124128}
0 commit comments