-__global__
-void rayTracing(uchar4* ptrDevPixels, int w, int h, float t)
+#if CURRENT_MEMORY_MODEL == MEMORY_MODEL_CONSTANT
+// Les spheres dans la constant memory.
+__constant__ Sphere CONST_SPHERES[NB_SPHERES];
+
+ConstantMemoryLink constantMemorySpheresLink()
+ {
+ float* ptrDevTabData;
+ size_t sizeAll = NB_SPHERES * sizeof(Sphere);
+ HANDLE_ERROR(cudaGetSymbolAddress((void**)&ptrDevTabData, CONST_SPHERES));
+ ConstantMemoryLink cmLink =
+ {
+ (void**)ptrDevTabData, NB_SPHERES, sizeAll
+ };
+ return cmLink;
+ }
+#endif
+
+#if CURRENT_MEMORY_MODEL == MEMORY_MODEL_GLOBAL or CURRENT_MEMORY_MODEL == MEMORY_MODEL_SHARED
+ __global__
+ void rayTracing(uchar4* ptrDevPixels, const Sphere* ptrDevSpheres, int w, int h, float t)
+#elif CURRENT_MEMORY_MODEL == MEMORY_MODEL_CONSTANT
+ __global__
+ void rayTracing(uchar4* ptrDevPixels, int w, int h, float t)
+#endif