AGG第九课 agg::rendering_buffer 渲染缓存

  • 来源:网络
  • 更新日期:2020-08-21

摘要:系统运维 1 介绍http://www.360doc.com/content/11/1015/09/992979_156314240.shtmlhttp://www.cppblog.com/Shihira/archive/2012/07/24

系统运维 1 介绍

http://www.360doc.com/content/11/1015/09/992979_156314240.shtml

http://www.cppblog.com/Shihira/archive/2012/07/24/183204.html

http://www.cnblogs.com/liyiwen/archive/2010/06/03/1751094.html

这是一块保存了图形的像素点的内存,这是一块即将显示到界面的图形。这块内存保存了图形的像素点的颜色。在这里记录了每一个点的颜色。这是AGG与显示器之间的桥梁,把这块内存看成是一个二维的空间数组,就直接映射到显示器上的,内存的每一行的点,都对应屏幕上的位置点。我们要显示AGG图形实际上就是识别这个内存块并使用系统的API显示出来。(实际上不需要做任何的转换工作,因为无论是windows还是Linux,API所用的图像存储格式与Rendering Buffer都是兼容的)。

1.1 PPM介绍

我们先从这里开始:在内存中开辟一块存储区,然后将它的内容以最简单的光栅格式写到文件中,也就是PPM(Portable Pixel Map)格式。虽然 Windows 对这种格式并没有原生的支持,但很多图像浏览器和转换器都能使用这种格式,比如 IrfanView(www.irfanview.com)。所有 AGG 的控制台例子都使用了 P6 256 格式,也就是RGB,每个字节代码一个颜色。现在假设我们将在下图所示的 RGB-buffer 内存区中工作:                          

2应用

她提供了提供了访问渲染缓存中的每一行每一个字节颜色的接口。只要我们知道我们显示图片的每一点的颜色值,我们几乎不需要任何其他的画线,绘制图形的类。

3 版本更新

以前:unsigned char* p = rbuf.row(i);

现在:unsigned char* p = rbuf.row_ptr(i);


新网虚拟主机