FractalEngine
void FractalEngine::WriteToBitmap(BBitmap* bitmap)
void FractalEngine::StopRender()
void FractalEngine::Render(double locationX, double locationY, double size)
status_t FractalEngine::RenderThread(void* data)
FractalEngine* engine = static_cast<FractalEngine*>(data);
BMessage message(FractalEngine::MSG_THREAD_RENDER_COMPLETE);
FractalEngine::FractalEngine(BHandler* parent, BLooper* looper)
void FractalEngine::RenderPixel(uint32 x, uint32 y)
int32 FractalEngine::DoSet_Mandelbrot(double real, double imaginary)
int32 FractalEngine::DoSet_BurningShip(double real, double imaginary)
int32 FractalEngine::DoSet_Tricorn(double real, double imaginary)
int32 FractalEngine::DoSet_Julia(double real, double imaginary)
fDoSet = &FractalEngine::DoSet_Mandelbrot;
int32 FractalEngine::DoSet_OrbitTrap(double real, double imaginary)
int32 FractalEngine::DoSet_Multibrot(double real, double imaginary)
fRenderThreads[i] = spawn_thread(&FractalEngine::RenderThread,
FractalEngine::~FractalEngine()
void FractalEngine::MessageReceived(BMessage* msg)
case 0: fDoSet = &FractalEngine::DoSet_Mandelbrot; break;
case 1: fDoSet = &FractalEngine::DoSet_BurningShip; break;
case 2: fDoSet = &FractalEngine::DoSet_Tricorn; break;
case 3: fDoSet = &FractalEngine::DoSet_Julia; break;
case 4: fDoSet = &FractalEngine::DoSet_OrbitTrap; break;
case 5: fDoSet = &FractalEngine::DoSet_Multibrot; break;
class FractalEngine : public BLooper {
FractalEngine(BHandler* parent, BLooper* looper);
~FractalEngine();
int32 (FractalEngine::*fDoSet)(double real, double imaginary);
fFractalEngine = new FractalEngine(this, Window());
BMessage msg(FractalEngine::MSG_RESIZE);
case FractalEngine::MSG_BUFFER_CREATED:
case FractalEngine::MSG_RENDER_COMPLETE:
BMessage message(FractalEngine::MSG_RENDER);
BMessage msg(FractalEngine::MSG_CHANGE_SET); \
BMessage msg(FractalEngine::MSG_SET_PALETTE); \
BMessage msg(FractalEngine::MSG_SET_ITERATIONS); \
BMessage msg(FractalEngine::MSG_SET_SUBSAMPLING); \
FractalEngine* fFractalEngine;