Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / Tuto_Image_Cuda / src / cpp / core / 01_Vague_smart / moo / host / Vague.cu
1 #include <iostream>\r
2 #include <assert.h>\r
3 \r
4 #include "Vague.h"\r
5 #include "Device.h"\r
6 #include "MathTools.h"\r
7 \r
8 using std::cout;\r
9 using std::endl;\r
10 \r
11 /*----------------------------------------------------------------------*\\r
12  |*                     Declaration                                     *|\r
13  \*---------------------------------------------------------------------*/\r
14 \r
15 /*--------------------------------------*\\r
16  |*             Imported                *|\r
17  \*-------------------------------------*/\r
18 \r
19 extern __global__ void vague(uchar4* ptrDevPixels,int w, int h,float t);\r
20 \r
21 /*--------------------------------------*\\r
22  |*             Public                  *|\r
23  \*-------------------------------------*/\r
24 \r
25 /*--------------------------------------*\\r
26  |*             Private                 *|\r
27  \*-------------------------------------*/\r
28 \r
29 /*----------------------------------------------------------------------*\\r
30  |*                     Implementation                                  *|\r
31  \*---------------------------------------------------------------------*/\r
32 \r
33 /*--------------------------------------*\\r
34  |*             Public                  *|\r
35  \*-------------------------------------*/\r
36 \r
37 /*-------------------------*\\r
38  |*     Constructeur        *|\r
39  \*-------------------------*/\r
40 \r
41 Vague::Vague(int w, int h,float dt)\r
42     {\r
43     // Inputs\r
44     this->w = w;\r
45     this->h = h;\r
46     this->dt=dt;\r
47 \r
48     // Tools\r
49     this->dg = dim3(8, 8, 1); // disons a optimiser\r
50     this->db = dim3(16, 16, 1); // disons a optimiser\r
51     this->t=0;\r
52 \r
53     //Outputs\r
54     this->title="[API Image Cuda] : Vague CUDA";\r
55 \r
56     // Check:\r
57     //print(dg, db);\r
58     Device::assertDim(dg, db);\r
59     assert(w== h);\r
60 \r
61     cout << endl<<"[CBI] Vague dt =" << dt;\r
62     }\r
63 \r
64 Vague::~Vague()\r
65     {\r
66     // rien\r
67     }\r
68 \r
69 /*-------------------------*\\r
70  |*     Methode             *|\r
71  \*-------------------------*/\r
72 \r
73 /**\r
74  * Override\r
75  * Call periodicly by the API\r
76  */\r
77 void Vague::animationStep()\r
78     {\r
79     t+=dt;\r
80     }\r
81 \r
82 /**\r
83  * Override\r
84  */\r
85 void Vague::runGPU(uchar4* ptrDevPixels)\r
86     {\r
87     vague<<<dg,db>>>(ptrDevPixels,w,h,t);\r
88     }\r
89 \r
90 /*--------------*\\r
91  |*     get      *|\r
92  \*--------------*/\r
93 \r
94 /**\r
95  * Override\r
96  */\r
97 float Vague::getT(void)\r
98     {\r
99     return t;\r
100     }\r
101 \r
102 /**\r
103  * Override\r
104  */\r
105 int Vague::getW(void)\r
106     {\r
107     return w;\r
108     }\r
109 \r
110 /**\r
111  * Override\r
112  */\r
113 int Vague::getH(void)\r
114     {\r
115     return  h;\r
116     }\r
117 \r
118 /**\r
119  * Override\r
120  */\r
121 string Vague::getTitle(void)\r
122     {\r
123     return title;\r
124     }\r
125 \r
126 /*--------------------------------------*\\r
127  |*             Private                 *|\r
128  \*-------------------------------------*/\r
129 \r
130 /*----------------------------------------------------------------------*\\r
131  |*                     End                                             *|\r
132  \*---------------------------------------------------------------------*/\r
133 \r