67 lines
1.4 KiB
C++
67 lines
1.4 KiB
C++
#include "../display/display.hpp"
|
|
#include "../pixel.hpp"
|
|
#include "./renderer.hpp"
|
|
|
|
#include "../engine/progressiverenderer.hpp"
|
|
|
|
Renderer::Renderer(OperationMode mode) {
|
|
m_mode = mode;
|
|
}
|
|
|
|
void Renderer::SetMode(OperationMode mode, int samples) {
|
|
m_mode = mode;
|
|
m_samples = samples;
|
|
}
|
|
|
|
void Renderer::Init() {
|
|
|
|
}
|
|
|
|
void Renderer::Init(DisplayInterface* display) {
|
|
// Add warning
|
|
if (!display) return;
|
|
if(!m_framebuffer) {
|
|
m_framebuffer = display->Framebuffer;
|
|
}
|
|
m_interface = display;
|
|
}
|
|
|
|
void Renderer::InitRender(Scene* scene) {
|
|
m_scene = scene;
|
|
RendererInitialized = true;
|
|
}
|
|
|
|
void Renderer::Render() {
|
|
if (!RendererInitialized) return;
|
|
if (m_mode == MODE_PROGRESSIVE_GUI || m_mode == MODE_PROGRESSIVE_IMG) {
|
|
RenderProgressive();
|
|
} else if (m_mode == MODE_SAMPLES_IMG) {
|
|
RenderSamples();
|
|
} else {
|
|
// Add an error & return
|
|
}
|
|
}
|
|
|
|
void Renderer::Render(uint32_t* framebuffer) {
|
|
if (!RendererInitialized) return;
|
|
m_framebuffer = framebuffer;
|
|
if (m_mode == MODE_PROGRESSIVE_GUI || m_mode == MODE_PROGRESSIVE_IMG) {
|
|
RenderProgressive();
|
|
} else if (m_mode == MODE_SAMPLES_IMG) {
|
|
RenderSamples();
|
|
} else {
|
|
// Add an error & return
|
|
}
|
|
}
|
|
|
|
void Renderer::RenderProgressive() {
|
|
m_progressive = new ProgressiveRenderer();
|
|
|
|
m_progressive->Init(m_interface, m_scene);
|
|
m_progressive->Render();
|
|
}
|
|
|
|
void Renderer::RenderSamples() {
|
|
|
|
}
|