renderer_scanline_bin_solid PK agg::renderer_scanline_aa_solid

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();


你可能感兴趣的:(agg)