Files
inferno-cpu/src/core/renderer.hpp
2019-07-29 05:47:12 +01:00

48 lines
946 B
C++

#ifndef INFERNO_CORE_RENDERER_H_
#define INFERNO_CORE_RENDERER_H_
#include "../common.hpp"
class DisplayInterface;
class ProgressiveRenderer;
class Camera;
class Scene;
// Function initProgressive or whatever takes a pointer to the display
class Renderer {
public:
Renderer(OperationMode mode);
void SetMode(OperationMode mode, int samples = -1);
void Init();
void Init(DisplayInterface* display);
void InitRender(Camera* camera, Scene* scene);
bool RendererInitialized = false;
void Render();
void Render(uint32_t* framebuffer);
private:
int m_samples = -1;
OperationMode m_mode = MODE_DEFAULT;
DisplayInterface* m_interface = nullptr;
uint32_t* m_framebuffer = nullptr;
Camera* m_camera = nullptr;
Scene* m_scene = nullptr;
void RenderProgressive();
ProgressiveRenderer* m_progressive = nullptr;
void RenderSamples();
int m_sampleCount = -1;
};
#endif