Ajout du support du multi-GPU pour Mandelbrot.
[GPU.git] / WCudaMSE / Student_Cuda_Image / src / cpp / core / mainGL.cpp
index 9f1b84a..b15ca7b 100755 (executable)
@@ -13,37 +13,45 @@ using namespace std;
 #include "FractalProvider.h"\r
 #include "NewtonProvider.h"\r
 #include "HeatTransfertProvider.h"\r
+#include "RayTracingProvider.h"\r
 \r
 template <class TOutput, class TProvider>\r
 class Viewer\r
     {\r
     private:\r
-        TOutput* ptrProvider;\r
+        TOutput* ptrOutput;\r
         GLUTImageViewers viewer;\r
 \r
     public:\r
         Viewer(bool isAnimation, bool isSelection, int pxFrame, int pyFrame):\r
-            ptrProvider(TProvider::createGL()),\r
-            viewer(ptrProvider, isAnimation, isSelection, pxFrame, pyFrame)\r
+        ptrOutput(TProvider::createGL()),\r
+            viewer(ptrOutput, isAnimation, isSelection, pxFrame, pyFrame)\r
+            {\r
+            }\r
+\r
+        Viewer(TOutput* output, bool isAnimation, bool isSelection, int pxFrame, int pyFrame):\r
+            ptrOutput(output),\r
+            viewer(ptrOutput, isAnimation, isSelection, pxFrame, pyFrame)\r
             {\r
             }\r
 \r
         ~Viewer()\r
             {\r
-            delete this->ptrProvider;\r
+            delete this->ptrOutput;\r
             }\r
     };\r
 \r
 int mainGL(void)\r
     {\r
-    //Viewer<Rippling0Image, Rippling0Provider> rippling0(true, true, 10, 10);\r
-    //Viewer<Image, RipplingProvider> rippling0(true, true, 10, 10);\r
-    //Viewer<ImageFonctionel, MandelbrotProvider> fractalMandelbrot(true, true, 20, 20);\r
-    //Viewer<ImageFonctionel, JuliaProvider> fractalJulia(true, true, 30, 30);\r
-    Viewer<ImageFonctionel, NewtonProvider> newtown(true, true, 20, 20);\r
-    //Viewer<Image, HeatTransfertProvider> heatTransfert(true, false, 20, 20);\r
-\r
-    GLUTImageViewers::runALL(); // Bloquant, Tant qu'une fenetre est ouverte\r
+    // Viewer<Rippling0Image, Rippling0Provider> rippling0(true, true, 10, 10);\r
+    // Viewer<Image, RipplingProvider> rippling0(true, true, 10, 10);\r
+    Viewer<ImageFonctionel, MandelbrotProvider> fractalMandelbrot(MandelbrotProvider::createGL(true), true, true, 20, 20);\r
+    // Viewer<ImageFonctionel, JuliaProvider> fractalJulia(true, true, 30, 30);\r
+    // Viewer<ImageFonctionel, NewtonProvider> newtown(true, true, 20, 20);\r
+    // Viewer<Image, HeatTransfertProvider> heatTransfert(true, false, 20, 20);\r
+    // Viewer<ImageFonctionel, RayTracingProvider> rayTracing(true, true, 20, 20);\r
+\r
+    GLUTImageViewers::runALL(); // Bloquant, Tant qu'une fenetre est ouverte.\r
 \r
     return EXIT_SUCCESS;\r
     }\r