Ajout du support du multi-GPU pour Mandelbrot.
[GPU.git] / WCudaMSE / Student_Cuda_Image / src / cpp / core / 02_Mandelbrot_Julia / moo / host / Fractal.h
index 5ad7b83..41813e2 100755 (executable)
@@ -21,8 +21,6 @@ class Fractal : public AnimableFonctionel_I
         int getH() /*override*/;\r
         DomaineMath* getDomaineMathInit() /*override*/;\r
 \r
-        string getTitle(void) /*override*/;\r
-\r
     protected:\r
         // Inputs\r
         const int w;\r
@@ -33,25 +31,32 @@ class Fractal : public AnimableFonctionel_I
         const dim3 db;\r
 \r
         DomaineMath* ptrDomaineMathInit;\r
-\r
-        // Outputs\r
-        const string title;\r
     };\r
 \r
 class FractalMandelbrot : public Fractal\r
     {\r
     public:\r
-        FractalMandelbrot(int w, int h, int dn);\r
+        FractalMandelbrot(int w, int h, int dn, bool multiGPU = false);\r
         void animationStep();\r
 \r
         std::vector<std::string> getNames();\r
         void getValues(float* values);\r
 \r
+        std::string getTitle();\r
+\r
     private:\r
-        void runGPU(uchar4* ptrDevPixels, const DomaineMath& domaineMath) /*override*/;\r
+        void runGPU(uchar4* ptrDevPixels, const DomaineMath& domaineMath);\r
 \r
         VariateurI variateurAnimationN;\r
         int n;\r
+\r
+        string title;\r
+\r
+        // Utilisé uniquement dans le cadre du multi-GPU.\r
+        bool multiGPU;\r
+        uchar4** ptrDevPixelsMultGPU; // La mémoire alloué pour les GPU autres que le premier\r
+        int hFirstDevice; // Hauteur de l'image à traiter par le premier GPU.\r
+        int hDevices; // Hauteur de l'image à traiter par les autres GPU.\r
     };\r
 \r
 class FractalJulia : public Fractal\r
@@ -63,8 +68,10 @@ class FractalJulia : public Fractal
         std::vector<std::string> getNames();\r
         void getValues(float* values);\r
 \r
+        std::string getTitle();\r
+\r
     private:\r
-        void runGPU(uchar4* ptrDevPixels, const DomaineMath& domaineMath) /*override*/;\r
+        void runGPU(uchar4* ptrDevPixels, const DomaineMath& domaineMath);\r
 \r
         const int n;\r
 \r