X-Git-Url: http://git.euphorik.ch/?p=GPU.git;a=blobdiff_plain;f=WCudaMSE%2FStudent_Cuda_Image%2Fsrc%2Fcpp%2Fcore%2F02_Mandelbrot_Julia%2Fmoo%2Fhost%2FFractal.cu;h=bfaff4bd9f6fc9080e8266c349b8a4bfe7e59707;hp=88a225bb88e15455987a509a8d9b30f487bc48f3;hb=2fd5d915e8a9de4d957d6031d2d68088784eac3c;hpb=f2c6a4fc79746e2d5c6678699bd2ca93ffc49bcc diff --git a/WCudaMSE/Student_Cuda_Image/src/cpp/core/02_Mandelbrot_Julia/moo/host/Fractal.cu b/WCudaMSE/Student_Cuda_Image/src/cpp/core/02_Mandelbrot_Julia/moo/host/Fractal.cu index 88a225b..bfaff4b 100755 --- a/WCudaMSE/Student_Cuda_Image/src/cpp/core/02_Mandelbrot_Julia/moo/host/Fractal.cu +++ b/WCudaMSE/Student_Cuda_Image/src/cpp/core/02_Mandelbrot_Julia/moo/host/Fractal.cu @@ -1,20 +1,17 @@ +#include "Fractal.h" + #include #include +using namespace std; -#include "Fractal.h" +#include "FractalDevice.h" #include "Device.h" -using std::cout; -using std::endl; - -extern __global__ void fractalMandelbrot(uchar4* ptrDevPixels, int w, int h, DomaineMath domaineMath, int n); -extern __global__ void fractalJulia(uchar4* ptrDevPixels, int w, int h, DomaineMath domaineMath, int n, float c_r, float c_i); - -Fractal::Fractal(int w, int h) - : w(w), h(h), - dg(8, 8, 1), - db(16, 16, 1), - title("Fractal Cuda") +Fractal::Fractal(int w, int h) : + w(w), h(h), + dg(8, 8, 1), + db(16, 16, 1), + title("Fractal Cuda") { //print(dg, db); Device::assertDim(dg, db); @@ -56,8 +53,10 @@ string Fractal::getTitle() ///// -FractalMandelbrot::FractalMandelbrot(int w, int h, float dn) - : Fractal(w, h), variateurAnimationN(IntervalF(30, 100), dn) +FractalMandelbrot::FractalMandelbrot(int w, int h, int dn) : + Fractal(w, h), + variateurAnimationN(IntervalI(10, 100), dn), + n(0) { this->ptrDomaineMathInit = new DomaineMath(-2, -1.3, 0.8, 1.3); } @@ -67,9 +66,16 @@ void FractalMandelbrot::animationStep() this->n = this->variateurAnimationN.varierAndGet(); } -float FractalMandelbrot::getT() +vector FractalMandelbrot::getNames() { - return this->n; + vector name; + name.push_back("n = "); + return name; + } + +void FractalMandelbrot::getValues(float* values) + { + values[0] = float(this->n); } void FractalMandelbrot::runGPU(uchar4* ptrDevPixels, const DomaineMath& domaineMath) @@ -79,8 +85,13 @@ void FractalMandelbrot::runGPU(uchar4* ptrDevPixels, const DomaineMath& domaineM ///// -FractalJulia::FractalJulia(int w, int h, float dn, float z_r_min, float z_r_max, float z_i_min, float z_i_max) - : Fractal(w, h), z_r(z_r_min), z_i(z_i_min), variateurAnimationR(IntervalF(-0.8, -0.7), 0.0005), variateurAnimationI(IntervalF(-0.3, 0.3/*0.15*/), 0.0004) +FractalJulia::FractalJulia(int w, int h, int n, float z_r_min, float z_r_max, float z_i_min, float z_i_max) : + Fractal(w, h), + n(n), + z_r(z_r_min), + z_i(z_i_min), + variateurAnimationR(IntervalF(-0.8, -0.7), 0.0005), + variateurAnimationI(IntervalF(-0.3, 0.3), 0.0004) { this->ptrDomaineMathInit = new DomaineMath(-1.7, -1.4, 1.7, 1.4); } @@ -91,13 +102,22 @@ void FractalJulia::animationStep() this->z_i = this->variateurAnimationI.varierAndGet(); } -float FractalJulia::getT() +vector FractalJulia::getNames() + { + vector name; + name.push_back("z_r = "); + name.push_back("z_i = "); + return name; + } + +void FractalJulia::getValues(float* values) { - return this->z_r; + values[0] = this->z_r; + values[1] = this->z_i; } void FractalJulia::runGPU(uchar4* ptrDevPixels, const DomaineMath& domaineMath) { - fractalJulia<<>>(ptrDevPixels, this->w, this->h, domaineMath, 300, this->z_r, this->z_i); + fractalJulia<<>>(ptrDevPixels, this->w, this->h, domaineMath, this->n, this->z_r, this->z_i); }