X-Git-Url: http://git.euphorik.ch/?p=GPU.git;a=blobdiff_plain;f=WCudaMSE%2FStudent_Cuda_Image%2Fsrc%2Fcpp%2Fcore%2F06_Convolution%2Fmoo%2Fdevice%2FConvolutionDevice.cu;fp=WCudaMSE%2FStudent_Cuda_Image%2Fsrc%2Fcpp%2Fcore%2F06_Convolution%2Fmoo%2Fdevice%2FConvolutionDevice.cu;h=640d8a9e5248336115910f84ce446347891d3881;hp=0000000000000000000000000000000000000000;hb=4182eb3a07b7143afb8ebebfe77e8ef8e8abc266;hpb=fd0031be0a39a5d902750affaff6322fcd5229b1 diff --git a/WCudaMSE/Student_Cuda_Image/src/cpp/core/06_Convolution/moo/device/ConvolutionDevice.cu b/WCudaMSE/Student_Cuda_Image/src/cpp/core/06_Convolution/moo/device/ConvolutionDevice.cu new file mode 100644 index 0000000..640d8a9 --- /dev/null +++ b/WCudaMSE/Student_Cuda_Image/src/cpp/core/06_Convolution/moo/device/ConvolutionDevice.cu @@ -0,0 +1,40 @@ +#include +#include +using namespace std; + +#include "Indice2D.h" +#include "IndiceTools.h" +#include "cudaTools.h" +#include "Device.h" + +#include "ConvolutionDevice.h" + +__global__ +void convolution(uchar4* ptrDevPixels, int w, int h, float t) + { + const int TID = Indice2D::tid(); + const int NB_THREAD = Indice2D::nbThread(); + const int WH = w * h; + + uchar4 color; + color.w = 255; // Par défaut, l'image est opaque. + + double x, y; + int pixelI, pixelJ; + + int s = TID; + while (s < WH) + { + IndiceTools::toIJ(s, w, &pixelI, &pixelJ); // update (pixelI, pixelJ) + + // (i,j) domaine écran. + // (x,y) domaine math. + // domaineMath.toXY(pixelI, pixelJ, &x, &y); // (i,j) -> (x,y). + + // newtonMath.colorXY(&color, x, y); + + ptrDevPixels[s] = color; + + s += NB_THREAD; + } + }