agg::rendering_buffer 渲染緩存

這是一塊保存了圖形的像素點(diǎn)的內(nèi)存,這是一塊即將顯示到界面的圖形。這塊內(nèi)存保存了圖形的像素點(diǎn)的顏色。在這里記錄了每一個(gè)點(diǎn)的顏色。這是AGG與顯示器之間的橋梁,把這塊內(nèi)存看成是一個(gè)二維的空間數(shù)組,就直接映射到顯示器上的,內(nèi)存的每一行的點(diǎn),都對(duì)應(yīng)屏幕上的位置點(diǎn)。我們要顯示AGG圖形實(shí)際上就是識(shí)別這個(gè)內(nèi)存塊并使用系統(tǒng)的API顯示出來。(實(shí)際上不需要做任何的轉(zhuǎn)換工作,因?yàn)闊o論是windows還是Linux,API所用的圖像存儲(chǔ)格式與Rendering Buffer都是兼容的)。?
1.1 PPM介紹我們先從這里開始:在內(nèi)存中開辟一塊存儲(chǔ)區(qū),然后將它的內(nèi)容以最簡(jiǎn)單的光柵格式寫到文件中,也就是PPM(Portable Pixel Map)格式。雖然Windows對(duì)這種格式并沒有原生的支持,但很多圖像瀏覽器和轉(zhuǎn)換器都能使用這種格式,比如IrfanView。所有AGG的控制臺(tái)例子都使用了P6 256格式,也就是RGB,每個(gè)字節(jié)代碼一個(gè)顏色?,F(xiàn)在假設(shè)我們將在下圖所示的RGB-buffer內(nèi)存區(qū)中工作: ????????????
2應(yīng)用她提供了提供了訪問渲染緩存中的每一行每一個(gè)字節(jié)顏色的接口。只要我們知道我們顯示圖片的每一點(diǎn)的顏色值,我們幾乎不需要任何其他的畫線,繪制圖形的類。?
3版本更新以前:unsigned char* p = rbuf.row(i);?
現(xiàn)在:unsigned char* p = rbuf.row_ptr(i);?
了解更多網(wǎng)絡(luò)知識(shí)關(guān)注:http://www.vecloud.com/