Adobe Systems, Inc.

typedefs.hpp

Go to the documentation of this file.
00001 /*
00002     Copyright 2005-2006 Adobe Systems Incorporated
00003     Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt
00004     or a copy at http://opensource.adobe.com/licenses.html)
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 // forward declarations
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

Copyright © 2006 Adobe Systems Incorporated.

Use of this website signifies your agreement to the Terms of Use and Online Privacy Policy.

Search powered by Google