--- /dev/null
+#include <iostream>\r
+#include "cudaTools.h"\r
+#include "Device.h"\r
+#include "MathTools.h"\r
+\r
+#include "Chronos.h"\r
+\r
+using std::cout;\r
+using std::endl;\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* Declaration *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |* Imported *|\r
+ \*-------------------------------------*/\r
+\r
+extern void launchKernelRippling0(uchar4* ptrDevPixels, int w, int h, float t);\r
+\r
+/*--------------------------------------*\\r
+ |* Public *|\r
+ \*-------------------------------------*/\r
+\r
+int rippling0FreeGL(int itmax);\r
+\r
+/*--------------------------------------*\\r
+ |* Private *|\r
+ \*-------------------------------------*/\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* Implementation *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |* Public *|\r
+ \*-------------------------------------*/\r
+\r
+/**\r
+ * Hyp: itmax suffisamment grand pour que timeElapse soit significatif\r
+ */\r
+int rippling0FreeGL(int itmax)\r
+ {\r
+ cout<<"\n[Rippling0] : FreeGL running ..."<<endl;\r
+\r
+ int h = 16 * 60;\r
+ int w = h;\r
+\r
+ uchar4* ptrDevImage;\r
+ size_t size = w * h * sizeof(uchar4);\r
+ HANDLE_ERROR(cudaMalloc((void**) &ptrDevImage, size));\r
+ HANDLE_ERROR(cudaMemset(ptrDevImage, 0, size));\r
+\r
+ int i = 0;\r
+ float t = 0;\r
+ float dt = 2 * PI / 10;\r
+ Chronos chrono;\r
+\r
+ while (i < itmax)\r
+ {\r
+ launchKernelRippling0(ptrDevImage, w, h, t);\r
+ Device::checkKernelError("Rippling0");\r
+ Device::synchronize();\r
+\r
+ t += dt;\r
+ i++;\r
+ }\r
+\r
+ chrono.stop();\r
+ HANDLE_ERROR(cudaFree(ptrDevImage));\r
+\r
+ double timeElapseS = chrono.getDeltaTime();\r
+ int fps = itmax / timeElapseS;\r
+\r
+ cout << "fps : "<<fps<<endl;\r
+\r
+ return fps;\r
+ }\r
+\r
+/*--------------------------------------*\\r
+ |* Private *|\r
+ \*-------------------------------------*/\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* End *|\r
+ \*---------------------------------------------------------------------*/\r
+\r