color_space_YCoCg.hpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /// @ref gtx_color_space_YCoCg
  2. /// @file glm/gtx/color_space_YCoCg.hpp
  3. ///
  4. /// @see core (dependence)
  5. ///
  6. /// @defgroup gtx_color_space_YCoCg GLM_GTX_color_space_YCoCg
  7. /// @ingroup gtx
  8. ///
  9. /// Include <glm/gtx/color_space_YCoCg.hpp> to use the features of this extension.
  10. ///
  11. /// RGB to YCoCg conversions and operations
  12. #pragma once
  13. // Dependency:
  14. #include "../glm.hpp"
  15. #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
  16. # ifndef GLM_ENABLE_EXPERIMENTAL
  17. # pragma message("GLM: GLM_GTX_color_space_YCoCg is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
  18. # else
  19. # pragma message("GLM: GLM_GTX_color_space_YCoCg extension included")
  20. # endif
  21. #endif
  22. namespace glm
  23. {
  24. /// @addtogroup gtx_color_space_YCoCg
  25. /// @{
  26. /// Convert a color from RGB color space to YCoCg color space.
  27. /// @see gtx_color_space_YCoCg
  28. template<typename T, qualifier Q>
  29. GLM_FUNC_DECL vec<3, T, Q> rgb2YCoCg(
  30. vec<3, T, Q> const& rgbColor);
  31. /// Convert a color from YCoCg color space to RGB color space.
  32. /// @see gtx_color_space_YCoCg
  33. template<typename T, qualifier Q>
  34. GLM_FUNC_DECL vec<3, T, Q> YCoCg2rgb(
  35. vec<3, T, Q> const& YCoCgColor);
  36. /// Convert a color from RGB color space to YCoCgR color space.
  37. /// @see "YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range"
  38. /// @see gtx_color_space_YCoCg
  39. template<typename T, qualifier Q>
  40. GLM_FUNC_DECL vec<3, T, Q> rgb2YCoCgR(
  41. vec<3, T, Q> const& rgbColor);
  42. /// Convert a color from YCoCgR color space to RGB color space.
  43. /// @see "YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range"
  44. /// @see gtx_color_space_YCoCg
  45. template<typename T, qualifier Q>
  46. GLM_FUNC_DECL vec<3, T, Q> YCoCgR2rgb(
  47. vec<3, T, Q> const& YCoCgColor);
  48. /// @}
  49. }//namespace glm
  50. #include "color_space_YCoCg.inl"