You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.8 KiB
51 lines
1.8 KiB
|
|
//----------------------------------------------------------------------------
|
|
// 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
|