rendering-in-cgi/Assignments/Assignment3/application_integrator.h
2024-06-13 13:54:34 +02:00

31 lines
893 B
C++

#pragma once
#include "helper.hpp"
#include "distribution.hpp"
class ApplicationIntegrator: public Application {
public:
ApplicationIntegrator(int argc, char** argv, const std::string& name);
virtual ~ApplicationIntegrator() = default;
protected:
virtual void render(int* pixels, int width, int height, float time, const ISPCCamera& camera) override;
virtual void drawGUI() override;
virtual void resetRender() override;
bool bMetropolis = false;
void mltRender(int* pixels, int width, int height, float time, const ISPCCamera& camera);
void mcRender(int* pixels, int width, int height, float time, const ISPCCamera& camera);
/* renders a single screen tile */
void mcRenderTile(int taskIndex, int threadIndex, int* pixels, const unsigned int width,
const unsigned int height, const float time, const ISPCCamera& camera, const int numTilesX,
const int numTilesY);
};