summaryrefslogtreecommitdiff
path: root/agg/inc/agg_renderer_scanline.h
diff options
context:
space:
mode:
Diffstat (limited to 'agg/inc/agg_renderer_scanline.h')
-rwxr-xr-xagg/inc/agg_renderer_scanline.h450
1 files changed, 0 insertions, 450 deletions
diff --git a/agg/inc/agg_renderer_scanline.h b/agg/inc/agg_renderer_scanline.h
deleted file mode 100755
index cc33942a3770..000000000000
--- a/agg/inc/agg_renderer_scanline.h
+++ /dev/null
@@ -1,450 +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
-{
-
- //====================================================renderer_scanline_aa
- template<class BaseRenderer, class SpanGenerator> class renderer_scanline_aa
- {
- public:
- typedef BaseRenderer base_ren_type;
-
- //--------------------------------------------------------------------
- renderer_scanline_aa(base_ren_type& ren, SpanGenerator& 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();
- do
- {
- 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);
- }
- }
- ++span;
- }
- while(--num_spans);
- }
- }
- while(m_ren->next_clip_box());
- }
-
- private:
- base_ren_type* m_ren;
- SpanGenerator* m_span_gen;
- };
-
-
-
-
- //==============================================renderer_scanline_aa_opaque
- template<class BaseRenderer, class SpanGenerator> class renderer_scanline_aa_opaque
- {
- public:
- typedef BaseRenderer base_ren_type;
-
- //--------------------------------------------------------------------
- renderer_scanline_aa_opaque(base_ren_type& ren, SpanGenerator& 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();
- do
- {
- 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_opaque_color_hspan_no_clip(
- x, y, len,
- m_span_gen->generate(x, y, len),
- solid ? 0 : covers,
- *covers);
- }
- }
- ++span;
- }
- while(--num_spans);
- }
- }
- while(m_ren->next_clip_box());
- }
-
- private:
- base_ren_type* m_ren;
- SpanGenerator* m_span_gen;
- };
-
-
-
- //==============================================renderer_scanline_aa_solid
- template<class BaseRenderer> class renderer_scanline_aa_solid
- {
- public:
- typedef BaseRenderer base_ren_type;
- typedef typename base_ren_type::color_type color_type;
-
- //--------------------------------------------------------------------
- renderer_scanline_aa_solid(base_ren_type& ren) :
- m_ren(&ren)
- {
- }
-
- //--------------------------------------------------------------------
- void color(const color_type& c) { m_color = c; }
- const color_type& color() const { return m_color; }
-
- //--------------------------------------------------------------------
- void prepare(unsigned) {}
-
- //--------------------------------------------------------------------
- template<class Scanline> void render(const Scanline& sl)
- {
- int y = sl.y();
- unsigned num_spans = sl.num_spans();
- typename Scanline::const_iterator span = sl.begin();
-
- do
- {
- int x = span->x;
- if(span->len > 0)
- {
- m_ren->blend_solid_hspan(x, y, (unsigned)span->len,
- m_color,
- span->covers);
- }
- else
- {
- m_ren->blend_hline(x, y, (unsigned)(x - span->len - 1),
- m_color,
- *(span->covers));
- }
- ++span;
- }
- while(--num_spans);
- }
-
- private:
- base_ren_type* m_ren;
- color_type m_color;
- };
-
-
-
-
-
-
-
- //===================================================renderer_scanline_bin
- template<class BaseRenderer, class SpanGenerator> class renderer_scanline_bin
- {
- public:
- typedef BaseRenderer base_ren_type;
-
- //--------------------------------------------------------------------
- renderer_scanline_bin(base_ren_type& ren, SpanGenerator& 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();
- do
- {
- int x = span->x;
- int len = span->len;
-
- if(len < 0) len = -len;
- if(x < xmin)
- {
- len -= 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),
- 0);
- }
- }
- ++span;
- }
- while(--num_spans);
- }
- }
- while(m_ren->next_clip_box());
- }
-
- private:
- base_ren_type* m_ren;
- SpanGenerator* m_span_gen;
- };
-
-
-
- //===============================================renderer_scanline_bin_opaque
- template<class BaseRenderer, class SpanGenerator> class renderer_scanline_bin_opaque
- {
- public:
- typedef BaseRenderer base_ren_type;
-
- //--------------------------------------------------------------------
- renderer_scanline_bin_opaque(base_ren_type& ren, SpanGenerator& 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();
- do
- {
- int x = span->x;
- int len = span->len;
-
- if(len < 0) len = -len;
- if(x < xmin)
- {
- len -= xmin - x;
- x = xmin;
- }
- if(len > 0)
- {
- if(x + len > xmax)
- {
- len = xmax - x + 1;
- }
- if(len > 0)
- {
- m_ren->blend_opaque_color_hspan_no_clip(
- x, y, len,
- m_span_gen->generate(x, y, len),
- 0);
- }
- }
- ++span;
- }
- while(--num_spans);
- }
- }
- while(m_ren->next_clip_box());
- }
-
- private:
- base_ren_type* m_ren;
- SpanGenerator* m_span_gen;
- };
-
-
-
-
- //=============================================renderer_scanline_bin_solid
- template<class BaseRenderer> class renderer_scanline_bin_solid
- {
- public:
- typedef BaseRenderer base_ren_type;
- typedef typename base_ren_type::color_type color_type;
-
- //--------------------------------------------------------------------
- renderer_scanline_bin_solid(base_ren_type& ren) :
- m_ren(&ren)
- {
- }
-
- //--------------------------------------------------------------------
- void color(const color_type& c) { m_color = c; }
- const color_type& color() const { return m_color; }
-
- //--------------------------------------------------------------------
- void prepare(unsigned) {}
-
- //--------------------------------------------------------------------
- template<class Scanline> void render(const Scanline& sl)
- {
- unsigned num_spans = sl.num_spans();
- typename Scanline::const_iterator span = sl.begin();
- do
- {
- m_ren->blend_hline(span->x,
- sl.y(),
- span->x - 1 + ((span->len < 0) ?
- -span->len :
- span->len),
- m_color,
- cover_full);
- ++span;
- }
- while(--num_spans);
- }
-
- private:
- base_ren_type* m_ren;
- color_type m_color;
- };
-
-}
-
-#endif