基礎(chǔ)渲染器(Base Renderer)是掃描線渲染器的基礎(chǔ),可以說(shuō),正常情況下,你繪畫任何圖形、做任何事,都需要通過(guò)它。而基礎(chǔ)渲染器需要你以模版的形式提供像素格式的信息,他將會(huì)通過(guò)像素格式混合器來(lái)實(shí)現(xiàn)渲染。其實(shí),基礎(chǔ)渲染器比像素格式混合器多了剪裁盒的功能,其他混合、拷貝什么的和像素格式混合器是相似的,這里就不列出來(lái)了。
矩形類
AGG封裝了一個(gè)專門表示矩形的模板類rect_base,方便矩形的操作。下面用rect_i說(shuō)明一下。
頭文件
#include "agg_basics.h"
類型定義
typedef rect_base<int> rect_i;
基本成員函數(shù)
- rect_i(x1, y1, x2, y2)
構(gòu)造函數(shù),給出最小和最大坐標(biāo); - normalize()
修正x1>x2或y1>y2的不合法矩形; - clip(rect_i& r)
取當(dāng)前矩形與r相交的區(qū)域矩形作為當(dāng)前矩形; - is_valid()
檢查矩形是否合法; - hit_test(int x, int y)
檢查(x, y)是否在矩形內(nèi);
基礎(chǔ)渲染器
頭文件
#include "agg_renderer_base"
類型定義
template<class PixelFormat> class renderer_base
基本成員函數(shù)
- renderer_base(PixelFormat)
構(gòu)造函數(shù),提供像素格式; - ren()
返回像素格式對(duì)象; - clip_box(x1,y1,x2,y2)
clip_box_naked(x1,y1,x2,y2)
設(shè)置當(dāng)前剪裁盒為x1,y1,x2,y2圍成的剪裁盒,前者檢查剪裁盒是否合法,后者不檢查。 - reset_clipping(bool visibility)
重置剪裁盒,visibility決定剪裁盒是鋪滿窗口(可視)還是0(不可視); - clip_box()
xmin()
ymin()
xmax()
ymax()
返回當(dāng)前剪裁盒矩形、以及縱橫坐標(biāo); - copy_from()
blend_from()
可以比較方便地、以矩形方式拷貝和混合緩存里的圖像了;