ecda2fddc5a247b00d6792e11123f2ec6a242d70
[GPU.git] / WCudaMSE / Student_Cuda_Image / src / cpp / core / mainGL.cpp
1 #include <iostream>
2 #include <stdlib.h>
3 #include <string.h>
4 using namespace std;
5
6 #include "GLUTImageViewers.h"
7
8 #include "Device.h"
9 #include "cudaTools.h"
10
11 #include "Rippling0Provider.h"
12 #include "RipplingProvider.h"
13 #include "FractalProvider.h"
14 #include "NewtonProvider.h"
15 #include "HeatTransfertProvider.h"
16 #include "RayTracingProvider.h"
17
18 template <class TOutput, class TProvider>
19 class Viewer
20 {
21 private:
22 TOutput* ptrProvider;
23 GLUTImageViewers viewer;
24
25 public:
26 Viewer(bool isAnimation, bool isSelection, int pxFrame, int pyFrame):
27 ptrProvider(TProvider::createGL()),
28 viewer(ptrProvider, isAnimation, isSelection, pxFrame, pyFrame)
29 {
30 }
31
32 ~Viewer()
33 {
34 delete this->ptrProvider;
35 }
36 };
37
38 int mainGL(void)
39 {
40 // Viewer<Rippling0Image, Rippling0Provider> rippling0(true, true, 10, 10);
41 // Viewer<Image, RipplingProvider> rippling0(true, true, 10, 10);
42 // Viewer<ImageFonctionel, MandelbrotProvider> fractalMandelbrot(true, true, 20, 20);
43 // Viewer<ImageFonctionel, JuliaProvider> fractalJulia(true, true, 30, 30);
44 Viewer<ImageFonctionel, NewtonProvider> newtown(true, true, 20, 20);
45 // Viewer<Image, HeatTransfertProvider> heatTransfert(true, false, 20, 20);
46 // Viewer<ImageFonctionel, RayTracingProvider> rayTracing(true, true, 20, 20);
47
48 GLUTImageViewers::runALL(); // Bloquant, Tant qu'une fenetre est ouverte
49
50 return EXIT_SUCCESS;
51 }