00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022 00023 00024 00025 00026 00027 00028 00029 00030 00031 00032 00033 00034 00035 00036 00037 00038 00039 #ifndef GLM_GTX_color_cast 00040 #define GLM_GTX_color_cast GLM_VERSION 00041 00042 // Dependency: 00043 #include "../glm.hpp" 00044 #include "../gtx/number_precision.hpp" 00045 00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext)) 00047 # pragma message("GLM: GLM_GTX_color_cast extension included") 00048 #endif 00049 00050 namespace glm 00051 { 00054 00057 template <typename valType> uint8 u8channel_cast(valType a); 00058 00061 template <typename valType> uint16 u16channel_cast(valType a); 00062 00063 template <typename T> uint32 u32_rgbx_cast(const detail::tvec3<T>& c); 00064 template <typename T> uint32 u32_xrgb_cast(const detail::tvec3<T>& c); 00065 template <typename T> uint32 u32_bgrx_cast(const detail::tvec3<T>& c); 00066 template <typename T> uint32 u32_xbgr_cast(const detail::tvec3<T>& c); 00067 00068 template <typename T> uint32 u32_rgba_cast(const detail::tvec4<T>& c); 00069 template <typename T> uint32 u32_argb_cast(const detail::tvec4<T>& c); 00070 template <typename T> uint32 u32_bgra_cast(const detail::tvec4<T>& c); 00071 template <typename T> uint32 u32_abgr_cast(const detail::tvec4<T>& c); 00072 00073 template <typename T> uint64 u64_rgbx_cast(const detail::tvec3<T>& c); 00074 template <typename T> uint64 u64_xrgb_cast(const detail::tvec3<T>& c); 00075 template <typename T> uint64 u64_bgrx_cast(const detail::tvec3<T>& c); 00076 template <typename T> uint64 u64_xbgr_cast(const detail::tvec3<T>& c); 00077 00078 template <typename T> uint64 u64_rgba_cast(const detail::tvec4<T>& c); 00079 template <typename T> uint64 u64_argb_cast(const detail::tvec4<T>& c); 00080 template <typename T> uint64 u64_bgra_cast(const detail::tvec4<T>& c); 00081 template <typename T> uint64 u64_abgr_cast(const detail::tvec4<T>& c); 00082 00083 template <typename T> f16 f16_channel_cast(T a); 00084 00085 template <typename T> f16vec3 f16_rgbx_cast(T c); 00086 template <typename T> f16vec3 f16_xrgb_cast(T c); 00087 template <typename T> f16vec3 f16_bgrx_cast(T c); 00088 template <typename T> f16vec3 f16_xbgr_cast(T c); 00089 00090 template <typename T> f16vec4 f16_rgba_cast(T c); 00091 template <typename T> f16vec4 f16_argb_cast(T c); 00092 template <typename T> f16vec4 f16_bgra_cast(T c); 00093 template <typename T> f16vec4 f16_abgr_cast(T c); 00094 00095 template <typename T> f32 f32_channel_cast(T a); 00096 00097 template <typename T> f32vec3 f32_rgbx_cast(T c); 00098 template <typename T> f32vec3 f32_xrgb_cast(T c); 00099 template <typename T> f32vec3 f32_bgrx_cast(T c); 00100 template <typename T> f32vec3 f32_xbgr_cast(T c); 00101 00102 template <typename T> f32vec4 f32_rgba_cast(T c); 00103 template <typename T> f32vec4 f32_argb_cast(T c); 00104 template <typename T> f32vec4 f32_bgra_cast(T c); 00105 template <typename T> f32vec4 f32_abgr_cast(T c); 00106 00107 template <typename T> f64 f64_channel_cast(T a); 00108 00109 template <typename T> f64vec3 f64_rgbx_cast(T c); 00110 template <typename T> f64vec3 f64_xrgb_cast(T c); 00111 template <typename T> f64vec3 f64_bgrx_cast(T c); 00112 template <typename T> f64vec3 f64_xbgr_cast(T c); 00113 00114 template <typename T> f64vec4 f64_rgba_cast(T c); 00115 template <typename T> f64vec4 f64_argb_cast(T c); 00116 template <typename T> f64vec4 f64_bgra_cast(T c); 00117 template <typename T> f64vec4 f64_abgr_cast(T c); 00118 00120 }//namespace glm 00121 00122 #include "color_cast.inl" 00123 00124 #endif//GLM_GTX_color_cast