博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

canvas双缓冲技术

Posted on 2012-12-26 13:56  蓝巧克力  阅读(1068)  评论(0)    收藏  举报

这里的canvas其实已经不仅仅用于HTML5了,在安卓上也有双缓冲技术,所以这里标题只起canvas的双缓冲技术。

双缓冲技术,其实针对的是在画布画图时多次刷新的优化。

比如:

1.画一个圆

2.画一个方块

3.画一个三角

这样每画一次都会刷新画布。

双缓冲技术说的是,在画到可见画布之前先在一块不可见的画布上画上,然后一次性画到可见画布上。

如果用双缓冲技术就会先把上面的圆,方块,和三角先分别画到一块不可见画布上,最后一次性画到可见画布上,避免可见画布的多次刷新。

 

其实在HTML5里,不用自己去实现一套双缓冲技术了,看如下代码:

function a(){ 
  for (var i=0;i<10;i++){ 
    // 在canvas上画一些东西 
  } 
} 

当执行函数a时, 虽然对canvas执行了10次的绘图操作,但是并不会刷新和渲染可见画布,而只有当函数执行完成后 才会一次性的刷新并渲染出canvas上的东西.
(当然 如果你使用了setTimeout那就另当别论了) [REF]

 

安卓版双缓冲技术 [Android 的 SurfaceView 双缓冲应用]