aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/main.cpp b/src/main.cpp
index c47aaeb..287b0eb 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -60,17 +60,23 @@ int main() {
auto aperture = 0.1;
auto focus_distance = 10;
auto cam = camera(position, target, v_fov, (float)width / (float)height, aperture, focus_distance);
- auto main_scene = scene(cam, width, height);
- auto can_render = true;
- vkrenderer renderer { wnd, sizeof(main_scene.meta), sizeof(main_scene.triangles[0]) * main_scene.triangles.size(), sizeof(main_scene.packed_nodes[0]) * main_scene.packed_nodes.size() };
+
+ vkrenderer renderer { wnd };
+ auto main_scene = scene(cam, width, height, renderer);
// vkrenderer renderer { wnd, sizeof(main_scene.meta), sizeof(main_scene.spheres[0]) * main_scene.spheres.size(), sizeof(main_scene.packed_nodes[0]) * main_scene.packed_nodes.size() };
+ renderer.create_scene_buffer(sizeof(main_scene.meta));
+ renderer.create_geometry_buffer(sizeof(main_scene.triangles[0]) * main_scene.triangles.size());
+ renderer.create_bvh_buffer(sizeof(main_scene.packed_nodes[0]) * main_scene.packed_nodes.size());
+
// Upload scene content
std::memcpy(renderer.scene_buffer_ptr(), &main_scene.meta, sizeof(main_scene.meta));
renderer.update_geometry_buffer(main_scene.triangles.data());
// renderer.update_geometry_buffer(main_scene.spheres.data());
renderer.update_bvh_buffer(main_scene.packed_nodes.data());
+ auto can_render = true;
+
ImGuiIO& io = ImGui::GetIO();
io.DisplaySize.x = (float)width;
io.DisplaySize.y = (float)height;