#ifndef FRACTAL_H_\r
#define FRACTAL_H_\r
\r
+#include <vector>\r
+#include <string>\r
+\r
#include "cudaTools.h"\r
#include "AnimableFonctionel_I.h"\r
#include "MathTools.h"\r
+#include "VariateurI.h"\r
#include "VariateurF.h"\r
\r
class Fractal : public AnimableFonctionel_I\r
int getH() /*override*/;\r
DomaineMath* getDomaineMathInit() /*override*/;\r
\r
- string getTitle(void) /*override*/;\r
-\r
protected:\r
// Inputs\r
const int w;\r
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, float dn);\r
+ FractalMandelbrot(int w, int h, int dn, bool multiGPU = false);\r
+ ~FractalMandelbrot();\r
void animationStep();\r
- float getT() /*override*/;\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
- VariateurF variateurAnimationN;\r
+ VariateurI variateurAnimationN;\r
+ int n;\r
\r
- float n;\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
{\r
public:\r
- FractalJulia(int w, int h, float dn, float z_r_min, float z_r_max, float z_i_min, float z_i_max);\r
+ FractalJulia(int w, int h, int n, float z_r_min, float z_r_max, float z_i_min, float z_i_max);\r
void animationStep();\r
- float getT() /*override*/;\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
+ const int n;\r
\r
float z_r, z_i;\r
- VariateurF variateurAnimationI;\r
- VariateurF variateurAnimationR;\r
+ VariateurF variateurAnimationI; // Variateur pour z_i.\r
+ VariateurF variateurAnimationR; // Variateur pour z_r.\r
};\r
\r
#endif\r