| //---------------------------------------------------------------------------- | |
| // 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 pdfium | |
| { | |
| 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); | |
| } | |
| } | |
| } | |
| } // namespace pdfium | |
| #endif |