Scanline Renderer
头文件
#include<agg_renderer_scanline.h>
类型
template<classBaseRenderer> class renderer_scanline_aa_solid;//实色AA渲染
template<classBaseRenderer> class
renderer_scanline_bin_solid;//实色原始渲染
AA是什么??实色是什么??原始是什么??
template<classBaseRenderer, class SpanAllocator, class SpanGenerator> classrenderer_scanline_aa;//自定义AA渲染
template<classBaseRenderer, classs SpanAllocator, class SpanGenerator> classrenderer_scanline_bin;//自定义原始渲染
以及自己写的实现了void prepare()和template<class Scanlien> void render(const Scanline& s1)方法的类。
扪心自问:我们应该怎么实现自己的渲染,传递的参数为何??
另外,头文件agg_renderer_scanline.h中的render_scanlines函数非常重要,她是AGG显示流程的实现。
voidrender_scanlines(Rasterizer& ras, Scanline& s1, Renderer& ren);
从Rasterizer生成逐行的Scanline,然后交给Scanline Renderer渲染。
agg::rasterizer_scanline_aa<>ras; //存在
但是并没有agg::rasterizer_scanline_bin<>
代码如下:
agg::ellipse ell(300,300,240,240);
ell.approximation_scale(0.0025);//正五边形
agg::conv_stroke<agg::ellipse>stroke2(ell);
//agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(255,0,0));
agg::render_scanlines_bin_solid(ras,sl,renb,agg::rgba8(255,0,0));
ras.reset();