\r
#include "Newton.h"\r
#include "Device.h"\r
-\r
-extern __global__ void newton(uchar4* ptrDevPixels, int w, int h, DomaineMath domaineMath);\r
+#include "NewtonDevice.h"\r
\r
Newton::Newton(int w, int h)\r
- : variateurAnimation(IntervalF(30, 100), 1),\r
+ : variateurN(IntervalI(5, 1000), 1),\r
+ variateurEpsilon(IntervalF(0.01, 10), 0.01),\r
w(w), h(h),\r
dg(8, 8, 1),\r
- db(16, 16, 1),\r
+ db(32, 32, 1),\r
ptrDomaineMathInit(new DomaineMath(-2, -2, 2, 2)),\r
title("Fractal Newton")\r
{\r
- // print(dg, db);\r
Device::assertDim(dg, db);\r
}\r
\r
\r
void Newton::runGPU(uchar4* ptrDevPixels, const DomaineMath& domaineMath)\r
{\r
- newton<<<dg,db>>>(ptrDevPixels, this->w, this->h, domaineMath);\r
+ newton<<<dg,db>>>(ptrDevPixels, this->w, this->h, domaineMath, this->t, this->epsilon);\r
+\r
+ HANDLE_ERROR(cudaDeviceSynchronize()); // Pour flusher les 'printf' (pour le DEBUG).\r
}\r
\r
void Newton::animationStep()\r
{\r
- this->t = this->variateurAnimation.varierAndGet();\r
+ this->t = this->variateurN.varierAndGet();\r
+ this->epsilon = this->variateurEpsilon.varierAndGet();\r
}\r
\r
int Newton::getW()\r
\r
float Newton::getT()\r
{\r
- return 0;\r
+ return this->t;\r
}\r
\r
string Newton::getTitle()\r