00001 00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 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 #if(defined(GLM_MESSAGES) && !defined(glm_ext)) 00022 # pragma message("GLM: GLM_GTX_color_cast extension included") 00023 #endif 00024 00025 namespace glm 00026 { 00027 namespace test{ 00028 void main_ext_gtx_color_cast(); 00029 }//namespace test 00030 00031 namespace gtx{ 00033 namespace color_cast 00034 { 00035 using namespace gtx::number_precision; 00036 00039 00042 template <typename valType> gtc::type_precision::uint8 u8channel_cast(valType a); 00043 00046 template <typename valType> gtc::type_precision::uint16 u16channel_cast(valType a); 00047 00048 template <typename T> gtc::type_precision::uint32 u32_rgbx_cast(const detail::tvec3<T>& c); 00049 template <typename T> gtc::type_precision::uint32 u32_xrgb_cast(const detail::tvec3<T>& c); 00050 template <typename T> gtc::type_precision::uint32 u32_bgrx_cast(const detail::tvec3<T>& c); 00051 template <typename T> gtc::type_precision::uint32 u32_xbgr_cast(const detail::tvec3<T>& c); 00052 00053 template <typename T> gtc::type_precision::uint32 u32_rgba_cast(const detail::tvec4<T>& c); 00054 template <typename T> gtc::type_precision::uint32 u32_argb_cast(const detail::tvec4<T>& c); 00055 template <typename T> gtc::type_precision::uint32 u32_bgra_cast(const detail::tvec4<T>& c); 00056 template <typename T> gtc::type_precision::uint32 u32_abgr_cast(const detail::tvec4<T>& c); 00057 00058 template <typename T> gtc::type_precision::uint64 u64_rgbx_cast(const detail::tvec3<T>& c); 00059 template <typename T> gtc::type_precision::uint64 u64_xrgb_cast(const detail::tvec3<T>& c); 00060 template <typename T> gtc::type_precision::uint64 u64_bgrx_cast(const detail::tvec3<T>& c); 00061 template <typename T> gtc::type_precision::uint64 u64_xbgr_cast(const detail::tvec3<T>& c); 00062 00063 template <typename T> gtc::type_precision::uint64 u64_rgba_cast(const detail::tvec4<T>& c); 00064 template <typename T> gtc::type_precision::uint64 u64_argb_cast(const detail::tvec4<T>& c); 00065 template <typename T> gtc::type_precision::uint64 u64_bgra_cast(const detail::tvec4<T>& c); 00066 template <typename T> gtc::type_precision::uint64 u64_abgr_cast(const detail::tvec4<T>& c); 00067 00068 template <typename T> gtx::number_precision::f16vec1 f16_channel_cast(T a); 00069 00070 template <typename T> gtc::type_precision::f16vec3 f16_rgbx_cast(T c); 00071 template <typename T> gtc::type_precision::f16vec3 f16_xrgb_cast(T c); 00072 template <typename T> gtc::type_precision::f16vec3 f16_bgrx_cast(T c); 00073 template <typename T> gtc::type_precision::f16vec3 f16_xbgr_cast(T c); 00074 00075 template <typename T> gtc::type_precision::f16vec4 f16_rgba_cast(T c); 00076 template <typename T> gtc::type_precision::f16vec4 f16_argb_cast(T c); 00077 template <typename T> gtc::type_precision::f16vec4 f16_bgra_cast(T c); 00078 template <typename T> gtc::type_precision::f16vec4 f16_abgr_cast(T c); 00079 00080 template <typename T> gtx::number_precision::f32vec1 f32_channel_cast(T a); 00081 00082 template <typename T> gtc::type_precision::f32vec3 f32_rgbx_cast(T c); 00083 template <typename T> gtc::type_precision::f32vec3 f32_xrgb_cast(T c); 00084 template <typename T> gtc::type_precision::f32vec3 f32_bgrx_cast(T c); 00085 template <typename T> gtc::type_precision::f32vec3 f32_xbgr_cast(T c); 00086 00087 template <typename T> gtc::type_precision::f32vec4 f32_rgba_cast(T c); 00088 template <typename T> gtc::type_precision::f32vec4 f32_argb_cast(T c); 00089 template <typename T> gtc::type_precision::f32vec4 f32_bgra_cast(T c); 00090 template <typename T> gtc::type_precision::f32vec4 f32_abgr_cast(T c); 00091 00092 template <typename T> gtx::number_precision::f64vec1 f64_channel_cast(T a); 00093 00094 template <typename T> gtc::type_precision::f64vec3 f64_rgbx_cast(T c); 00095 template <typename T> gtc::type_precision::f64vec3 f64_xrgb_cast(T c); 00096 template <typename T> gtc::type_precision::f64vec3 f64_bgrx_cast(T c); 00097 template <typename T> gtc::type_precision::f64vec3 f64_xbgr_cast(T c); 00098 00099 template <typename T> gtc::type_precision::f64vec4 f64_rgba_cast(T c); 00100 template <typename T> gtc::type_precision::f64vec4 f64_argb_cast(T c); 00101 template <typename T> gtc::type_precision::f64vec4 f64_bgra_cast(T c); 00102 template <typename T> gtc::type_precision::f64vec4 f64_abgr_cast(T c); 00103 00105 }//namespace color_space 00106 }//namespace gtx 00107 }//namespace glm 00108 00109 #include "color_cast.inl" 00110 00111 namespace glm{using namespace gtx::color_cast;} 00112 00113 #endif//glm_gtx_color_cast