Home | History | Annotate | Download | only in agg23
      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 (at) antigrain.com
     13 //          mcseemagg (at) 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"
     19 namespace agg
     20 {
     21 template<class Rasterizer, class Scanline, class Renderer>
     22 void 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 }
     32 template<class Rasterizer, class Scanline, class Renderer,
     33          class VertexSource, class ColorStorage, class PathId>
     34 void 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