Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / Tuto_Image_Cuda / src / cpp / core / 01_Vague_smart / moo / host / Vague.cu
diff --git a/WCudaMSE/Tuto_Image_Cuda/src/cpp/core/01_Vague_smart/moo/host/Vague.cu b/WCudaMSE/Tuto_Image_Cuda/src/cpp/core/01_Vague_smart/moo/host/Vague.cu
new file mode 100755 (executable)
index 0000000..db72268
--- /dev/null
@@ -0,0 +1,133 @@
+#include <iostream>\r
+#include <assert.h>\r
+\r
+#include "Vague.h"\r
+#include "Device.h"\r
+#include "MathTools.h"\r
+\r
+using std::cout;\r
+using std::endl;\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    Declaration                                     *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |*            Imported                *|\r
+ \*-------------------------------------*/\r
+\r
+extern __global__ void vague(uchar4* ptrDevPixels,int w, int h,float t);\r
+\r
+/*--------------------------------------*\\r
+ |*            Public                  *|\r
+ \*-------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |*            Private                 *|\r
+ \*-------------------------------------*/\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    Implementation                                  *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |*            Public                  *|\r
+ \*-------------------------------------*/\r
+\r
+/*-------------------------*\\r
+ |*    Constructeur        *|\r
+ \*-------------------------*/\r
+\r
+Vague::Vague(int w, int h,float dt)\r
+    {\r
+    // Inputs\r
+    this->w = w;\r
+    this->h = h;\r
+    this->dt=dt;\r
+\r
+    // Tools\r
+    this->dg = dim3(8, 8, 1); // disons a optimiser\r
+    this->db = dim3(16, 16, 1); // disons a optimiser\r
+    this->t=0;\r
+\r
+    //Outputs\r
+    this->title="[API Image Cuda] : Vague CUDA";\r
+\r
+    // Check:\r
+    //print(dg, db);\r
+    Device::assertDim(dg, db);\r
+    assert(w== h);\r
+\r
+    cout << endl<<"[CBI] Vague dt =" << dt;\r
+    }\r
+\r
+Vague::~Vague()\r
+    {\r
+    // rien\r
+    }\r
+\r
+/*-------------------------*\\r
+ |*    Methode             *|\r
+ \*-------------------------*/\r
+\r
+/**\r
+ * Override\r
+ * Call periodicly by the API\r
+ */\r
+void Vague::animationStep()\r
+    {\r
+    t+=dt;\r
+    }\r
+\r
+/**\r
+ * Override\r
+ */\r
+void Vague::runGPU(uchar4* ptrDevPixels)\r
+    {\r
+    vague<<<dg,db>>>(ptrDevPixels,w,h,t);\r
+    }\r
+\r
+/*--------------*\\r
+ |*    get      *|\r
+ \*--------------*/\r
+\r
+/**\r
+ * Override\r
+ */\r
+float Vague::getT(void)\r
+    {\r
+    return t;\r
+    }\r
+\r
+/**\r
+ * Override\r
+ */\r
+int Vague::getW(void)\r
+    {\r
+    return w;\r
+    }\r
+\r
+/**\r
+ * Override\r
+ */\r
+int Vague::getH(void)\r
+    {\r
+    return  h;\r
+    }\r
+\r
+/**\r
+ * Override\r
+ */\r
+string Vague::getTitle(void)\r
+    {\r
+    return title;\r
+    }\r
+\r
+/*--------------------------------------*\\r
+ |*            Private                 *|\r
+ \*-------------------------------------*/\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    End                                             *|\r
+ \*---------------------------------------------------------------------*/\r
+\r