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);
42 std::vector
<std::string
> getNames();
43 void getValues(float* values
);
45 std::string
getTitle();
48 void runGPU(uchar4
* ptrDevPixels
, const DomaineMath
& domaineMath
);
50 VariateurI variateurAnimationN
;
55 // Utilisé uniquement dans le cadre du multi-GPU.
57 uchar4
** ptrDevPixelsMultGPU
; // La mémoire alloué pour les GPU autres que le premier
58 int hFirstDevice
; // Hauteur de l'image à traiter par le premier GPU.
59 int hDevices
; // Hauteur de l'image à traiter par les autres GPU.
62 class FractalJulia
: public Fractal
65 FractalJulia(int w
, int h
, int n
, float z_r_min
, float z_r_max
, float z_i_min
, float z_i_max
);
68 std::vector
<std::string
> getNames();
69 void getValues(float* values
);
71 std::string
getTitle();
74 void runGPU(uchar4
* ptrDevPixels
, const DomaineMath
& domaineMath
);
79 VariateurF variateurAnimationI
; // Variateur pour z_i.
80 VariateurF variateurAnimationR
; // Variateur pour z_r.