This commit is contained in:
Benjamin Kyd
2023-08-24 14:53:23 +01:00
parent 4012464bc5
commit f413cd88bf
3 changed files with 7 additions and 6 deletions

View File

@@ -11,12 +11,12 @@ namespace inferno {
class Camera;
struct ReferencedRayField
{
struct ReferencedRayField {
RayField Field;
std::unordered_map<uint32_t, glm::ivec2> Reference;
};
class RaySource
{
public:

View File

@@ -88,7 +88,7 @@ void rayr_prepare(std::unique_ptr<RayRenderer> &renderer)
// here, scene_did_update takes a unique_ptr, but we have a shared_ptr
// so we need to call unique() to get the unique_ptr but that will error
// with non-const ltype so we need to const_cast it
if (scene::scene_did_update(renderer->CurrentScene.unique()))
if (scene::scene_did_update(renderer->CurrentScene))
{
yolo::debug("New Scene!");
// renderer->AccelerationInterface->newScene(renderer->CurrentScene);
@@ -97,7 +97,7 @@ void rayr_prepare(std::unique_ptr<RayRenderer> &renderer)
void rayr_draw(std::unique_ptr<RayRenderer> &renderer)
{
scene::scene_frame_tick(renderer->CurrentScene.unique());
scene::scene_frame_tick(renderer->CurrentScene);
// TODO: Rays should definately be bump allocated if possible, this is KBs of
// ray data and nothing else being reallocated every frame for no reason
ReferencedRayField startRays = mRaySource->getInitialRays(true);

View File

@@ -3,6 +3,7 @@
#include <graphics.hpp>
#include <condition_variable>
#include <memory>
#include <mutex>
#include <unordered_map>
@@ -27,7 +28,7 @@ typedef struct RayRenderer {
std::condition_variable RenderPause;
// TODO: End
std::shared_ptr<scene::Scene> CurrentScene;
std::unique_ptr<scene::Scene> CurrentScene;
// std::shared_ptr<const Viewport> RenderTargetSize;
glm::ivec2 RenderTargetSize;
@@ -38,7 +39,7 @@ typedef struct RayRenderer {
std::unique_ptr<RayRenderer> rayr_create(glm::ivec2 viewport, HHM* accelIface);
void rayr_cleanup(std::unique_ptr<RayRenderer>& renderer);
void rayr_set_scene(std::unique_ptr<RayRenderer>& renderer, std::shared_ptr<scene::Scene> scene);
void rayr_set_scene(std::unique_ptr<RayRenderer>& renderer, std::unique_ptr<scene::Scene> scene);
void rayr_set_viewport(std::unique_ptr<RayRenderer>& renderer, glm::ivec2 size);
glm::ivec2 rayr_get_viewport(std::unique_ptr<RayRenderer>& renderer);
GLuint rayr_get_rendered_texture(std::unique_ptr<RayRenderer>& renderer);