00001 00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) 00004 // Created : 2009-05-07 00005 // Updated : 2009-05-07 00006 // Licence : This source is under MIT License 00007 // File : glm/gtx/number_precision.hpp 00009 // Dependency: 00010 // - GLM core 00012 00013 #ifndef glm_gtx_ocl_type 00014 #define glm_gtx_ocl_type 00015 00016 // Dependency: 00017 #include "../glm.hpp" 00018 00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext)) 00020 # pragma message("GLM: GLM_GTX_ocl_type extension included") 00021 #endif 00022 00023 namespace glm{ 00024 namespace gtx{ 00025 namespace ocl_type 00026 { 00028 // Scalar types 00029 00032 00033 typedef detail::int8 cl_char; 00034 typedef detail::int16 cl_short; 00035 typedef detail::int32 cl_int; 00036 typedef detail::int64 cl_long; 00037 00038 typedef detail::uint8 cl_uchar; 00039 typedef detail::uint16 cl_ushort; 00040 typedef detail::uint32 cl_uint; 00041 typedef detail::uint64 cl_ulong; 00042 00043 typedef detail::float16 cl_half; 00044 typedef detail::float32 cl_float; 00045 00046 00047 typedef detail::int8 cl_char1; 00048 typedef detail::int16 cl_short1; 00049 typedef detail::int32 cl_int1; 00050 typedef detail::int64 cl_long1; 00051 00052 typedef detail::uint8 cl_uchar1; 00053 typedef detail::uint16 cl_ushort1; 00054 typedef detail::uint32 cl_uint1; 00055 typedef detail::uint64 cl_ulong1; 00056 00057 //typedef detail::float16 cl_half1; //!< \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension) 00058 typedef detail::float32 cl_float1; 00059 00060 00061 typedef detail::tvec2<detail::int8> cl_char2; 00062 typedef detail::tvec2<detail::int16> cl_short2; 00063 typedef detail::tvec2<detail::int32> cl_int2; 00064 typedef detail::tvec2<detail::int64> cl_long2; 00065 00066 typedef detail::tvec2<detail::uint8> cl_uchar2; 00067 typedef detail::tvec2<detail::uint16> cl_ushort2; 00068 typedef detail::tvec2<detail::uint32> cl_uint2; 00069 typedef detail::tvec2<detail::uint64> cl_ulong2; 00070 00071 //typedef detail::tvec2<detail::float16> cl_half2; //!< \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension) 00072 typedef detail::tvec2<detail::float32> cl_float2; 00073 00074 00075 typedef detail::tvec3<detail::int8> cl_char3; 00076 typedef detail::tvec3<detail::int16> cl_short3; 00077 typedef detail::tvec3<detail::int32> cl_int3; 00078 typedef detail::tvec3<detail::int64> cl_long3; 00079 00080 typedef detail::tvec3<detail::uint8> cl_uchar3; 00081 typedef detail::tvec3<detail::uint16> cl_ushort3; 00082 typedef detail::tvec3<detail::uint32> cl_uint3; 00083 typedef detail::tvec3<detail::uint64> cl_ulong3; 00084 00085 //typedef detail::tvec3<detail::float16> cl_half3; //!< \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension) 00086 typedef detail::tvec3<detail::float32> cl_float3; 00087 00088 00089 typedef detail::tvec4<detail::int8> cl_char4; 00090 typedef detail::tvec4<detail::int16> cl_short4; 00091 typedef detail::tvec4<detail::int32> cl_int4; 00092 typedef detail::tvec4<detail::int64> cl_long4; 00093 typedef detail::tvec4<detail::uint8> cl_uchar4; 00094 typedef detail::tvec4<detail::uint16> cl_ushort4; 00095 typedef detail::tvec4<detail::uint32> cl_uint4; 00096 typedef detail::tvec4<detail::uint64> cl_ulong4; 00097 00098 //typedef detail::tvec4<detail::float16> cl_half4; //!< \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension) 00099 typedef detail::tvec4<detail::float32> cl_float4; 00100 00102 }//namespace ocl_type 00103 }//namespace gtx 00104 }//namespace glm 00105 00106 #include "ocl_type.inl" 00107 00108 namespace glm{using namespace gtx::ocl_type;} 00109 00110 #endif//glm_gtx_ocl_type