WebGL清晰()是否可以执行?

时间:2016-05-06 12:06:42

标签: javascript webgl

此JScript / WebGL代码段应为画布黄色。

gl.clearColor(1.0, 1.0, 0.5, 1.0);
gl.clear(gl.COLOR_BUFFER_BIT);

它在FF和Chrome中都是如此。然而IE 11似乎在感觉就像调用clear(),而不仅仅是交换缓冲区(?!)。画布背景很多时候都是白色,导致严重的闪烁。在页面加载时,它根本不会调用clear()。

是否可以强制清除()?如果我认为这是错误的话,我是否理解OpenGL规范?

*虽然创建具有属性{preserveDrawingBuffer:true}的上下文可以缓解问题,但它会降低性能并且无法解决初始页面加载问题......这里是一个片段。



var canvas = document.getElementById("cnv");

var gl = canvas.getContext("webgl") ||
         canvas.getContext("experimental-webgl", { preserveDrawingBuffer: true });

gl.clearColor(1, 1, 0.5, 1);
gl.clear(gl.COLOR_BUFFER_BIT);

function refresh() {
  gl.clearColor(Math.random(), Math.random(), Math.random(), 1);
  gl.clear(gl.COLOR_BUFFER_BIT);
}

var button = document.getElementById("refresh");
button.onclick = refresh;

<canvas id="cnv" width="150" height="50" style="border-style: solid; border-width: 1px;"></canvas>
<br>
<button id="refresh">refresh!</button>
&#13;
&#13;
&#13;

0 个答案:

没有答案