如何清除WebGL渲染队列?

时间:2016-03-15 14:23:10

标签: javascript html5 canvas webgl render

我目前正在开发一个不断在canvas元素中将视频绘制到WebGL的应用程序。应用程序的一个要求是,在帧停止发送到渲染后,画布会立即隐藏display: none;。如果我们决定向渲染器发送更多帧,则会使用display: block;将画布带回视图。

我的问题是,在隐藏画布时,WebGL似乎没有完成渲染旧框架,导致在画布重新出现时看到旧框架正在赶上。

到目前为止,我唯一可行的发现是使用gl.clear,如下所示。

var gl = this.contextGL;
gl.clearColor(0.0, 0.0, 0.0, 1.0);
gl.clear(gl.COLOR_BUFFER_BIT);

虽然这确实清除了框架,但它仍然只在绘制旧框架后执行此操作,然后是新框架。

有没有办法清除排队的旧帧?如果没有,有没有办法强制webGL在视野外渲染?

0 个答案:

没有答案