00001 00002 // OpenGL Mathematics Copyright (c) 2005 - 2009 G-Truc Creation (www.g-truc.net) 00004 // Created : 2007-06-21 00005 // Updated : 2009-06-05 00006 // Licence : This source is under MIT License 00007 // File : glm/gtx/color_cast.hpp 00009 // Dependency: 00010 // - GLM core 00011 // - GLM_GTX_number_precision 00013 00014 #ifndef glm_gtx_color_cast 00015 #define glm_gtx_color_cast 00016 00017 // Dependency: 00018 #include "../glm.hpp" 00019 #include "../gtx/number_precision.hpp" 00020 00021 namespace glm 00022 { 00023 namespace test{ 00024 void main_ext_gtx_color_cast(); 00025 }//namespace test 00026 00027 namespace gtx{ 00029 namespace color_cast 00030 { 00031 using namespace gtx::number_precision; 00032 00035 template <typename valType> gtc::type_precision::uint8 u8channel_cast(valType a); 00036 00039 template <typename valType> gtc::type_precision::uint16 u16channel_cast(valType a); 00040 00041 template <typename T> gtc::type_precision::uint32 u32_rgbx_cast(const detail::tvec3<T>& c); 00042 template <typename T> gtc::type_precision::uint32 u32_xrgb_cast(const detail::tvec3<T>& c); 00043 template <typename T> gtc::type_precision::uint32 u32_bgrx_cast(const detail::tvec3<T>& c); 00044 template <typename T> gtc::type_precision::uint32 u32_xbgr_cast(const detail::tvec3<T>& c); 00045 00046 template <typename T> gtc::type_precision::uint32 u32_rgba_cast(const detail::tvec4<T>& c); 00047 template <typename T> gtc::type_precision::uint32 u32_argb_cast(const detail::tvec4<T>& c); 00048 template <typename T> gtc::type_precision::uint32 u32_bgra_cast(const detail::tvec4<T>& c); 00049 template <typename T> gtc::type_precision::uint32 u32_abgr_cast(const detail::tvec4<T>& c); 00050 00051 template <typename T> gtc::type_precision::uint64 u64_rgbx_cast(const detail::tvec3<T>& c); 00052 template <typename T> gtc::type_precision::uint64 u64_xrgb_cast(const detail::tvec3<T>& c); 00053 template <typename T> gtc::type_precision::uint64 u64_bgrx_cast(const detail::tvec3<T>& c); 00054 template <typename T> gtc::type_precision::uint64 u64_xbgr_cast(const detail::tvec3<T>& c); 00055 00056 template <typename T> gtc::type_precision::uint64 u64_rgba_cast(const detail::tvec4<T>& c); 00057 template <typename T> gtc::type_precision::uint64 u64_argb_cast(const detail::tvec4<T>& c); 00058 template <typename T> gtc::type_precision::uint64 u64_bgra_cast(const detail::tvec4<T>& c); 00059 template <typename T> gtc::type_precision::uint64 u64_abgr_cast(const detail::tvec4<T>& c); 00060 00061 template <typename T> gtx::number_precision::f16vec1 f16_channel_cast(T a); 00062 00063 template <typename T> gtc::type_precision::f16vec3 f16_rgbx_cast(T c); 00064 template <typename T> gtc::type_precision::f16vec3 f16_xrgb_cast(T c); 00065 template <typename T> gtc::type_precision::f16vec3 f16_bgrx_cast(T c); 00066 template <typename T> gtc::type_precision::f16vec3 f16_xbgr_cast(T c); 00067 00068 template <typename T> gtc::type_precision::f16vec4 f16_rgba_cast(T c); 00069 template <typename T> gtc::type_precision::f16vec4 f16_argb_cast(T c); 00070 template <typename T> gtc::type_precision::f16vec4 f16_bgra_cast(T c); 00071 template <typename T> gtc::type_precision::f16vec4 f16_abgr_cast(T c); 00072 00073 template <typename T> gtx::number_precision::f32vec1 f32_channel_cast(T a); 00074 00075 template <typename T> gtc::type_precision::f32vec3 f32_rgbx_cast(T c); 00076 template <typename T> gtc::type_precision::f32vec3 f32_xrgb_cast(T c); 00077 template <typename T> gtc::type_precision::f32vec3 f32_bgrx_cast(T c); 00078 template <typename T> gtc::type_precision::f32vec3 f32_xbgr_cast(T c); 00079 00080 template <typename T> gtc::type_precision::f32vec4 f32_rgba_cast(T c); 00081 template <typename T> gtc::type_precision::f32vec4 f32_argb_cast(T c); 00082 template <typename T> gtc::type_precision::f32vec4 f32_bgra_cast(T c); 00083 template <typename T> gtc::type_precision::f32vec4 f32_abgr_cast(T c); 00084 00085 template <typename T> gtx::number_precision::f64vec1 f64_channel_cast(T a); 00086 00087 template <typename T> gtc::type_precision::f64vec3 f64_rgbx_cast(T c); 00088 template <typename T> gtc::type_precision::f64vec3 f64_xrgb_cast(T c); 00089 template <typename T> gtc::type_precision::f64vec3 f64_bgrx_cast(T c); 00090 template <typename T> gtc::type_precision::f64vec3 f64_xbgr_cast(T c); 00091 00092 template <typename T> gtc::type_precision::f64vec4 f64_rgba_cast(T c); 00093 template <typename T> gtc::type_precision::f64vec4 f64_argb_cast(T c); 00094 template <typename T> gtc::type_precision::f64vec4 f64_bgra_cast(T c); 00095 template <typename T> gtc::type_precision::f64vec4 f64_abgr_cast(T c); 00096 }//namespace color_space 00097 }//namespace gtx 00098 }//namespace glm 00099 00100 #define GLM_GTX_color_cast namespace gtx::color_cast 00101 #ifndef GLM_GTX_GLOBAL 00102 namespace glm {using GLM_GTX_color_cast;} 00103 #endif//GLM_GTC_GLOBAL 00104 00105 #include "color_cast.inl" 00106 00107 #endif//glm_gtx_color_cast