diff options
author | Tom Sepez <tsepez@chromium.org> | 2015-06-17 10:01:00 -0700 |
---|---|---|
committer | Tom Sepez <tsepez@chromium.org> | 2015-06-17 10:01:00 -0700 |
commit | b7d358b498800e4c240d381fa6f098af17a4d95b (patch) | |
tree | aa0d8677af748caf9881ecd011af2b00af925188 /third_party/agg23/agg_render_scanlines.h | |
parent | 9555022ee550ee97415a86957686cc28716c4dee (diff) | |
download | pdfium-b7d358b498800e4c240d381fa6f098af17a4d95b.tar.xz |
Merge to XFA: Separate agg-authored code from fx-authored code.
Original Review URL: https://codereview.chromium.org/1152743007.
BUG=pdfium:166
R=brucedawson@chromium.org, thestig@chromium.org
TBR=brucedawson@chromium.org, thestig@chromium.org
Review URL: https://codereview.chromium.org/1186423003.
Diffstat (limited to 'third_party/agg23/agg_render_scanlines.h')
-rw-r--r-- | third_party/agg23/agg_render_scanlines.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/third_party/agg23/agg_render_scanlines.h b/third_party/agg23/agg_render_scanlines.h new file mode 100644 index 0000000000..0dfd6d259f --- /dev/null +++ b/third_party/agg23/agg_render_scanlines.h @@ -0,0 +1,50 @@ + +//---------------------------------------------------------------------------- +// 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 |