22 #ifndef __optix_sizet_h__ 
   23 #define __optix_sizet_h__ 
   26   #include <sys/types.h> 
   32 #  define RT_SIZET_INLINE inline 
   35 #    define RT_SIZET_INLINE __inline 
   37 #    define RT_SIZET_INLINE static inline 
   45 #if defined(__x86_64) || defined(AMD64) || defined(_M_AMD64) 
   52   typedef struct __align__(16) size_t2 {
 
   54     RT_HOSTDEVICE size_t2() { }
 
   55     RT_HOSTDEVICE 
explicit size_t2( 
size_t s ) { x = y = s; }
 
   56     RT_HOSTDEVICE size_t2( uint2 u ) { x = u.x; y = u.y; }
 
   61   typedef struct size_t3 {
 
   63     RT_HOSTDEVICE size_t3() { }
 
   64     RT_HOSTDEVICE 
explicit size_t3( 
size_t s ) { x = y = z = s; }
 
   65     RT_HOSTDEVICE size_t3( uint3 u ) { x = u.x; y = u.y; z = u.z; }
 
   71   typedef struct __align__(16) size_t4 {
 
   73     RT_HOSTDEVICE size_t4() { }
 
   74     RT_HOSTDEVICE 
explicit size_t4( 
size_t s ) { x = y = z = w = s; }
 
   75     RT_HOSTDEVICE size_t4( uint4 u ) { x = u.x; y = u.y; z = u.z; w = u.w; }
 
   80   RT_SIZET_INLINE RT_HOSTDEVICE size_t2 make_size_t2( 
size_t x, 
size_t y ) {
 
   86   RT_SIZET_INLINE RT_HOSTDEVICE size_t3 make_size_t3( 
size_t x, 
size_t y, 
size_t z ) {
 
   93   RT_SIZET_INLINE RT_HOSTDEVICE size_t4 make_size_t4( 
size_t x, 
size_t y, 
size_t z, 
size_t w ) {
 
  104   RT_SIZET_INLINE RT_HOSTDEVICE size_t4 make_size_t4(
unsigned int s)
 
  106       return make_size_t4(s, s, s, s);
 
  108   RT_SIZET_INLINE RT_HOSTDEVICE size_t3 make_size_t3(
unsigned int s)
 
  110       return make_size_t3(s, s, s);
 
  112   RT_SIZET_INLINE RT_HOSTDEVICE size_t2 make_size_t2(
unsigned int s)
 
  114       return make_size_t2(s, s);
 
  116   RT_SIZET_INLINE RT_HOSTDEVICE size_t3 make_size_t3(size_t4 st)
 
  118       return make_size_t3(st.x, st.y, st.z);
 
  120   RT_SIZET_INLINE RT_HOSTDEVICE size_t2 make_size_t2(size_t4 st)
 
  122       return make_size_t2(st.x, st.y);
 
  124   RT_SIZET_INLINE RT_HOSTDEVICE 
size_t make_size_t(size_t4 v0)
 
  126       return (
size_t) v0.x;
 
  129   RT_SIZET_INLINE RT_HOSTDEVICE size_t4 make_size_t4(uint4 s)
 
  131       return make_size_t4(s.x, s.y, s.z, s.w);
 
  134   RT_SIZET_INLINE RT_HOSTDEVICE float2 make_float2(size_t2 st)
 
  144   typedef uint1 size_t1;
 
  145   typedef uint2 size_t2;
 
  146   typedef uint3 size_t3;
 
  147   typedef uint4 size_t4;
 
  148   #define make_size_t4 make_uint4 
  149   #define make_size_t3 make_uint3 
  150   #define make_size_t2 make_uint2 
  151   #define make_size_t1 make_uint1 
  158 #undef RT_SIZET_INLINE 
OptiX public API declarations.