C++/GDI+ 学习笔记(四)——实用技巧——双缓冲(Double Buffer)

原创 2007年10月12日 09:44:00

  双缓冲在GDI+里可以有效的提高描画效率。改善显示的质量。

  下面的代码是一个最简单的双缓冲的模板。可以根据需要,做简单的修改即可。

      Bitmap CacheImage( [Width], [Height] );
      Graphics CacheGraphics( &CacheImage );
 
      // CacheImage进行描画
      // ......
     
      // 获得窗口的Graphics对象
      Graphics Graphic( [ Window’s HDC ] );
 
// 将描画好的CacheImage画到窗口上
      Graphic.DrawImage( &CacheImage, [Left], [Top] );
 

根据一些简单的测试,双缓冲可以有效的改善图像的处理速度。不过最明显的效果还是降低画面的闪烁程度。 

另外还可以使用CachedBitmap类来做双缓冲。Graphic也有专门的DrawCachedBitmap方法来描画CachedBitmap。但没有上述的方法灵活。

双缓冲(Double Buffer)原理和使用

一、双缓冲作用            双缓冲甚至是多缓冲,在许多情况下都很有用。一般需要使用双缓冲区的地方都是由于“生产者”和“消费者”供需不一致所造成的。这样的情况在很多地方后可能会发生,使用多缓冲...
  • acs713
  • acs713
  • 2013年11月16日 18:50
  • 27080

GDI+ 双缓冲实现和局部刷新技术

早前曾为此问题在CSDN发帖求助(GDI+ 如何使用双缓冲绘制图像),得到了一个GDI+下较可行的方法,虽然绘制效果比直接绘制要好一些,不过还不能跟GDI的双缓冲方式比肩。 现在,我...
  • htt9931
  • htt9931
  • 2014年06月05日 16:34
  • 6496

双缓冲(Double Buffer)原理和使用

一、双缓冲作用            双缓冲甚至是多缓冲,在许多情况下都很有用。一般需要使用双缓冲区的地方都是由于“生产者”和“消费者”供需不一致所造成的。这样的情况在很多地方后可能会发生,使用多缓冲...
  • xiaohui_hubei
  • xiaohui_hubei
  • 2013年11月14日 20:21
  • 13282

C++/GDI+ 学习笔记(四)——实用技巧——调色板(ColorPalette)

在使用的过程中,遇到了这样的一个情况。维护很久前的一个项目的时候,想把之前的程序作成DLL。里面有一部分是描画一张8位DIB图片的,用的是纯C写的一段代码。可是在使用的时候发现,GDI+中由于使用了A...
  • Mirage520
  • Mirage520
  • 2012年05月10日 11:49
  • 1304

Double-Buffer双缓冲——游戏编程模式(下)

不单单是对图形绘制 这个核心的问题是双缓冲解决了区块被访问时不能被修改的问题。这里有两个通用的情况。我们通过图形绘制的例子已经讲了第一种情况——区块被另外一个线程直接的访问或中断。 这里有另外一个相同...
  • u012289636
  • u012289636
  • 2015年07月14日 15:38
  • 794

C++/GDI+ 学习笔记(一)——安装、配置&使用

使用GDI+很简单。需要做的有一下几个步骤。 1.       安装GDI+ SDK开发包。网上很多地方都有下载。解压到一个地方即可。 2.       设置编译器的包含路径,VC6的设置...
  • Mirage520
  • Mirage520
  • 2012年05月10日 11:48
  • 506

C++/GDI+ 学习笔记(三)——基础

使用GDI+的一些基础知识。对一些常用的类进行了简单的介绍。 TAG: GDIPlus     GDI+ 的主要画刷 SolidBrush 单色画...
  • hireboy
  • hireboy
  • 2013年05月29日 16:20
  • 3035

C++/GDI+ 学习笔记(一)——安装、配置&使用

使用GDI+很简单。需要做的有一下几个步骤。  1. 安装GDI+ SDK开发包。网上很多地方都有下载。解压到一个地方即可。  2. 设置编译器的包含路径,VC6的设置方法是 Tools/Opti...
  • hireboy
  • hireboy
  • 2013年05月29日 16:18
  • 6560

GDI+学习及代码总结之——GDI+双缓冲等问题总结

GDI+双缓冲技术 转载地址:http://cnbeta2004.blog.163.com/blog/static/602313402010119104451537/ 早前曾为此问题在CSDN...
  • harvic880925
  • harvic880925
  • 2013年06月25日 10:46
  • 3932

C++/GDI+ 学习笔记(五)——应用实例——半透明的阴影效果

利用 GDI+可以很容易的描画出逼真的半透明效果的阴影。 void DrawShadow(Graphics &g, GraphicsPath ButtonPath) {     g.SetPag...
  • Mirage520
  • Mirage520
  • 2012年05月10日 11:49
  • 1118
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++/GDI+ 学习笔记(四)——实用技巧——双缓冲(Double Buffer)
举报原因:
原因补充:

(最多只允许输入30个字)