Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/gil/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12473/adobe-source/adobe/gil/core Modified Files: algorithm.hpp channel.hpp gil_concept.hpp image.hpp metafunctions.hpp pixel_iterator.hpp typedefs.hpp Log Message: moved win/ directories to win32/ to anticipate a possible widgets port for WPF; added a 'mini-sheet' to Eve so you can save UI state information (what tab is currently selected) without mucking up your Adam model; started the modal_dialog_interface, an API that'll be used to direct a modal dialog interaction between the user and the application (it's still in its infancy); other misc bug fixes Index: image.hpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/gil/core/image.hpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** image.hpp 9 Jan 2006 19:37:55 -0000 1.1 --- image.hpp 24 Jan 2006 19:38:49 -0000 1.2 *************** *** 62,66 **** template <typename LOC> // Models 2D Pixel Locator class image_view { ! GIL_CLASS_REQUIRE(LOC, GIL, XYLocatorConcept); public: --- 62,66 ---- template <typename LOC> // Models 2D Pixel Locator class image_view { ! GIL_CLASS_REQUIRE(LOC, GIL, PixelLocatorConcept); public: *************** *** 365,392 **** ///@{ ! /// \name get_num_channels ! /// \brief Returns the number of channels of an image view /// \ingroup ImageView ! template <typename LOC> ! int get_num_channels(const image_view<LOC>& view) { ! return image_view<LOC>::color_space_type::num_channels; ! } ! template <typename C_S> int get_num_channels(const variant<C_S>& img_view) { return img_view.apply_visitor(detail::any_image_view_get_num_channels()); } - ///@} - - ///@{ - /// \name get_width, get_height, get_dimensions - /// \brief Returns the dimensions of an image view - - /// \ingroup ImageView - /// \brief Returns the width of a templated image view - template <typename LOC> - int get_width(const image_view<LOC>& view) { return view.width(); } /// \brief Returns the width of any image view --- 365,378 ---- ///@{ ! /// \name get_width, get_height, get_dimensions, get_num_channels ! /// \brief Returns the dimensions of an image view variant /// \ingroup ImageView ! /// \brief Returns the number of channels of an image view template <typename C_S> int get_num_channels(const variant<C_S>& img_view) { return img_view.apply_visitor(detail::any_image_view_get_num_channels()); } /// \brief Returns the width of any image view *************** *** 396,403 **** } - /// \brief Returns the height of a templated image view - template <typename LOC> - int get_height(const image_view<LOC>& view) { return view.width(); } - /// \brief Returns the height of any image view template <typename C_S> --- 382,385 ---- *************** *** 406,413 **** } - /// \brief Returns the dimensions of a templated image view - template <typename LOC> - point2<int> get_dimensions(const image_view<LOC>& view) { return view.dimensions(); } - /// \brief Returns the dimensions of any image view template <typename C_S> --- 388,391 ---- Index: algorithm.hpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/gil/core/algorithm.hpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** algorithm.hpp 9 Jan 2006 19:37:55 -0000 1.1 --- algorithm.hpp 24 Jan 2006 19:38:49 -0000 1.2 *************** *** 75,82 **** /// Source range is delimited by image iterators /// \ingroup Algorithms ! template <typename IL, typename O> // IL Models ConstXYLocatorConcept, O Models PixelIteratorConcept struct copier_n<GIL::pixel_image_iterator<IL>,O> { void operator()(GIL::pixel_image_iterator<IL> src, ptrdiff_t n, O dst) const { ! GIL::gil_function_requires<GIL::XYLocatorConcept<IL> >(); GIL::gil_function_requires<GIL::MutablePixelIteratorConcept<O> >(); while (n>0) { --- 75,82 ---- /// Source range is delimited by image iterators /// \ingroup Algorithms ! template <typename IL, typename O> // IL Models ConstPixelLocatorConcept, O Models PixelIteratorConcept struct copier_n<GIL::pixel_image_iterator<IL>,O> { void operator()(GIL::pixel_image_iterator<IL> src, ptrdiff_t n, O dst) const { ! GIL::gil_function_requires<GIL::PixelLocatorConcept<IL> >(); GIL::gil_function_requires<GIL::MutablePixelIteratorConcept<O> >(); while (n>0) { *************** *** 92,100 **** /// Destination range is delimited by image iterators /// \ingroup Algorithms ! template <typename I, typename OL> // I Models ConstPixelIteratorConcept, OL Models XYLocatorConcept struct copier_n<I,GIL::pixel_image_iterator<OL> > { void operator()(I src, ptrdiff_t n, GIL::pixel_image_iterator<OL> dst) const { GIL::gil_function_requires<GIL::PixelIteratorConcept<I> >(); ! GIL::gil_function_requires<GIL::MutableXYLocatorConcept<OL> >(); while (n>0) { ptrdiff_t numToCopy=std::min<const ptrdiff_t>(n,dst.width()-dst.x()); --- 92,100 ---- /// Destination range is delimited by image iterators /// \ingroup Algorithms ! template <typename I, typename OL> // I Models ConstPixelIteratorConcept, OL Models PixelLocatorConcept struct copier_n<I,GIL::pixel_image_iterator<OL> > { void operator()(I src, ptrdiff_t n, GIL::pixel_image_iterator<OL> dst) const { GIL::gil_function_requires<GIL::PixelIteratorConcept<I> >(); ! GIL::gil_function_requires<GIL::MutablePixelLocatorConcept<OL> >(); while (n>0) { ptrdiff_t numToCopy=std::min<const ptrdiff_t>(n,dst.width()-dst.x()); *************** *** 112,117 **** struct copier_n<GIL::pixel_image_iterator<IL>,GIL::pixel_image_iterator<OL> > { void operator()(GIL::pixel_image_iterator<IL> src, ptrdiff_t n, GIL::pixel_image_iterator<OL> dst) const { ! GIL::gil_function_requires<GIL::XYLocatorConcept<IL> >(); ! GIL::gil_function_requires<GIL::MutableXYLocatorConcept<OL> >(); if (src.x()!=dst.x() || src.width()!=dst.width()) { while(n-->0) { --- 112,117 ---- struct copier_n<GIL::pixel_image_iterator<IL>,GIL::pixel_image_iterator<OL> > { void operator()(GIL::pixel_image_iterator<IL> src, ptrdiff_t n, GIL::pixel_image_iterator<OL> dst) const { ! GIL::gil_function_requires<GIL::PixelLocatorConcept<IL> >(); ! GIL::gil_function_requires<GIL::MutablePixelLocatorConcept<OL> >(); if (src.x()!=dst.x() || src.width()!=dst.width()) { while(n-->0) { *************** *** 144,149 **** template <typename IL, typename OL> inline GIL::pixel_image_iterator<OL> copy(GIL::pixel_image_iterator<IL> first, GIL::pixel_image_iterator<IL> last, GIL::pixel_image_iterator<OL> dst) { ! GIL::gil_function_requires<GIL::XYLocatorConcept<IL> >(); ! GIL::gil_function_requires<GIL::MutableXYLocatorConcept<OL> >(); ptrdiff_t n=last-first; if (first.is_contiguous()) { --- 144,149 ---- template <typename IL, typename OL> inline GIL::pixel_image_iterator<OL> copy(GIL::pixel_image_iterator<IL> first, GIL::pixel_image_iterator<IL> last, GIL::pixel_image_iterator<OL> dst) { ! GIL::gil_function_requires<GIL::PixelLocatorConcept<IL> >(); ! GIL::gil_function_requires<GIL::MutablePixelLocatorConcept<OL> >(); ptrdiff_t n=last-first; if (first.is_contiguous()) { *************** *** 170,174 **** template <typename IL, typename V> void fill(GIL::pixel_image_iterator<IL> first, GIL::pixel_image_iterator<IL> last, const V& val) { ! GIL::gil_function_requires<GIL::MutableXYLocatorConcept<IL> >(); if (first.is_contiguous()) { std::fill(first.x_it(), last.x_it(), val); --- 170,174 ---- template <typename IL, typename V> void fill(GIL::pixel_image_iterator<IL> first, GIL::pixel_image_iterator<IL> last, const V& val) { ! GIL::gil_function_requires<GIL::MutablePixelLocatorConcept<IL> >(); if (first.is_contiguous()) { std::fill(first.x_it(), last.x_it(), val); Index: gil_concept.hpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/gil/core/gil_concept.hpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** gil_concept.hpp 9 Jan 2006 19:37:55 -0000 1.1 --- gil_concept.hpp 24 Jan 2006 19:38:49 -0000 1.2 *************** *** 184,188 **** typedef typename channel_traits<T>::const_pointer cp; channel_multiply(c,c); - channel_interpolate(c,c,c); // this one is defined for all defining channel_traits<T>::max(), but it uses operator-. So either define operator- or channel_invert --- 184,187 ---- *************** *** 237,241 **** /// \ingroup ChannelConcept template <typename SRC_T, typename DST_T> ! struct ChannelsConvertibleConcept { void constraints() { gil_function_requires<ChannelConcept<SRC_T> >(); --- 236,240 ---- /// \ingroup ChannelConcept template <typename SRC_T, typename DST_T> ! struct ChannelConvertibleConcept { void constraints() { gil_function_requires<ChannelConcept<SRC_T> >(); *************** *** 328,336 **** /// \ingroup PixelConcept template <typename SRC_P, typename DST_P> ! struct PixelsConvertibleConcept { void constraints() { gil_function_requires<PixelConcept<SRC_P> >(); gil_function_requires<MutablePixelConcept<DST_P> >(); ! gil_function_requires<ChannelsConvertibleConcept<typename SRC_P::channel_type, typename DST_P::channel_type> >(); color_convert(src,dst); } --- 327,335 ---- /// \ingroup PixelConcept template <typename SRC_P, typename DST_P> ! struct PixelConvertibleConcept { void constraints() { gil_function_requires<PixelConcept<SRC_P> >(); gil_function_requires<MutablePixelConcept<DST_P> >(); ! gil_function_requires<ChannelConvertibleConcept<typename SRC_P::channel_type, typename DST_P::channel_type> >(); color_convert(src,dst); } *************** *** 360,366 **** gil_function_requires<ChannelConcept<channel_type> >(); - typedef typename std::iterator_traits<IT>::const_channel_type const_channel_type; - gil_function_requires<ChannelConcept<const_channel_type> >(); - typedef typename std::iterator_traits<IT>::color_space_type color_space_type; gil_function_requires<ColorSpaceTypeConcept<color_space_type> >(); --- 359,362 ---- *************** *** 462,466 **** /// \brief GIL's pixel step iterator concept /// ! /// GIL's pixel step iterators additionally require that they are iterator adaptors and are byte advancable /// \ingroup StepIteratorConcept template <typename IT> struct PixelIteratorAdaptorConcept; --- 458,462 ---- /// \brief GIL's pixel step iterator concept /// ! /// GIL's pixel step iterators additionally require that they are iterator adaptors and are byte advanceable /// \ingroup StepIteratorConcept template <typename IT> struct PixelIteratorAdaptorConcept; *************** *** 473,477 **** gil_function_requires<PixelIteratorAdaptorConcept<IT> >(); ! // Must be byte advancable gil_function_requires<detail::RandomAccessIteratorIsByteAdvancableConcept<IT> >(); --- 469,473 ---- gil_function_requires<PixelIteratorAdaptorConcept<IT> >(); ! // Must be byte advanceable gil_function_requires<detail::RandomAccessIteratorIsByteAdvancableConcept<IT> >(); *************** *** 652,659 **** }; ! /// \ingroup XYLocatorConcept /// \brief GIL's 2-dimensional locator over immutable GIL pixels template <typename LOC> ! struct XYLocatorConcept { void constraints() { gil_function_requires< RandomAccess2DLocatorConcept<LOC> >(); --- 648,655 ---- }; ! /// \ingroup PixelLocatorConcept /// \brief GIL's 2-dimensional locator over immutable GIL pixels template <typename LOC> ! struct PixelLocatorConcept { void constraints() { gil_function_requires< RandomAccess2DLocatorConcept<LOC> >(); *************** *** 725,734 **** }; ! /// \ingroup XYLocatorConcept /// \brief GIL's 2-dimensional locator over mutable GIL pixels template <typename LOC> ! struct MutableXYLocatorConcept { void constraints() { ! gil_function_requires<XYLocatorConcept<LOC> >(); gil_function_requires<detail::RandomAccess2DLocatorIsMutableConcept<LOC> >(); } --- 721,730 ---- }; ! /// \ingroup PixelLocatorConcept /// \brief GIL's 2-dimensional locator over mutable GIL pixels template <typename LOC> ! struct MutablePixelLocatorConcept { void constraints() { ! gil_function_requires<PixelLocatorConcept<LOC> >(); gil_function_requires<detail::RandomAccess2DLocatorIsMutableConcept<LOC> >(); } *************** *** 859,863 **** // TODO: This executes the requirements for RandomAccess2DLocatorConcept again. Fix it to improve compile time ! gil_function_requires<XYLocatorConcept<typename VIEW::xy_locator> >(); BOOST_STATIC_ASSERT((boost::is_same<typename VIEW::x_coord_type, typename VIEW::y_coord_type>::value)); --- 855,859 ---- // TODO: This executes the requirements for RandomAccess2DLocatorConcept again. Fix it to improve compile time ! gil_function_requires<PixelLocatorConcept<typename VIEW::xy_locator> >(); BOOST_STATIC_ASSERT((boost::is_same<typename VIEW::x_coord_type, typename VIEW::y_coord_type>::value)); Index: metafunctions.hpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/gil/core/metafunctions.hpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** metafunctions.hpp 9 Jan 2006 19:37:55 -0000 1.1 --- metafunctions.hpp 24 Jan 2006 19:38:49 -0000 1.2 *************** *** 153,160 **** /// @} - - #define REMOVE_CONST_AND_REFERENCE(T) typename boost::remove_const<typename boost::remove_reference<T>::type>::type - - ADOBE_GIL_NAMESPACE_END --- 153,156 ---- Index: pixel_iterator.hpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/gil/core/pixel_iterator.hpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** pixel_iterator.hpp 9 Jan 2006 19:37:55 -0000 1.1 --- pixel_iterator.hpp 24 Jan 2006 19:38:49 -0000 1.2 *************** *** 288,292 **** /// \ingroup Iterators /// ! /// MODELS: XYLocatorConcept /// /// The class takes a step iterator as a parameter. The step iterator provides navigation along the vertical axis --- 288,292 ---- /// \ingroup Iterators /// ! /// MODELS: PixelLocatorConcept /// /// The class takes a step iterator as a parameter. The step iterator provides navigation along the vertical axis *************** *** 352,356 **** typedef typename point_type::template axis<1>::coord_type y_coord_type; ! // typedefs required by XYLocatorConcept typedef pixel_xy_locator<typename std::iterator_traits<S_IT>::dynamic_step_base_type> dynamic_step_type; typedef typename std::iterator_traits<X_IT>::channel_type channel_type; --- 352,356 ---- typedef typename point_type::template axis<1>::coord_type y_coord_type; ! // typedefs required by PixelLocatorConcept typedef pixel_xy_locator<typename std::iterator_traits<S_IT>::dynamic_step_base_type> dynamic_step_type; typedef typename std::iterator_traits<X_IT>::channel_type channel_type; *************** *** 453,459 **** //////////////////////////////////////////////////////////////////////////////////////// ! template <typename LOC2> // Models XYLocatorConcept class pixel_image_iterator : public boost::iterator_facade<pixel_image_iterator<LOC2>,typename LOC2::value_type,boost::random_access_traversal_tag,typename LOC2::reference,typename LOC2::coord_type> { ! GIL_CLASS_REQUIRE(LOC2, GIL, XYLocatorConcept); public: typedef boost::iterator_facade<pixel_image_iterator<LOC2>,typename LOC2::value_type,boost::random_access_traversal_tag,typename LOC2::reference,typename LOC2::coord_type> parent_type; --- 453,459 ---- //////////////////////////////////////////////////////////////////////////////////////// ! template <typename LOC2> // Models PixelLocatorConcept class pixel_image_iterator : public boost::iterator_facade<pixel_image_iterator<LOC2>,typename LOC2::value_type,boost::random_access_traversal_tag,typename LOC2::reference,typename LOC2::coord_type> { ! GIL_CLASS_REQUIRE(LOC2, GIL, PixelLocatorConcept); public: typedef boost::iterator_facade<pixel_image_iterator<LOC2>,typename LOC2::value_type,boost::random_access_traversal_tag,typename LOC2::reference,typename LOC2::coord_type> parent_type; *************** *** 637,641 **** typedef T channel_type; - typedef typename boost::add_const<T>::type const_channel_type; typedef C color_space_type; // incorporates the color space, presence of alpha, and the channel sequence. Sample values: rgb_tag, bgr_tag, rgba_tag, bgra_tag, cmyk_tag, cmyka_tag BOOST_STATIC_CONSTANT(bool, is_base=true); --- 637,640 ---- *************** *** 646,650 **** template <typename T, typename C> struct iterator_traits<GIL::pixel<T,C>*> : public iterator_traits_base<T,C> { - typedef typename iterator_traits_base<T,C>::const_channel_type const_channel_type; typedef typename iterator_traits_base<T,C>::value_type value_type; typedef value_type& reference; --- 645,648 ---- *************** *** 652,656 **** typedef value_type* pointer; typedef GIL::pixel_step_iterator<GIL::pixel<T,C>*> dynamic_step_type; ! typedef GIL::pixel<const_channel_type,C>* const_type; BOOST_STATIC_CONSTANT(bool, is_planar=false); }; --- 650,654 ---- typedef value_type* pointer; typedef GIL::pixel_step_iterator<GIL::pixel<T,C>*> dynamic_step_type; ! typedef GIL::pixel<typename GIL::channel_traits<T>::const_value_type,C>* const_type; BOOST_STATIC_CONSTANT(bool, is_planar=false); }; *************** *** 659,668 **** template <typename T, typename C> struct iterator_traits<GIL::planar_ptr<T,C> > : public iterator_traits_base<T,C> { - typedef typename iterator_traits_base<T,C>::const_channel_type const_channel_type; typedef GIL::pixel<T&,C> reference; ! typedef GIL::pixel<const_channel_type&,C> const_reference; typedef GIL::planar_ptr<T,C> pointer; typedef GIL::pixel_step_iterator<GIL::planar_ptr<T,C> > dynamic_step_type; ! typedef GIL::planar_ptr<const_channel_type,C> const_type; BOOST_STATIC_CONSTANT(bool, is_planar=true); }; --- 657,665 ---- template <typename T, typename C> struct iterator_traits<GIL::planar_ptr<T,C> > : public iterator_traits_base<T,C> { typedef GIL::pixel<T&,C> reference; ! typedef GIL::pixel<typename GIL::channel_traits<T>::const_reference,C> const_reference; typedef GIL::planar_ptr<T,C> pointer; typedef GIL::pixel_step_iterator<GIL::planar_ptr<T,C> > dynamic_step_type; ! typedef GIL::planar_ptr<typename GIL::channel_traits<T>::const_value_type,C> const_type; BOOST_STATIC_CONSTANT(bool, is_planar=true); }; *************** *** 687,691 **** }; ! template <typename LOC> // Models XYLocatorConcept struct iterator_traits<GIL::pixel_image_iterator<LOC> > : public iterator_traits<typename LOC::x_iterator> { typedef GIL::pixel_image_iterator<typename LOC::dynamic_step_type> dynamic_step_type; --- 684,688 ---- }; ! template <typename LOC> // Models PixelLocatorConcept struct iterator_traits<GIL::pixel_image_iterator<LOC> > : public iterator_traits<typename LOC::x_iterator> { typedef GIL::pixel_image_iterator<typename LOC::dynamic_step_type> dynamic_step_type; Index: channel.hpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/gil/core/channel.hpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** channel.hpp 9 Jan 2006 19:37:55 -0000 1.1 --- channel.hpp 24 Jan 2006 19:38:49 -0000 1.2 *************** *** 164,191 **** /// \ingroup Channel template <typename T> ! inline T channel_invert(T x) { return channel_traits<T>::max()-x; } ///@} - - ///@{ - /// \name channel_interpolate - /// \brief Channel interpolation (generalization of Photoshop's Interp8 and Interp16) - - /// \ingroup Channel - - inline bits8 channel_interpolate( bits8 m, bits8 a, bits8 b ) { - return bits8(detail::div255((boost::uint32_t)m*b + channel_invert(m)*(boost::uint32_t)a)); - } - - inline bits16 channel_interpolate( bits16 m, bits16 a, bits16 b ) { - return bits16(detail::div32768((boost::uint32_t)m*b + channel_invert(m)*(boost::uint32_t)a)); - } - - inline bits32 channel_interpolate( bits32 m, bits32 a, bits32 b ) { - return m*b + channel_invert(m)*a; - } - ///@} - ADOBE_GIL_NAMESPACE_END --- 164,171 ---- /// \ingroup Channel template <typename T> ! inline T channel_invert(T x) { return channel_traits<T>::max()-x + channel_traits<T>::min(); } ///@} ADOBE_GIL_NAMESPACE_END Index: typedefs.hpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/gil/core/typedefs.hpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** typedefs.hpp 9 Jan 2006 19:37:55 -0000 1.1 --- typedefs.hpp 24 Jan 2006 19:38:49 -0000 1.2 *************** *** 383,404 **** typedef pixel_xy_locator<pixel_step_iterator<cmyk32_step_ptr> > cmyk32_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<gray8c_ptr> > gray8c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<gray16c_ptr> > gray16c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<gray32c_ptr> > gray32c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<rgb8c_ptr> > rgb8c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<rgb16c_ptr> > rgb16c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<rgb32c_ptr> > rgb32c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<bgr8c_ptr> > bgr8c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<bgr16c_ptr> > bgr16c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<bgr32c_ptr> > bgr32c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<rgba8c_ptr> > rgba8c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<rgba16c_ptr> > rgba16c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<rgba32c_ptr> > rgba32c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<lab8c_ptr> > lab8c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<lab16c_ptr> > lab16c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<lab32c_ptr> > lab32c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<cmyk8c_ptr> > cmyk8c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<cmyk16c_ptr> > cmyk16c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<cmyk32c_ptr> > cmyk32c_step_loc; typedef pixel_xy_locator<pixel_step_iterator<rgb8_planar_step_ptr> > rgb8_planar_step_loc; --- 383,404 ---- typedef pixel_xy_locator<pixel_step_iterator<cmyk32_step_ptr> > cmyk32_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<gray8c_step_ptr> > gray8c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<gray16c_step_ptr> > gray16c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<gray32c_step_ptr> > gray32c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<rgb8c_step_ptr> > rgb8c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<rgb16c_step_ptr> > rgb16c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<rgb32c_step_ptr> > rgb32c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<bgr8c_step_ptr> > bgr8c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<bgr16c_step_ptr> > bgr16c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<bgr32c_step_ptr> > bgr32c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<rgba8c_step_ptr> > rgba8c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<rgba16c_step_ptr> > rgba16c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<rgba32c_step_ptr> > rgba32c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<lab8c_step_ptr> > lab8c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<lab16c_step_ptr> > lab16c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<lab32c_step_ptr> > lab32c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<cmyk8c_step_ptr> > cmyk8c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<cmyk16c_step_ptr> > cmyk16c_step_loc; ! typedef pixel_xy_locator<pixel_step_iterator<cmyk32c_step_ptr> > cmyk32c_step_loc; typedef pixel_xy_locator<pixel_step_iterator<rgb8_planar_step_ptr> > rgb8_planar_step_loc; |