AGG第九课 agg::rendering_buffer 渲染缓存
系統(tǒng)運維
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
這是一塊保存了圖形的像素點的內(nèi)存,這是一塊即將顯示到界面的圖形。這塊內(nèi)存保存了圖形的像素點的顏色。在這里記錄了每一個點的顏色。這是AGG與顯示器之間的橋梁,把這塊內(nèi)存看成是一個二維的空間數(shù)組,就直接映射到顯示器上的,內(nèi)存的每一行的點,都對應(yīng)屏幕上的位置點。我們要顯示AGG圖形實際上就是識別這個內(nèi)存塊并使用系統(tǒng)的API顯示出來。(實際上不需要做任何的轉(zhuǎn)換工作,因為無論是windows還是Linux,API所用的圖像存儲格式與Rendering Buffer都是兼容的)。
1.1 PPM介紹
我們先從這里開始:在內(nèi)存中開辟一塊存儲區(qū),然后將它的內(nèi)容以最簡單的光柵格式寫到文件中,也就是PPM(Portable Pixel Map)格式。雖然Windows對這種格式并沒有原生的支持,但很多圖像瀏覽器和轉(zhuǎn)換器都能使用這種格式,比如IrfanView(www.irfanview.com)。所有AGG的控制臺例子都使用了P6 256格式,也就是RGB,每個字節(jié)代碼一個顏色。現(xiàn)在假設(shè)我們將在下圖所示的RGB-buffer內(nèi)存區(qū)中工作:
2應(yīng)用
她提供了提供了訪問渲染緩存中的每一行每一個字節(jié)顏色的接口。只要我們知道我們顯示圖片的每一點的顏色值,我們幾乎不需要任何其他的畫線,繪制圖形的類。
3版本更新
以前:unsigned char* p = rbuf.row(i);
現(xiàn)在:unsigned char* p = rbuf.row_ptr(i);
總結(jié)
以上是生活随笔為你收集整理的AGG第九课 agg::rendering_buffer 渲染缓存的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wordpress数据库优化和清理冗余数
- 下一篇: Centos7下用户登录失败N次后锁定用