push
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user