8 #include "AnimableFonctionel_I.h"
10 #include "VariateurI.h"
11 #include "VariateurF.h"
13 class Fractal
: public AnimableFonctionel_I
16 Fractal(int w
, int h
);
20 int getW() /*override*/;
21 int getH() /*override*/;
22 DomaineMath
* getDomaineMathInit() /*override*/;
33 DomaineMath
* ptrDomaineMathInit
;
36 class FractalMandelbrot
: public Fractal
39 FractalMandelbrot(int w
, int h
, int dn
, bool multiGPU
= false);
43 std::vector
<std::string
> getNames();
44 void getValues(float* values
);
46 std::string
getTitle();
49 void runGPU(uchar4
* ptrDevPixels
, const DomaineMath
& domaineMath
);
51 VariateurI variateurAnimationN
;
56 // Utilisé uniquement dans le cadre du multi-GPU.
58 uchar4
** ptrDevPixelsMultGPU
; // La mémoire alloué pour les GPU autres que le premier
59 int hFirstDevice
; // Hauteur de l'image à traiter par le premier GPU.
60 int hDevices
; // Hauteur de l'image à traiter par les autres GPU.
63 class FractalJulia
: public Fractal
66 FractalJulia(int w
, int h
, int n
, float z_r_min
, float z_r_max
, float z_i_min
, float z_i_max
);
69 std::vector
<std::string
> getNames();
70 void getValues(float* values
);
72 std::string
getTitle();
75 void runGPU(uchar4
* ptrDevPixels
, const DomaineMath
& domaineMath
);
80 VariateurF variateurAnimationI
; // Variateur pour z_i.
81 VariateurF variateurAnimationR
; // Variateur pour z_r.