温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-08-20 16:00:22 来源:网络 阅读:725 作者:fengyuzaitu 栏目:系统运维

介绍

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还是LinuxAPI所用的图像存储格式与Rendering Buffer都是兼容的)。

1.1 PPM介绍

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

2应用

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

版本更新

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

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


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI