4 #include "Indice2D.h"
\r
5 #include "IndiceTools.h"
\r
6 #include "cudaTools.h"
\r
9 #include "Rippling0Math.h"
\r
14 /*----------------------------------------------------------------------*\
\r
16 \*---------------------------------------------------------------------*/
\r
18 /*--------------------------------------*\
\r
20 \*-------------------------------------*/
\r
22 /*--------------------------------------*\
\r
24 \*-------------------------------------*/
\r
28 /*--------------------------------------*\
\r
30 \*-------------------------------------*/
\r
32 static __global__ void rippling0(uchar4* ptrDevPixels,int w, int h,float t);
\r
34 /*----------------------------------------------------------------------*\
\r
35 |* Implementation *|
\r
36 \*---------------------------------------------------------------------*/
\r
38 /*--------------------------------------*\
\r
40 \*-------------------------------------*/
\r
42 void launchKernelRippling0(uchar4* ptrDevPixels, int w, int h, float t)
\r
44 dim3 dg = dim3(4, 4, 1); // disons, a optimiser
\r
45 dim3 db = dim3(8, 8, 1); // disons, a optimiser
\r
47 //Device::print(dg, db);
\r
48 Device::checkDimError(dg,db);
\r
50 rippling0<<<dg,db>>>(ptrDevPixels,w,h,t);
\r
51 Device::checkKernelError("rippling0");
\r
54 /*--------------------------------------*\
\r
56 \*-------------------------------------*/
\r
58 __global__ void rippling0(uchar4* ptrDevPixels, int w, int h, float t)
\r
60 Rippling0Math rippling0Math(w, h);
\r
62 const int TID = Indice2D::tid();
\r
63 const int NB_THREAD = Indice2D::nbThread();
\r
68 color.w = 255; // alpha
\r
76 IndiceTools::toIJ(s, w, &pixelI, &pixelJ); // update (pixelI, pixelJ)
\r
78 rippling0Math.color(pixelI, pixelJ, t, &color); // update color
\r
79 ptrDevPixels[s] = color;
\r
88 /*----------------------------------------------------------------------*\
\r
90 \*---------------------------------------------------------------------*/
\r