1 2//---------------------------------------------------------------------------- 3// Anti-Grain Geometry - Version 2.3 4// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com) 5// 6// Permission to copy, use, modify, sell and distribute this software 7// is granted provided this copyright notice appears in all copies. 8// This software is provided "as is" without express or implied 9// warranty, and with no claim as to its suitability for any purpose. 10// 11//---------------------------------------------------------------------------- 12// Contact: mcseem@antigrain.com 13// mcseemagg@yahoo.com 14// http://www.antigrain.com 15//---------------------------------------------------------------------------- 16#ifndef AGG_RENDER_SCANLINES_INCLUDED 17#define AGG_RENDER_SCANLINES_INCLUDED 18#include "agg_basics.h" 19namespace agg 20{ 21template<class Rasterizer, class Scanline, class Renderer> 22void render_scanlines(Rasterizer& ras, Scanline& sl, Renderer& ren, bool no_smooth) 23{ 24 if(ras.rewind_scanlines()) { 25 sl.reset(ras.min_x(), ras.max_x()); 26 ren.prepare(unsigned(ras.max_x() - ras.min_x() + 2)); 27 while(ras.sweep_scanline(sl, no_smooth)) { 28 ren.render(sl); 29 } 30 } 31} 32template<class Rasterizer, class Scanline, class Renderer, 33 class VertexSource, class ColorStorage, class PathId> 34void render_all_paths(Rasterizer& ras, 35 Scanline& sl, 36 Renderer& r, 37 VertexSource& vs, 38 const ColorStorage& as, 39 const PathId& path_id, 40 unsigned num_paths) 41{ 42 for(unsigned i = 0; i < num_paths; i++) { 43 ras.reset(); 44 ras.add_path(vs, path_id[i]); 45 r.color(as[i]); 46 render_scanlines(ras, sl, r); 47 } 48} 49} 50#endif 51