3 #include "Indice2D.h"
\r
4 #include "IndiceTools.h"
\r
5 #include "DomaineMath.h"
\r
6 #include "cudaTools.h"
\r
9 #include "FractalMath.h"
\r
14 /*----------------------------------------------------------------------*\
\r
16 \*---------------------------------------------------------------------*/
\r
18 /*--------------------------------------*\
\r
20 \*-------------------------------------*/
\r
22 /*--------------------------------------*\
\r
24 \*-------------------------------------*/
\r
26 __global__ void fractal(uchar4* ptrDevPixels, int w, int h, DomaineMath domaineMath, int n, float t);
\r
28 /*--------------------------------------*\
\r
30 \*-------------------------------------*/
\r
32 /*----------------------------------------------------------------------*\
\r
33 |* Implementation *|
\r
34 \*---------------------------------------------------------------------*/
\r
36 /*--------------------------------------*\
\r
38 \*-------------------------------------*/
\r
40 /*--------------------------------------*\
\r
42 \*-------------------------------------*/
\r
44 __global__ void fractal(uchar4* ptrDevPixels, int w, int h, DomaineMath domaineMath, int n, float t)
\r
46 FractalMath fractalMath(n);
\r
48 const int TID = Indice2D::tid();
\r
49 const int NB_THREAD = Indice2D::nbThread();
\r
50 const int WH = w * h;
\r
53 color.z = 255; // Par défaut, l'image est opaque.
\r
61 IndiceTools::toIJ(s, w, &pixelI, &pixelJ); // update (pixelI, pixelJ)
\r
63 // (i,j) domaine ecran
\r
64 // (x,y) domaine math
\r
65 domaineMath.toXY(pixelI, pixelJ, &x, &y); // (i,j) -> (x,y)
\r
67 fractalMath.colorXY(&color,x, y, t); // update color
\r
69 ptrDevPixels[s] = color;
\r
75 /*----------------------------------------------------------------------*\
\r
77 \*---------------------------------------------------------------------*/
\r