1 2 //---------------------------------------------------------------------------- 3 // Anti-Grain Geometry - Version 2.3 4 // Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com) 5 // 6 // Permission to copy, use, modify, sell and distribute this software 7 // is granted provided this copyright notice appears in all copies. 8 // This software is provided "as is" without express or implied 9 // warranty, and with no claim as to its suitability for any purpose. 10 // 11 //---------------------------------------------------------------------------- 12 // Contact: mcseem@antigrain.com 13 // mcseemagg@yahoo.com 14 // http://www.antigrain.com 15 //---------------------------------------------------------------------------- 16 // 17 // Adaptation for high precision colors has been sponsored by 18 // Liberty Technology Systems, Inc., visit http://lib-sys.com 19 // 20 // Liberty Technology Systems, Inc. is the provider of 21 // PostScript and PDF technology for software developers. 22 // 23 //---------------------------------------------------------------------------- 24 // 25 // color types gray8, gray16 26 // 27 //---------------------------------------------------------------------------- 28 #ifndef AGG_COLOR_GRAY_INCLUDED 29 #define AGG_COLOR_GRAY_INCLUDED 30 #include "agg_basics.h" 31 namespace agg 32 { 33 struct gray8 { 34 typedef int8u value_type; 35 typedef int32u calc_type; 36 typedef int32 long_type; 37 enum base_scale_e { 38 base_shift = 8, 39 base_size = 1 << base_shift, 40 base_mask = base_size - 1 41 }; 42 typedef gray8 self_type; 43 value_type v; 44 value_type a; gray8gray845 gray8() {} 46 gray8(unsigned v_, unsigned a_ = base_mask) : vgray847 v(int8u(v_)), a(int8u(a_)) {} 48 }; 49 } 50 #endif 51