diff options
Diffstat (limited to 'agg/inc/agg_render_scanlines.h')
-rwxr-xr-x | agg/inc/agg_render_scanlines.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/agg/inc/agg_render_scanlines.h b/agg/inc/agg_render_scanlines.h new file mode 100755 index 000000000000..60ddecf5c2d6 --- /dev/null +++ b/agg/inc/agg_render_scanlines.h @@ -0,0 +1,66 @@ +//---------------------------------------------------------------------------- +// Anti-Grain Geometry - Version 2.3 +// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com) +// +// Permission to copy, use, modify, sell and distribute this software +// is granted provided this copyright notice appears in all copies. +// This software is provided "as is" without express or implied +// warranty, and with no claim as to its suitability for any purpose. +// +//---------------------------------------------------------------------------- +// Contact: mcseem@antigrain.com +// mcseemagg@yahoo.com +// http://www.antigrain.com +//---------------------------------------------------------------------------- + +#ifndef AGG_RENDER_SCANLINES_INCLUDED +#define AGG_RENDER_SCANLINES_INCLUDED + +#include "agg_basics.h" + +namespace agg +{ + //========================================================render_scanlines + template<class Rasterizer, class Scanline, class Renderer> + void render_scanlines(Rasterizer& ras, Scanline& sl, Renderer& ren) + { + if(ras.rewind_scanlines()) + { + sl.reset(ras.min_x(), ras.max_x()); + ren.prepare(unsigned(ras.max_x() - ras.min_x() + 2)); + + while(ras.sweep_scanline(sl)) + { + ren.render(sl); + } + } + } + + + //========================================================render_all_paths + template<class Rasterizer, class Scanline, class Renderer, + class VertexSource, class ColorStorage, class PathId> + void render_all_paths(Rasterizer& ras, + Scanline& sl, + Renderer& r, + VertexSource& vs, + const ColorStorage& as, + const PathId& id, + unsigned num_paths) + { + for(unsigned i = 0; i < num_paths; i++) + { + ras.reset(); + ras.add_path(vs, id[i]); + r.color(as[i]); + render_scanlines(ras, sl, r); + } + } + + +} + +#endif + + + |