基础渲染器(Base Renderer)是扫描线渲染器的基础,可以说,正常情况下,你绘画任何图形、做任何事,都需要通过它。而基础渲染器需要你以模版的形式提供像素格式的信息,他将会通过像素格式混合器来实现渲染。其实,基础渲染器比像素格式混合器多了剪裁盒的功能,其他混合、拷贝什么的和像素格式混合器是相似的,这里就不列出来了。
矩形类
AGG封装了一个专门表示矩形的模板类rect_base,方便矩形的操作。下面用rect_i说明一下。
头文件
#include "agg_basics.h"
类型定义
typedef rect_base<int> rect_i;
基本成员函数
- rect_i(x1, y1, x2, y2)
构造函数,给出最小和最大坐标; - normalize()
修正x1>x2或y1>y2的不合法矩形; - clip(rect_i& r)
取当前矩形与r相交的区域矩形作为当前矩形; - is_valid()
检查矩形是否合法; - hit_test(int x, int y)
检查(x, y)是否在矩形内;
基础渲染器
头文件
#include "agg_renderer_base"
类型定义
template<class PixelFormat> class renderer_base
基本成员函数
- renderer_base(PixelFormat)
构造函数,提供像素格式; - ren()
返回像素格式对象; - clip_box(x1,y1,x2,y2)
clip_box_naked(x1,y1,x2,y2)
设置当前剪裁盒为x1,y1,x2,y2围成的剪裁盒,前者检查剪裁盒是否合法,后者不检查。 - reset_clipping(bool visibility)
重置剪裁盒,visibility决定剪裁盒是铺满窗口(可视)还是0(不可视); - clip_box()
xmin()
ymin()
xmax()
ymax()
返回当前剪裁盒矩形、以及纵横坐标; - copy_from()
blend_from()
可以比较方便地、以矩形方式拷贝和混合缓存里的图像了;