reactjs 在已装载/未装载的组件之间重用WebGL上下文

thtygnil  于 2023-05-06  发布在  React
关注(0)|答案(1)|浏览(118)

我有两个带有<canvas />的组件,我想使用相同的WebGL上下文,在卸载这些组件后不会消失。
一个分量是<GameCanvas />,另一个是<PlayerCanvas />。其中一个被挂载,另一个被挂载,我想使用canvas.getContext("webgl2")中的相同上下文,一旦其中一个被卸载,然后再次挂载。
这可以用某种分离的WebGL上下文来完成吗?

oo7oh9g9

oo7oh9g91#

不幸的是,WebGL上下文被附加到一个且仅一个画布。如果您有两个不同的画布,则需要创建两个WebGLRenderingContext示例。

function MyComp() {
  const handleMount = (canvas: HTMLCanvasElement | null) => {
    if (!canvas) return

    const gl = canvas.getContext("webgl")
    ...
  }
  return <canvas ref={handleMount}></canvas>
}

相关问题