Clean-up.
[GPU.git] / WCudaMSE / Tuto_Image_Cuda / src / cpp / core / 00_Vague_warmup / 02_cuda / vague0.cu
1 #include <iostream>\r
2 #include <stdlib.h>\r
3 \r
4 #include "Indice2D.h"\r
5 #include "IndiceTools.h"\r
6 #include "cudaTools.h"\r
7 #include "Device.h"\r
8 \r
9 #include "Vague0Math.h"\r
10 \r
11 using std::cout;\r
12 using std::endl;\r
13 \r
14 /*----------------------------------------------------------------------*\\r
15  |*                     Declaration                                     *|\r
16  \*---------------------------------------------------------------------*/\r
17 \r
18 /*--------------------------------------*\\r
19  |*             Imported                *|\r
20  \*-------------------------------------*/\r
21 \r
22 /*--------------------------------------*\\r
23  |*             Public                  *|\r
24  \*-------------------------------------*/\r
25 \r
26 /*--------------------------------------*\\r
27  |*             Private                 *|\r
28  \*-------------------------------------*/\r
29 \r
30 static __global__ void vague0(uchar4* ptrDevPixels,int w, int h,float t);\r
31 \r
32 /*----------------------------------------------------------------------*\\r
33  |*                     Implementation                                  *|\r
34  \*---------------------------------------------------------------------*/\r
35 \r
36 /*--------------------------------------*\\r
37  |*             Public                  *|\r
38  \*-------------------------------------*/\r
39 \r
40 void launchKernelVague0(uchar4* ptrDevPixels, int w, int h, float t)\r
41     {\r
42     dim3 dg = dim3(8, 8, 1); // disons, a optimiser !!\r
43     dim3 db = dim3(16, 16, 1); // disons, a optimiser !!\r
44 \r
45     //Device::print(dg, db);\r
46     Device::checkDimError(dg,db);\r
47 \r
48     vague0<<<dg,db>>>(ptrDevPixels,w,h,t);\r
49     Device::checkKernelError("vague0");\r
50     }\r
51 \r
52 /*--------------------------------------*\\r
53  |*             Private                 *|\r
54  \*-------------------------------------*/\r
55 \r
56 __global__ void vague0(uchar4* ptrDevPixels, int w, int h, float t)\r
57     {\r
58     Vague0Math vague0Math = Vague0Math(w, h);\r
59 \r
60     const int TID = Indice2D::tid();\r
61     const int NB_THREAD = Indice2D::nbThread();\r
62 \r
63     const int WH=w*h;\r
64 \r
65     uchar4 color;\r
66 \r
67     int pixelI;\r
68     int pixelJ;\r
69 \r
70     int s = TID;\r
71     while (s < WH)\r
72         {\r
73         IndiceTools::toIJ(s, w, &pixelI, &pixelJ); // update (pixelI, pixelJ)\r
74 \r
75         vague0Math.colorIJ(&color,pixelI, pixelJ, t);   // update color\r
76         ptrDevPixels[s] = color;\r
77 \r
78         s += NB_THREAD;\r
79         }\r
80     }\r
81 \r
82 \r
83 /*----------------------------------------------------------------------*\\r
84  |*                     End                                             *|\r
85  \*---------------------------------------------------------------------*/\r
86 \r