summaryrefslogtreecommitdiff
path: root/agg/inc/agg_gamma_lut.h
diff options
context:
space:
mode:
Diffstat (limited to 'agg/inc/agg_gamma_lut.h')
-rwxr-xr-xagg/inc/agg_gamma_lut.h114
1 files changed, 0 insertions, 114 deletions
diff --git a/agg/inc/agg_gamma_lut.h b/agg/inc/agg_gamma_lut.h
deleted file mode 100755
index e6e9ea3..0000000
--- a/agg/inc/agg_gamma_lut.h
+++ /dev/null
@@ -1,114 +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_GAMMA_LUT_INCLUDED
-#define AGG_GAMMA_LUT_INCLUDED
-
-#include <math.h>
-#include "agg_basics.h"
-
-namespace agg
-{
- template<class LoResT=int8u,
- class HiResT=int8u,
- unsigned GammaShift=8,
- unsigned HiResShift=8> class gamma_lut
- {
- public:
- enum
- {
- gamma_shift = GammaShift,
- gamma_size = 1 << gamma_shift,
- gamma_mask = gamma_size - 1
- };
-
- enum
- {
- hi_res_shift = HiResShift,
- hi_res_size = 1 << hi_res_shift,
- hi_res_mask = hi_res_size - 1
- };
-
- ~gamma_lut()
- {
- delete [] m_inv_gamma;
- delete [] m_dir_gamma;
- }
-
- gamma_lut() :
- m_gamma(1.0),
- m_dir_gamma(new HiResT[gamma_size]),
- m_inv_gamma(new LoResT[hi_res_size])
- {
- unsigned i;
- for(i = 0; i < gamma_size; i++)
- {
- m_dir_gamma[i] = HiResT(i << (hi_res_shift - gamma_shift));
- }
-
- for(i = 0; i < hi_res_size; i++)
- {
- m_inv_gamma[i] = LoResT(i >> (hi_res_shift - gamma_shift));
- }
- }
-
- gamma_lut(double g) :
- m_gamma(1.0),
- m_dir_gamma(new HiResT[gamma_size]),
- m_inv_gamma(new LoResT[hi_res_size])
- {
- gamma(g);
- }
-
- void gamma(double g)
- {
- m_gamma = g;
-
- unsigned i;
- for(i = 0; i < gamma_size; i++)
- {
- m_dir_gamma[i] = (HiResT)(pow(double(i) / double(gamma_mask), m_gamma) * double(hi_res_mask) + 0.5);
- }
-
- double inv_g = 1.0 / g;
- for(i = 0; i < hi_res_size; i++)
- {
- m_inv_gamma[i] = (LoResT)(pow(double(i) / double(hi_res_mask), inv_g) * double(gamma_mask) + 0.5);
- }
- }
-
- double gamma() const
- {
- return m_gamma;
- }
-
- HiResT dir(LoResT v) const
- {
- return m_dir_gamma[unsigned(v)];
- }
-
- LoResT inv(HiResT v) const
- {
- return m_inv_gamma[unsigned(v)];
- }
-
- private:
- double m_gamma;
- HiResT* m_dir_gamma;
- LoResT* m_inv_gamma;
- };
-}
-
-#endif