事件处理程序中的 webGL 绘制似乎清除了画布
webGL draw in event handler seems to clear the canvas
这是 webglfundamentals.com 中一个非常轻微的修改介绍性示例。
http://codepen.io/anon/pen/mVYrZd
在画布上鼠标向下以绘制一个新矩形。先前绘制的矩形将被清除。为什么?for 循环和事件处理程序调用完全相同的函数。
相关代码:
// Draw 50 random rectangles in random colors.
// They draw on top of each other, as expected.
for ( var i = 0; i < 50; i += 1 ) {
drawARandomRectangle( gl );
}
// Draw one rectangle on the canvas in response to a canvas mousedown.
// The buffer seems to be cleared, only a single new rectangle shows.
canvas.addEventListener("mousedown", function( e ){
drawARandomRectangle( gl );
});
我已经发现,使用 preserveDrawingBuffer
初始化上下文会导致鼠标向下矩形绘制在现有矩形的顶部:
var gl = canvas.getContext( "webgl", {
preserveDrawingBuffer: true
} );
但我也读到preserveDrawingBuffer
的性能很差,它不能很好地解释为什么循环调用和鼠标按下调用的呈现方式不同。
使用 preserveDrawingBuffer: true
var gl = canvas.getContext( "webgl", { antialias: false, preserveDrawingBuffer: true} )
详细信息在这里 鼠标点击后 WebGL 绘图失败
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 单击jquery清除输入值
- 有没有一个javascript图形绘制库可以进行气球树布局
- 使用相同的数据集绘制各种符号
- 多重绘制图像后画布清除
- 可以'清除Rect后,不要在画布上绘制图像
- Javascript-如何清除最后绘制的矩形,以便在'拖动'以创建矩形
- 如何在HMTL5画布上绘制矩形时清除轨迹
- 事件处理程序中的 webGL 绘制似乎清除了画布
- 画布绘制 - 在不清除旧状态的情况下更改旋转轴
- clearRect在绘制垂直线时不清除画布
- 使用Canvas清除并重新绘制折线图上的数据
- 重新绘制图像时何时清除画布
- 清除用谷歌图表Chart.draw()方法绘制的Divs
- 绘制图形时清除画布的问题
- 如何移动一个矩形与箭头键,同时清除画布之间的每次重新绘制
- 在HTML5画布上绘制条形图,然后清除它以重新绘制是行不通的
- 如何从画布中清除/删除绘制的图像
- 如何在不刷新页面的情况下清除传单绘制工具创建的先前图层?