00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef GIL_TYPEDEFS_H
00010 #define GIL_TYPEDEFS_H
00011
00020
00021 #include "gil_config.hpp"
00022 #include <boost/cstdint.hpp>
00023 #include <memory>
00024
00025 #define DEFINE_GIL_BASE_TYPEDEFS(T,CS) \
00026 struct CS##_t; \
00027 template <typename, typename> struct pixel; \
00028 template <typename, typename> struct planar_ref; \
00029 template <typename, typename> struct planar_ptr; \
00030 template <typename> class pixel_step_iterator; \
00031 template <typename> class point2; \
00032 template <typename> class pixel_2d_locator; \
00033 template <typename> class image_view; \
00034 template <typename, typename> class image; \
00035 typedef pixel<bits##T ,CS##_t> CS##T##_pixel_t; \
00036 typedef const pixel<bits##T,CS##_t> CS##T##c_pixel_t; \
00037 typedef pixel<bits##T, CS##_t>& CS##T##_ref_t; \
00038 typedef const pixel<bits##T, CS##_t>& CS##T##c_ref_t; \
00039 typedef CS##T##_pixel_t* CS##T##_ptr_t; \
00040 typedef CS##T##c_pixel_t* CS##T##c_ptr_t; \
00041 typedef pixel_step_iterator<CS##T##_ptr_t> CS##T##_step_ptr_t; \
00042 typedef pixel_step_iterator<CS##T##c_ptr_t> CS##T##c_step_ptr_t; \
00043 typedef pixel_2d_locator<pixel_step_iterator<CS##T##_ptr_t> > CS##T##_loc_t; \
00044 typedef pixel_2d_locator<pixel_step_iterator<CS##T##c_ptr_t> > CS##T##c_loc_t; \
00045 typedef pixel_2d_locator<pixel_step_iterator<CS##T##_step_ptr_t> > CS##T##_step_loc_t; \
00046 typedef pixel_2d_locator<pixel_step_iterator<CS##T##c_step_ptr_t> > CS##T##c_step_loc_t; \
00047 typedef image_view<CS##T##_loc_t> CS##T##_view_t; \
00048 typedef image_view<CS##T##c_loc_t> CS##T##c_view_t; \
00049 typedef image_view<CS##T##_step_loc_t> CS##T##_step_view_t; \
00050 typedef image_view<CS##T##c_step_loc_t> CS##T##c_step_view_t; \
00051 typedef image<CS##T##_view_t,std::allocator<unsigned char> > CS##T##_image_t;
00052
00053 #define DEFINE_GIL_ALL_TYPEDEFS(T,CS) \
00054 DEFINE_GIL_BASE_TYPEDEFS(T,CS) \
00055 typedef planar_ref<bits##T&,CS##_t> CS##T##_planar_ref_t; \
00056 typedef planar_ref<const bits##T&,CS##_t> CS##T##c_planar_ref_t; \
00057 typedef planar_ptr<bits##T*,CS##_t> CS##T##_planar_ptr_t; \
00058 typedef planar_ptr<const bits##T*,CS##_t> CS##T##c_planar_ptr_t; \
00059 typedef pixel_step_iterator<CS##T##_planar_ptr_t> CS##T##_planar_step_ptr_t; \
00060 typedef pixel_step_iterator<CS##T##c_planar_ptr_t> CS##T##c_planar_step_ptr_t; \
00061 typedef pixel_2d_locator<pixel_step_iterator<CS##T##_planar_ptr_t> > CS##T##_planar_loc_t; \
00062 typedef pixel_2d_locator<pixel_step_iterator<CS##T##c_planar_ptr_t> > CS##T##c_planar_loc_t; \
00063 typedef pixel_2d_locator<pixel_step_iterator<CS##T##_planar_step_ptr_t> > CS##T##_planar_step_loc_t; \
00064 typedef pixel_2d_locator<pixel_step_iterator<CS##T##c_planar_step_ptr_t> > CS##T##c_planar_step_loc_t; \
00065 typedef image_view<CS##T##_planar_loc_t> CS##T##_planar_view_t; \
00066 typedef image_view<CS##T##c_planar_loc_t> CS##T##c_planar_view_t; \
00067 typedef image_view<CS##T##_planar_step_loc_t> CS##T##_planar_step_view_t; \
00068 typedef image_view<CS##T##c_planar_step_loc_t> CS##T##c_planar_step_view_t;\
00069 typedef image<CS##T##_planar_view_t,std::allocator<unsigned char> > CS##T##_planar_image_t;
00070
00071
00072 ADOBE_GIL_NAMESPACE_BEGIN
00073
00074
00075 typedef boost::uint8_t bits8;
00076 typedef boost::uint16_t bits16;
00077 typedef float bits32f;
00078
00079 DEFINE_GIL_BASE_TYPEDEFS(8, gray)
00080 DEFINE_GIL_BASE_TYPEDEFS(16, gray)
00081 DEFINE_GIL_BASE_TYPEDEFS(32f,gray)
00082 DEFINE_GIL_BASE_TYPEDEFS(8, bgr)
00083 DEFINE_GIL_BASE_TYPEDEFS(16, bgr)
00084 DEFINE_GIL_BASE_TYPEDEFS(32f,bgr)
00085 DEFINE_GIL_BASE_TYPEDEFS(8, argb)
00086 DEFINE_GIL_BASE_TYPEDEFS(16, argb)
00087 DEFINE_GIL_BASE_TYPEDEFS(32f,argb)
00088 DEFINE_GIL_BASE_TYPEDEFS(8, abgr)
00089 DEFINE_GIL_BASE_TYPEDEFS(16, abgr)
00090 DEFINE_GIL_BASE_TYPEDEFS(32f,abgr)
00091 DEFINE_GIL_BASE_TYPEDEFS(8, bgra)
00092 DEFINE_GIL_BASE_TYPEDEFS(16, bgra)
00093 DEFINE_GIL_BASE_TYPEDEFS(32f,bgra)
00094
00095 DEFINE_GIL_ALL_TYPEDEFS(8, rgb)
00096 DEFINE_GIL_ALL_TYPEDEFS(16, rgb)
00097 DEFINE_GIL_ALL_TYPEDEFS(32f,rgb)
00098 DEFINE_GIL_ALL_TYPEDEFS(8, lab)
00099 DEFINE_GIL_ALL_TYPEDEFS(16, lab)
00100 DEFINE_GIL_ALL_TYPEDEFS(32f,lab)
00101 DEFINE_GIL_ALL_TYPEDEFS(8, hsb)
00102 DEFINE_GIL_ALL_TYPEDEFS(16, hsb)
00103 DEFINE_GIL_ALL_TYPEDEFS(32f,hsb)
00104 DEFINE_GIL_ALL_TYPEDEFS(8, rgba)
00105 DEFINE_GIL_ALL_TYPEDEFS(16, rgba)
00106 DEFINE_GIL_ALL_TYPEDEFS(32f,rgba)
00107 DEFINE_GIL_ALL_TYPEDEFS(8, cmyk)
00108 DEFINE_GIL_ALL_TYPEDEFS(16, cmyk)
00109 DEFINE_GIL_ALL_TYPEDEFS(32f,cmyk)
00110
00111 ADOBE_GIL_NAMESPACE_END
00112
00113 #endif