diff --git a/src/inferno.hpp b/src/inferno.hpp index 99ad928..926a616 100644 --- a/src/inferno.hpp +++ b/src/inferno.hpp @@ -1,6 +1,7 @@ #pragma once #include "graphics.hpp" +#include "preview_renderer/renderer.hpp" #include @@ -17,7 +18,9 @@ typedef struct InfernoInput { typedef struct InfernoApp { std::unique_ptr Input; - std::unique_ptr Camera; + std::unique_ptr Scene; + std::unique_ptr PreviewRenderer; + std::unique_ptr RayRenderer; } InfernoApp; std::unique_ptr inferno_create(); diff --git a/src/scene/scene.hpp b/src/scene/scene.hpp index 3849999..424b74f 100644 --- a/src/scene/scene.hpp +++ b/src/scene/scene.hpp @@ -13,14 +13,13 @@ class SceneObject; class Mesh; typedef struct Scene { - std::shared_ptr Camera; + std::unique_ptr Camera; std::vector> Objects; bool DidUpdate = false; } Scene; std::unique_ptr scene_create(); void scene_cleanup(std::unique_ptr& scene); -void scene_set_camera(std::unique_ptr& scene, std::shared_ptr camera); void scene_add_object(std::unique_ptr& scene, std::unique_ptr object); std::unique_ptr& scene_get_camera(std::unique_ptr& scene); std::vector>& scene_get_renderables(std::unique_ptr& scene);