Début du TP convolution. Pour l'instant uniquement lecture d'une vidéo.
[GPU.git] / WCudaMSE / Student_Cuda_Image / src / cpp / core / 06_Convolution / ImageConvolutionCuda.cpp
diff --git a/WCudaMSE/Student_Cuda_Image/src/cpp/core/06_Convolution/ImageConvolutionCuda.cpp b/WCudaMSE/Student_Cuda_Image/src/cpp/core/06_Convolution/ImageConvolutionCuda.cpp
new file mode 100644 (file)
index 0000000..ffc30a1
--- /dev/null
@@ -0,0 +1,22 @@
+#include "ImageConvolutionCuda.h"
+
+ImageConvolutionCuda::ImageConvolutionCuda(Animable_I* ptrAnimable, CaptureVideo* captureur, ColorRGB_01* ptrColorTitreRGB) :
+    Image(ptrAnimable, ptrColorTitreRGB),
+    captureur(captureur)
+    {
+
+    //Mat matImage = captureur.capturer(); // capture une image seulement ( Ã  utiliser en boucle!)
+    //uchar4* image = CaptureVideo::castToUChar4(&matImage); // format cuda
+    }
+
+ImageConvolutionCuda::~ImageConvolutionCuda()
+    {
+    delete this->captureur;
+    }
+
+void ImageConvolutionCuda::fillImageGL(uchar4* ptrDevImageGL, int w, int h)
+    {
+    Mat matImage = this->captureur->capturer(); // capture une image seulement ( Ã  utiliser en boucle!)
+    uchar4* image = CaptureVideo::castToUChar4(&matImage); // format cuda
+    HANDLE_ERROR(cudaMemcpy(ptrDevImageGL, image, sizeof(uchar4) * this->ptrAnimable->getW() * this->ptrAnimable->getH(), cudaMemcpyHostToDevice));
+    }