| |
| //---------------------------------------------------------------------------- |
| // 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 |
| { |
| template<class Rasterizer, class Scanline, class Renderer> |
| void render_scanlines(Rasterizer& ras, Scanline& sl, Renderer& ren, bool no_smooth) |
| { |
| 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, no_smooth)) { |
| ren.render(sl); |
| } |
| } |
| } |
| 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& path_id, |
| unsigned num_paths) |
| { |
| for(unsigned i = 0; i < num_paths; i++) { |
| ras.reset(); |
| ras.add_path(vs, path_id[i]); |
| r.color(as[i]); |
| render_scanlines(ras, sl, r); |
| } |
| } |
| } |
| #endif |