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{ 00026 namespace ocl_type 00027 { 00029 // Scalar types 00030 00033 00034 typedef detail::int8 cl_char; 00035 typedef detail::int16 cl_short; 00036 typedef detail::int32 cl_int; 00037 typedef detail::int64 cl_long; 00038 00039 typedef detail::uint8 cl_uchar; 00040 typedef detail::uint16 cl_ushort; 00041 typedef detail::uint32 cl_uint; 00042 typedef detail::uint64 cl_ulong; 00043 00044 typedef detail::float16 cl_half; 00045 typedef detail::float32 cl_float; 00046 00047 00048 typedef detail::int8 cl_char1; 00049 typedef detail::int16 cl_short1; 00050 typedef detail::int32 cl_int1; 00051 typedef detail::int64 cl_long1; 00052 00053 typedef detail::uint8 cl_uchar1; 00054 typedef detail::uint16 cl_ushort1; 00055 typedef detail::uint32 cl_uint1; 00056 typedef detail::uint64 cl_ulong1; 00057 00058 //typedef detail::float16 cl_half1; //!< \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension) 00059 typedef detail::float32 cl_float1; 00060 00061 00062 typedef detail::tvec2<detail::int8> cl_char2; 00063 typedef detail::tvec2<detail::int16> cl_short2; 00064 typedef detail::tvec2<detail::int32> cl_int2; 00065 typedef detail::tvec2<detail::int64> cl_long2; 00066 00067 typedef detail::tvec2<detail::uint8> cl_uchar2; 00068 typedef detail::tvec2<detail::uint16> cl_ushort2; 00069 typedef detail::tvec2<detail::uint32> cl_uint2; 00070 typedef detail::tvec2<detail::uint64> cl_ulong2; 00071 00072 //typedef detail::tvec2<detail::float16> cl_half2; //!< \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension) 00073 typedef detail::tvec2<detail::float32> cl_float2; 00074 00075 00076 typedef detail::tvec3<detail::int8> cl_char3; 00077 typedef detail::tvec3<detail::int16> cl_short3; 00078 typedef detail::tvec3<detail::int32> cl_int3; 00079 typedef detail::tvec3<detail::int64> cl_long3; 00080 00081 typedef detail::tvec3<detail::uint8> cl_uchar3; 00082 typedef detail::tvec3<detail::uint16> cl_ushort3; 00083 typedef detail::tvec3<detail::uint32> cl_uint3; 00084 typedef detail::tvec3<detail::uint64> cl_ulong3; 00085 00086 //typedef detail::tvec3<detail::float16> cl_half3; //!< \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension) 00087 typedef detail::tvec3<detail::float32> cl_float3; 00088 00089 00090 typedef detail::tvec4<detail::int8> cl_char4; 00091 typedef detail::tvec4<detail::int16> cl_short4; 00092 typedef detail::tvec4<detail::int32> cl_int4; 00093 typedef detail::tvec4<detail::int64> cl_long4; 00094 typedef detail::tvec4<detail::uint8> cl_uchar4; 00095 typedef detail::tvec4<detail::uint16> cl_ushort4; 00096 typedef detail::tvec4<detail::uint32> cl_uint4; 00097 typedef detail::tvec4<detail::uint64> cl_ulong4; 00098 00099 //typedef detail::tvec4<detail::float16> cl_half4; //!< \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension) 00100 typedef detail::tvec4<detail::float32> cl_float4; 00101 00103 00104 }//namespace ocl_type 00105 }//namespace gtx 00106 }//namespace glm 00107 00108 #include "ocl_type.inl" 00109 00110 namespace glm{using namespace gtx::ocl_type;} 00111 00112 #endif//glm_gtx_ocl_type