Skip to content

Commit 6c41c86

Browse files
committed
use ResizeObserver for canvas resize
1 parent f9debb5 commit 6c41c86

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

src/clientSideScene/CameraControls.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,6 @@ export class CameraControls {
272272
this.domElement.addEventListener('wheel', this.onMouseWheel)
273273
this.initTouchControls(this.enableTouchControls)
274274

275-
window.addEventListener('resize', this.onWindowResize)
276275
this.onWindowResize()
277276

278277
this.update()
@@ -396,12 +395,10 @@ export class CameraControls {
396395
onWindowResize = () => {
397396
if (this.camera instanceof PerspectiveCamera) {
398397
this.camera.aspect =
399-
this.engineCommandManager.streamDimensions.width /
400-
this.engineCommandManager.streamDimensions.height
398+
this.domElement.clientWidth / this.domElement.clientHeight
401399
} else if (this.camera instanceof OrthographicCamera) {
402-
const aspect =
403-
this.engineCommandManager.streamDimensions.width /
404-
this.engineCommandManager.streamDimensions.height
400+
const aspect = this.domElement.clientWidth / this.domElement.clientHeight
401+
405402
this.camera.left = -ORTHOGRAPHIC_CAMERA_SIZE * aspect
406403
this.camera.right = ORTHOGRAPHIC_CAMERA_SIZE * aspect
407404
this.camera.top = ORTHOGRAPHIC_CAMERA_SIZE

src/clientSideScene/ClientSideSceneComp.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,19 @@ export const ClientSideScene = ({
131131
}
132132
}, [])
133133

134+
useEffect(() => {
135+
const canvas = canvasRef.current
136+
if (!canvas) return
137+
const observer = new ResizeObserver(() => {
138+
sceneInfra.onWindowResize()
139+
sceneInfra.camControls.onWindowResize()
140+
})
141+
observer.observe(canvas)
142+
return () => {
143+
observer.disconnect()
144+
}
145+
}, [])
146+
134147
let cursor = 'default'
135148
if (state.matches('Sketch')) {
136149
if (

0 commit comments

Comments
 (0)