Ajout du support du multi-GPU pour Mandelbrot.
[GPU.git] / WCudaMSE / Student_Cuda_Image / src / cpp / core / 02_Mandelbrot_Julia / moo / device / FractalDevice.cu
index a98ed36..1b326db 100755 (executable)
 using std::cout;\r
 using std::endl;\r
 \r
-__device__ void fractal(uchar4* ptrDevPixels, int w, int h, const DomaineMath& domaineMath, int n, const FractalMath& fractalMath)\r
+__device__ void fractal(uchar4* ptrDevPixels, int w, int hFrom, int hTo, const DomaineMath& domaineMath, int n, const FractalMath& fractalMath)\r
     {\r
     const int TID = Indice2D::tid();\r
     const int NB_THREAD = Indice2D::nbThread();\r
-    const int WH = w * h;\r
+    const int WH = w * (hTo - hFrom);\r
 \r
     uchar4 color;\r
     color.z = 255; // Par défaut, l'image est opaque.\r
@@ -31,7 +31,7 @@ __device__ void fractal(uchar4* ptrDevPixels, int w, int h, const DomaineMath& d
 \r
         // (i,j) domaine écran\r
         // (x,y) domaine math\r
-        domaineMath.toXY(pixelI, pixelJ, &x, &y); //  (i,j) -> (x,y)\r
+        domaineMath.toXY(pixelI + hFrom, pixelJ, &x, &y); //  (i,j) -> (x,y)\r
 \r
         fractalMath.colorXY(&color, x, y);\r
 \r
@@ -41,15 +41,15 @@ __device__ void fractal(uchar4* ptrDevPixels, int w, int h, const DomaineMath& d
         }\r
     }\r
 \r
-__global__ void fractalMandelbrot(uchar4* ptrDevPixels, int w, int h, DomaineMath domaineMath, int n)\r
+__global__ void fractalMandelbrot(uchar4* ptrDevPixels, int w, int hFrom, int hTo, DomaineMath domaineMath, int n)\r
     {\r
     FractalMandelbrotMath fractalMath(n);\r
-    fractal(ptrDevPixels, w, h, domaineMath, n, fractalMath);\r
+    fractal(ptrDevPixels, w, hFrom, hTo, domaineMath, n, fractalMath);\r
     }\r
 \r
 __global__ void fractalJulia(uchar4* ptrDevPixels, int w, int h, DomaineMath domaineMath, int n, float c_r, float c_i)\r
     {\r
     FractalJuliaMath fractalMath(n, c_r, c_i);\r
-    fractal(ptrDevPixels, w, h, domaineMath, n, fractalMath);\r
+    fractal(ptrDevPixels, w, 0, h, domaineMath, n, fractalMath);\r
     }\r
 \r