diff options
Diffstat (limited to 'core/src/fxge/agg/agg23/agg_renderer_scanline.h')
-rw-r--r-- | core/src/fxge/agg/agg23/agg_renderer_scanline.h | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/core/src/fxge/agg/agg23/agg_renderer_scanline.h b/core/src/fxge/agg/agg23/agg_renderer_scanline.h deleted file mode 100644 index 62d104f7f2..0000000000 --- a/core/src/fxge/agg/agg23/agg_renderer_scanline.h +++ /dev/null @@ -1,93 +0,0 @@ - -//---------------------------------------------------------------------------- -// 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_RENDERER_SCANLINE_INCLUDED -#define AGG_RENDERER_SCANLINE_INCLUDED -#include "agg_basics.h" -#include "agg_renderer_base.h" -#include "agg_render_scanlines.h" -namespace agg -{ -template<class BaseRenderer, class SpanGenerator> class renderer_scanline_aa -{ -public: - typedef BaseRenderer base_ren_type; - typedef SpanGenerator span_gen_type; - renderer_scanline_aa() : m_ren(0), m_span_gen(0) {} - renderer_scanline_aa(base_ren_type& ren, span_gen_type& span_gen) : - m_ren(&ren), - m_span_gen(&span_gen) - {} - void attach(base_ren_type& ren, span_gen_type& span_gen) - { - m_ren = &ren; - m_span_gen = &span_gen; - } - void prepare(unsigned max_span_len) - { - m_span_gen->prepare(max_span_len); - } - template<class Scanline> void render(const Scanline& sl) - { - int y = sl.y(); - m_ren->first_clip_box(); - do { - int xmin = m_ren->xmin(); - int xmax = m_ren->xmax(); - if(y >= m_ren->ymin() && y <= m_ren->ymax()) { - unsigned num_spans = sl.num_spans(); - typename Scanline::const_iterator span = sl.begin(); - for(;;) { - int x = span->x; - int len = span->len; - bool solid = false; - const typename Scanline::cover_type* covers = span->covers; - if(len < 0) { - solid = true; - len = -len; - } - if(x < xmin) { - len -= xmin - x; - if(!solid) { - covers += xmin - x; - } - x = xmin; - } - if(len > 0) { - if(x + len > xmax) { - len = xmax - x + 1; - } - if(len > 0) { - m_ren->blend_color_hspan_no_clip( - x, y, len, - m_span_gen->generate(x, y, len), - solid ? 0 : covers, - *covers); - } - } - if(--num_spans == 0) { - break; - } - ++span; - } - } - } while(m_ren->next_clip_box()); - } -private: - base_ren_type* m_ren; - SpanGenerator* m_span_gen; -}; -} -#endif |