don't need to pass around a camera

This commit is contained in:
Ben Kyd
2019-07-29 05:49:35 +01:00
parent 7f53c6714a
commit 8491f095f1
7 changed files with 8 additions and 26 deletions

View File

@@ -26,8 +26,7 @@ void Renderer::Init(DisplayInterface* display) {
m_interface = display;
}
void Renderer::InitRender(Camera* camera, Scene* scene) {
m_camera = camera;
void Renderer::InitRender(Scene* scene) {
m_scene = scene;
RendererInitialized = true;
}
@@ -58,7 +57,7 @@ void Renderer::Render(uint32_t* framebuffer) {
void Renderer::RenderProgressive() {
m_progressive = new ProgressiveRenderer();
m_progressive->Init(m_interface, m_camera, m_scene);
m_progressive->Init(m_interface, m_scene);
m_progressive->Render();
}

View File

@@ -7,7 +7,6 @@ class DisplayInterface;
class ProgressiveRenderer;
class Camera;
class Scene;
// Function initProgressive or whatever takes a pointer to the display
@@ -20,7 +19,7 @@ public:
void Init();
void Init(DisplayInterface* display);
void InitRender(Camera* camera, Scene* scene);
void InitRender(Scene* scene);
bool RendererInitialized = false;
@@ -34,7 +33,6 @@ private:
DisplayInterface* m_interface = nullptr;
uint32_t* m_framebuffer = nullptr;
Camera* m_camera = nullptr;
Scene* m_scene = nullptr;
void RenderProgressive();

View File

@@ -11,9 +11,8 @@ ProgressiveRenderer::ProgressiveRenderer() {
}
void ProgressiveRenderer::Init(DisplayInterface* interface, Camera* camera, Scene* scene) {
void ProgressiveRenderer::Init(DisplayInterface* interface, Scene* scene) {
m_interface = interface;
m_camera = camera;
m_scene = scene;
}

View File

@@ -3,21 +3,19 @@
class DisplayInterface;
class Camera;
class Scene;
class ProgressiveRenderer {
public:
ProgressiveRenderer();
void Init(DisplayInterface* interface, Camera* camera, Scene* scene);
void Init(DisplayInterface* interface, Scene* scene);
void Render();
private:
DisplayInterface* m_interface = nullptr;
Camera* m_camera = nullptr;
Scene* m_scene = nullptr;
};

View File

@@ -49,18 +49,10 @@ void InfernoEngine::SetScene(Scene* scene) {
m_scene = scene;
}
void InfernoEngine::SetCamera(Camera* camera) {
m_camera = camera;
}
void InfernoEngine::AutoInitCamera() {
// set up a camera
}
void InfernoEngine::Ready() {
if (!m_camera || !m_scene) return;
m_renderer->InitRender(m_camera, m_scene);
if (!m_scene) return;
m_renderer->InitRender(m_scene);
if (!m_initialized) m_initialized = true;
}

View File

@@ -30,8 +30,6 @@ public:
// Functions related to raytracing
void SetScene(Scene* scene);
void SetCamera(Camera* camera);
void AutoInitCamera();
void Ready();
void Render();
@@ -61,7 +59,6 @@ private:
Display* m_display = nullptr;
Renderer* m_renderer = nullptr;
Camera* m_camera = nullptr;
Scene* m_scene = nullptr;
};

View File

@@ -11,7 +11,6 @@ int main(int argc, char** argv) {
std::cout << "Error initializing window: " << inferno.LastError() << std::endl;
}
inferno.SetCamera(new Camera());
inferno.SetScene(new Scene());
inferno.Ready();