Skip to content

Commit

Permalink
Added advanced cleaning of the viewer as shown on [Bug]: Too many act…
Browse files Browse the repository at this point in the history
…ive WebGL contexts. Oldest context will be lost. #66

```tsx
useEffect(() => {
        return () => {
            const viewer: Viewer = spherePlayerInstance.current
            if (viewer && viewer.container && viewer.container.parentNode) {
                (viewer.renderer as unknown as { renderer?: { dispose: () => void } })?.renderer?.dispose()
                ;(viewer.renderer as unknown as { renderer?: { forceContextLoss: () => void } })?.renderer?.forceContextLoss()
                viewer.destroy()
            }
        }
    }, [spherePlayerInstance])
```
  • Loading branch information
Elius94 committed Jan 22, 2025
1 parent b8ffac5 commit 1ffcaaf
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions src/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -507,6 +507,17 @@ const ReactPhotoSphereViewer = forwardRef<ViewerAPI, Props>((props, ref): React.
}
}, [sphereElement, options])

useEffect(() => {
return () => {
const viewer: Viewer = spherePlayerInstance.current
if (viewer && viewer.container && viewer.container.parentNode) {
(viewer.renderer as unknown as { renderer?: { dispose: () => void } })?.renderer?.dispose()
;(viewer.renderer as unknown as { renderer?: { forceContextLoss: () => void } })?.renderer?.forceContextLoss()
viewer.destroy()
}
}
}, [spherePlayerInstance])

useEffect(() => {
if (spherePlayerInstance.current && options.src) {
spherePlayerInstance.current.setPanorama(options.src, {})
Expand Down

0 comments on commit 1ffcaaf

Please sign in to comment.