From 1176f320b886ef18dc41d668155b049add89b1ed Mon Sep 17 00:00:00 2001 From: Benjamin Kyd Date: Mon, 16 Oct 2023 14:51:27 +0100 Subject: [PATCH] that segfaulted --- src/inferno.cpp | 43 ++++++++++++++++++++------------------- src/renderer/renderer.cpp | 36 +++++++++++++------------------- src/renderer/renderer.hpp | 2 +- 3 files changed, 37 insertions(+), 44 deletions(-) diff --git a/src/inferno.cpp b/src/inferno.cpp index 0e800e0..b9c3f90 100644 --- a/src/inferno.cpp +++ b/src/inferno.cpp @@ -42,7 +42,7 @@ InfernoApp* inferno_create() basicMaterial->setGlShader(basicShader); scene::Mesh* mesh = new scene::Mesh; - mesh->loadOBJ("res/cornell-box.obj"); + mesh->loadOBJ("res/lucy.obj"); mesh->ready(); mesh->setMaterial(basicMaterial); @@ -178,6 +178,26 @@ int inferno_run(InfernoApp* app) ImGui::EndMenuBar(); } + if (showRenderSettings && ImGui::Begin("Inferno HART")) { + if (ImGui::TreeNode("Camera")) { + graphics::Camera* camera = scene::scene_get_camera(app->Scene); + graphics::camera_draw_ui(camera); + ImGui::TreePop(); + } + if (ImGui::TreeNode("Preview Render")) { + ImGui::Checkbox("Show Preview", &showPreview); + graphics::preview_draw_ui(app->PreviewRenderer); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("RayTraced Render")) { + ImGui::Text("Lol"); + graphics::rayr_draw_ui(app->RayRenderer); + ImGui::TreePop(); + } + ImGui::End(); + } + if (showPreview && ImGui::Begin("Preview", nullptr, ImGuiWindowFlags_NoScrollbar)) { if (ImGui::IsWindowHovered()) { inferno_move_input(app); @@ -200,27 +220,8 @@ int inferno_run(InfernoApp* app) ImGui::End(); } - if (showRenderSettings && ImGui::Begin("Inferno HART")) { - if (ImGui::TreeNode("Camera")) { - graphics::Camera* camera = scene::scene_get_camera(app->Scene); - graphics::camera_draw_ui(camera); - ImGui::TreePop(); - } - if (ImGui::TreeNode("Preview Render")) { - ImGui::Checkbox("Show Preview", &showPreview); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("RayTraced Render")) { - ImGui::Text("Lol"); - graphics::rayr_draw_ui(app->RayRenderer); - ImGui::TreePop(); - } - ImGui::End(); - } - if (ImGui::Begin("Render")) { - + graphics::rayr_draw(app->RayRenderer); ImGui::End(); } diff --git a/src/renderer/renderer.cpp b/src/renderer/renderer.cpp index 4e37f7f..6388e58 100644 --- a/src/renderer/renderer.cpp +++ b/src/renderer/renderer.cpp @@ -97,28 +97,20 @@ void rayr_prepare(RayRenderer*& renderer) } } -// void rayr_draw(RayRenderer*& renderer) -// { -// scene::scene_frame_tick(renderer->Scene); -// // 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); -// -// for (int x = 0; x < mRenderTargetSize.x; x++) -// for (int y = 0; y < mRenderTargetSize.y; y++) { -// mTarget[y * mRenderTargetSize.x + x] = { 0.1f, 0.1f, 0.1f, 1.0f }; -// } -// mCurrentRefTable = &startRays.Reference; -// -// // before we start we now want to check that it hasn't been force-stopped -// mIface->startTrace(startRays.Field); -// -// yolo::info("Sample complete"); -// -// for (auto* ray : startRays.Field) { -// delete ray; -// } -// } +void rayr_draw(RayRenderer* renderer) +{ + scene::scene_frame_tick(renderer->Scene); + // 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); + + for (int x = 0; x < renderer->Viewport->x; x++) + for (int y = 0; y < renderer->Viewport->y; y++) + renderer->RenderData[y * renderer->Viewport->x + x] = { 0.1f, 0.1f, 0.1f, 1.0f }; + + // before we start we now want to check that it hasn't been force-stopped + yolo::info("Sample complete"); +} // // void RayRenderer::computeHit(HitInfo* info) // { diff --git a/src/renderer/renderer.hpp b/src/renderer/renderer.hpp index 67fe60b..ca6054a 100644 --- a/src/renderer/renderer.hpp +++ b/src/renderer/renderer.hpp @@ -42,7 +42,7 @@ void rayr_set_viewport(RayRenderer* renderer, glm::ivec2 size); GLuint rayr_get_rendered_texture(RayRenderer* renderer); glm::fvec4* rayr_get_render_data(RayRenderer* renderer); -void rayr_draw(RayRenderer* renderer, scene::Scene* scene); +void rayr_draw(RayRenderer* renderer); void raryr_compute_hit(HitInfo* info);