summaryrefslogtreecommitdiff
path: root/agg/inc/agg_pixfmt_amask_adaptor.h
diff options
context:
space:
mode:
Diffstat (limited to 'agg/inc/agg_pixfmt_amask_adaptor.h')
-rwxr-xr-xagg/inc/agg_pixfmt_amask_adaptor.h265
1 files changed, 0 insertions, 265 deletions
diff --git a/agg/inc/agg_pixfmt_amask_adaptor.h b/agg/inc/agg_pixfmt_amask_adaptor.h
deleted file mode 100755
index 7f3d5899b1c6..000000000000
--- a/agg/inc/agg_pixfmt_amask_adaptor.h
+++ /dev/null
@@ -1,265 +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_PIXFMT_AMASK_ADAPTOR_INCLUDED
-#define AGG_PIXFMT_AMASK_ADAPTOR_INCLUDED
-
-
-#include <string.h>
-#include "agg_rendering_buffer.h"
-
-
-namespace agg
-{
- //==================================================pixfmt_amask_adaptor
- template<class PixFmt, class AlphaMask> class pixfmt_amask_adaptor
- {
- public:
- typedef PixFmt pixfmt_type;
- typedef typename pixfmt_type::color_type color_type;
- typedef AlphaMask amask_type;
- typedef typename amask_type::cover_type cover_type;
-
- private:
- enum { span_extra_tail = 256 };
-
- void realloc_span(unsigned len)
- {
- if(len > m_max_len)
- {
- delete [] m_span;
- m_span = new cover_type[m_max_len = len + span_extra_tail];
- }
- }
-
- void init_span(unsigned len)
- {
- realloc_span(len);
-
- // ATTN! May work incorrectly if cover_type is more that one byte
- memset(m_span, amask_type::cover_full, len * sizeof(cover_type));
- }
-
- void init_span(unsigned len, const cover_type* covers)
- {
- realloc_span(len);
- memcpy(m_span, covers, len * sizeof(cover_type));
- }
-
-
- public:
- ~pixfmt_amask_adaptor() { delete [] m_span; }
-
- pixfmt_amask_adaptor(pixfmt_type& pixf, const amask_type& mask) :
- m_pixf(&pixf), m_mask(&mask), m_span(0), m_max_len(0)
- {}
-
- void attach_pixfmt(pixfmt_type& pixf) { m_pixf = &pixf; }
- void attach_alpha_mask(const amask_type& mask) { m_mask = &mask; }
-
- //--------------------------------------------------------------------
- unsigned width() const { return m_pixf->width(); }
- unsigned height() const { return m_pixf->height(); }
-
- //--------------------------------------------------------------------
- color_type pixel(int x, int y)
- {
- return m_pixf->pixel(x, y);
- }
-
- //--------------------------------------------------------------------
- void copy_pixel(int x, int y, const color_type& c)
- {
- m_pixf->blend_pixel(x, y, c, m_mask->pixel(x, y));
- }
-
- //--------------------------------------------------------------------
- void blend_pixel(int x, int y, const color_type& c, cover_type cover)
- {
- m_pixf->blend_pixel(x, y, c, m_mask->combine_pixel(x, y, cover));
- }
-
- //--------------------------------------------------------------------
- void copy_hline(int x, int y,
- unsigned len,
- const color_type& c)
- {
- realloc_span(len);
- m_mask->fill_hspan(x, y, m_span, len);
- m_pixf->blend_solid_hspan(x, y, len, c, m_span);
- }
-
- //--------------------------------------------------------------------
- void blend_hline(int x, int y,
- unsigned len,
- const color_type& c,
- cover_type cover)
- {
- init_span(len);
- m_mask->combine_hspan(x, y, m_span, len);
- m_pixf->blend_solid_hspan(x, y, len, c, m_span);
- }
-
- //--------------------------------------------------------------------
- void copy_vline(int x, int y,
- unsigned len,
- const color_type& c)
- {
- realloc_span(len);
- m_mask->fill_vspan(x, y, m_span, len);
- m_pixf->blend_solid_vspan(x, y, len, c, m_span);
- }
-
- //--------------------------------------------------------------------
- void blend_vline(int x, int y,
- unsigned len,
- const color_type& c,
- cover_type cover)
- {
- init_span(len);
- m_mask->combine_vspan(x, y, m_span, len);
- m_pixf->blend_solid_vspan(x, y, len, c, m_span);
- }
-
- //--------------------------------------------------------------------
- void copy_from(const rendering_buffer& from,
- int xdst, int ydst,
- int xsrc, int ysrc,
- unsigned len)
- {
- m_pixf->copy_from(from, xdst, ydst, xsrc, ysrc, len);
- }
-
-
- //--------------------------------------------------------------------
- void blend_solid_hspan(int x, int y,
- unsigned len,
- const color_type& c,
- const cover_type* covers)
- {
- init_span(len, covers);
- m_mask->combine_hspan(x, y, m_span, len);
- m_pixf->blend_solid_hspan(x, y, len, c, m_span);
- }
-
-
- //--------------------------------------------------------------------
- void blend_solid_vspan(int x, int y,
- unsigned len,
- const color_type& c,
- const cover_type* covers)
- {
- init_span(len, covers);
- m_mask->combine_vspan(x, y, m_span, len);
- m_pixf->blend_solid_vspan(x, y, len, c, m_span);
- }
-
-
- //--------------------------------------------------------------------
- void blend_color_hspan(int x, int y,
- unsigned len,
- const color_type* colors,
- const cover_type* covers,
- cover_type cover = cover_full)
- {
- if(covers)
- {
- init_span(len, covers);
- m_mask->combine_hspan(x, y, m_span, len);
- }
- else
- {
- realloc_span(len);
- m_mask->fill_hspan(x, y, m_span, len);
- }
- m_pixf->blend_color_hspan(x, y, len, colors, m_span, cover);
- }
-
-
- //--------------------------------------------------------------------
- void blend_color_vspan(int x, int y,
- unsigned len,
- const color_type* colors,
- const cover_type* covers,
- cover_type cover = cover_full)
- {
- if(covers)
- {
- init_span(len, covers);
- m_mask->combine_vspan(x, y, m_span, len);
- }
- else
- {
- realloc_span(len);
- m_mask->fill_vspan(x, y, m_span, len);
- }
- m_pixf->blend_color_vspan(x, y, len, colors, m_span, cover);
- }
-
-
- //--------------------------------------------------------------------
- void blend_opaque_color_hspan(int x, int y,
- unsigned len,
- const color_type* colors,
- const cover_type* covers,
- cover_type cover = cover_full)
- {
- if(covers)
- {
- init_span(len, covers);
- m_mask->combine_hspan(x, y, m_span, len);
- }
- else
- {
- realloc_span(len);
- m_mask->fill_hspan(x, y, m_span, len);
- }
- m_pixf->blend_opaque_color_hspan(x, y, len, colors, m_span, cover);
- }
-
-
- //--------------------------------------------------------------------
- void blend_opaque_color_vspan(int x, int y,
- unsigned len,
- const color_type* colors,
- const cover_type* covers,
- cover_type cover = cover_full)
- {
- if(covers)
- {
- init_span(len, covers);
- m_mask->combine_vspan(x, y, m_span, len);
- }
- else
- {
- realloc_span(len);
- m_mask->fill_vspan(x, y, m_span, len);
- }
- m_pixf->blend_opaque_color_vspan(x, y, len, colors, m_span, cover);
- }
-
-
- private:
- pixfmt_type* m_pixf;
- const amask_type* m_mask;
-
- cover_type* m_span;
- unsigned m_max_len;
- };
-
-}
-
-#endif
-