1234567891011121314151617181920212223242526272829303132333435363738394041 |
- //
- // Copyright 2012 Christian Henning, Andreas Pokorny, Lubomir Bourdev
- //
- // Distributed under the Boost Software License, Version 1.0
- // See accompanying file LICENSE_1_0.txt or copy at
- // http://www.boost.org/LICENSE_1_0.txt
- //
- #ifndef BOOST_GIL_EXTENSION_TOOLBOX_METAFUNCTIONS_GET_PIXEL_TYPE_HPP
- #define BOOST_GIL_EXTENSION_TOOLBOX_METAFUNCTIONS_GET_PIXEL_TYPE_HPP
- #include <boost/gil/extension/toolbox/dynamic_images.hpp>
- #include <boost/gil/extension/toolbox/metafunctions/is_bit_aligned.hpp>
- #include <boost/gil/detail/mp11.hpp>
- namespace boost{ namespace gil {
- /// get_pixel_type metafunction
- /// \brief Depending on Image this function generates either
- /// the pixel type or the reference type in case
- /// the image is bit_aligned.
- template<typename View>
- struct get_pixel_type
- {
- using type = mp11::mp_if
- <
- is_bit_aligned<typename View::value_type>,
- typename View::reference,
- typename View::value_type
- >;
- };
- template<typename Views>
- struct get_pixel_type<any_image_view<Views>>
- {
- using type = any_image_pixel_t;
- };
- }} // namespace boost::gil
- #endif
|