diff --git a/doc/Tutorial.md b/doc/Tutorial.md index d81caa7e290a263762a3faa66b51aadfcde8139d..4c4442866017408ef2ab609a6d046a9349f476f2 100644 --- a/doc/Tutorial.md +++ b/doc/Tutorial.md @@ -57,7 +57,7 @@ lava::frame frame(argh); if (!frame.ready()) return error::not_ready; -auto count = 0; +ui32 count = 0; frame.add_run([&]() { sleep(one_second); @@ -138,19 +138,19 @@ input.key.listeners.add([&](key_event::ref event) { return input_ignore; }); -auto device = frame.create_device(); +lava::device_ptr device = frame.create_device(); if (!device) return error::create_failed; -auto render_target = create_target(&window, device); +lava::render_target::ptr render_target = create_target(&window, device); if (!render_target) return error::create_failed; -lava::renderer plotter; -if (!plotter.create(render_target->get_swapchain())) +lava::renderer renderer; +if (!renderer.create(render_target->get_swapchain())) return error::create_failed; -auto frame_count = render_target->get_frame_count(); +ui32 frame_count = render_target->get_frame_count(); VkCommandPool cmd_pool; VkCommandBuffers cmd_bufs(frame_count); @@ -176,8 +176,8 @@ auto build_cmd_bufs = [&]() { }; for (auto i = 0u; i < frame_count; i++) { - auto cmd_buf = cmd_bufs[i]; - auto frame_image = render_target->get_image(i); + VkCommandBuffer cmd_buf = cmd_bufs[i]; + VkImage frame_image = render_target->get_image(i); if (failed(device->call().vkBeginCommandBuffer(cmd_buf, &begin_info))) return build_failed; @@ -224,17 +224,17 @@ frame.add_run([&]() { if (window.resize_request()) return window.handle_resize(); - auto frame_index = plotter.begin_frame(); + auto frame_index = renderer.begin_frame(); if (!frame_index) return run_continue; - return plotter.end_frame({ cmd_bufs[*frame_index] }); + return renderer.end_frame({ cmd_bufs[*frame_index] }); }); frame.add_run_end([&]() { clean_cmd_bufs(); - plotter.destroy(); + renderer.destroy(); render_target->destroy(); }); @@ -287,7 +287,7 @@ block.add_command([&](VkCommandBuffer cmd_buf) { .layerCount = 1, }; - auto frame_image = render_target->get_image(block.get_current_frame()); + VkImage frame_image = render_target->get_image(block.get_current_frame()); insert_image_memory_barrier(device, cmd_buf, frame_image, VK_ACCESS_MEMORY_READ_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, @@ -320,7 +320,7 @@ All we need to do now is to process the block in the run loop: if (!block.process(*frame_index)) return run_abort; -return plotter.end_frame(block.get_buffers()); +return renderer.end_frame(block.get_buffers()); ``` And call the renderer with our recorded command buffers diff --git a/liblava-demo/lamp.cpp b/liblava-demo/lamp.cpp index 41f90ffb06d4700de61478da2f0e3519fe1d7b88..5d77156c3acb535373732418acfd13425ab07b16 100644 --- a/liblava-demo/lamp.cpp +++ b/liblava-demo/lamp.cpp @@ -15,8 +15,8 @@ int main(int argc, char* argv[]) { if (!app.setup()) return error::not_ready; - auto lamp_depth = .03f; - auto lamp_color = v4(.3f, .15f, .15f, 1.f); + r32 lamp_depth = .03f; + v4 lamp_color{ .3f, .15f, .15f, 1.f }; graphics_pipeline::ptr pipeline; pipeline_layout::ptr layout; @@ -44,7 +44,7 @@ int main(int argc, char* argv[]) { pipeline->set_auto_size(true); pipeline->on_process = [&](VkCommandBuffer cmd_buf) { - auto viewport = pipeline->get_viewport(); + VkViewport viewport = pipeline->get_viewport(); r32 pc_resolution[2]; pc_resolution[0] = viewport.width - viewport.x; @@ -52,7 +52,7 @@ int main(int argc, char* argv[]) { app.device->call().vkCmdPushConstants(cmd_buf, layout->get(), VK_SHADER_STAGE_FRAGMENT_BIT, sizeof(r32) * 0, sizeof(r32) * 2, pc_resolution); - auto pc_time = to_r32(to_sec(app.run_time.current)); + r32 pc_time = to_r32(to_sec(app.run_time.current)); app.device->call().vkCmdPushConstants(cmd_buf, layout->get(), VK_SHADER_STAGE_FRAGMENT_BIT, sizeof(r32) * 2, sizeof(r32), &pc_time); @@ -65,7 +65,7 @@ int main(int argc, char* argv[]) { app.device->call().vkCmdDraw(cmd_buf, 3, 1, 0, 0); }; - auto render_pass = app.shading.get_pass(); + render_pass::ptr render_pass = app.shading.get_pass(); if (!pipeline->create(render_pass->get())) return false; @@ -80,7 +80,7 @@ int main(int argc, char* argv[]) { layout->destroy(); }; - auto auto_play = true; + bool auto_play = true; app.input.key.listeners.add([&](key_event::ref event) { if (app.imgui.capture_mouse()) @@ -108,7 +108,7 @@ int main(int argc, char* argv[]) { ImGui::SameLine(0.f, 10.f); - auto lamp_active = pipeline->activated(); + bool lamp_active = pipeline->activated(); if (ImGui::Checkbox("active", &lamp_active)) pipeline->toggle(); @@ -126,7 +126,7 @@ int main(int argc, char* argv[]) { ImGui::DragFloat("depth", &lamp_depth, 0.0001f, 0.01f, 1.f, "%.4f"); ImGui::ColorEdit4("color", (r32*) &lamp_color); - auto clear_color = app.shading.get_pass()->get_clear_color(); + v3 clear_color = app.shading.get_pass()->get_clear_color(); if (ImGui::ColorEdit3("ground", (r32*) &clear_color)) app.shading.get_pass()->set_clear_color(clear_color); @@ -146,7 +146,7 @@ int main(int argc, char* argv[]) { } r32 update(delta dt, r32 value) { - auto next = factor * dt; + r32 next = factor * dt; if (add) value += next; @@ -185,14 +185,14 @@ int main(int argc, char* argv[]) { color_dimmer.factor_max = 0.02f; color_dimmer.next_factor(); - auto r_dimmer = color_dimmer; + dimmer r_dimmer = color_dimmer; r_dimmer.add = true; - auto g_dimmer = color_dimmer; + dimmer g_dimmer = color_dimmer; g_dimmer.add = true; - auto b_dimmer = color_dimmer; - auto a_dimmer = color_dimmer; + dimmer b_dimmer = color_dimmer; + dimmer a_dimmer = color_dimmer; a_dimmer.min = 0.2f; app.on_update = [&](delta dt) { diff --git a/liblava-demo/spawn.cpp b/liblava-demo/spawn.cpp index ea0f0f2eb3b294915d70498a678989ad1e87989d..30930bbe115ca7e1a15257cbf77ba85d5fc12c09 100644 --- a/liblava-demo/spawn.cpp +++ b/liblava-demo/spawn.cpp @@ -17,13 +17,13 @@ int main(int argc, char* argv[]) { timer load_timer; - auto spawn_mesh = load_mesh(app.device, "spawn/lava-spawn-game.obj"); + mesh::ptr spawn_mesh = load_mesh(app.device, "spawn/lava-spawn-game.obj"); if (!spawn_mesh) return error::create_failed; - auto mesh_load_time = load_timer.elapsed(); + ms mesh_load_time = load_timer.elapsed(); - auto default_texture = create_default_texture(app.device, { 4096, 4096 }, default_color); + texture::ptr default_texture = create_default_texture(app.device, { 4096, 4096 }, default_color); if (!default_texture) return error::create_failed; @@ -32,7 +32,7 @@ int main(int argc, char* argv[]) { app.camera.position = v3(0.832f, 0.036f, 2.304f); app.camera.rotation = v3(8.42f, -29.73f, 0.f); - auto spawn_model = glm::identity<mat4>(); + mat4 spawn_model = glm::identity<mat4>(); buffer spawn_model_buffer; if (!spawn_model_buffer.create_mapped(app.device, &spawn_model, sizeof(mat4), VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT)) @@ -125,7 +125,7 @@ int main(int argc, char* argv[]) { spawn_mesh->bind_draw(cmd_buf); }; - auto render_pass = app.shading.get_pass(); + render_pass::ptr render_pass = app.shading.get_pass(); if (!pipeline->create(render_pass->get())) return false; @@ -145,11 +145,11 @@ int main(int argc, char* argv[]) { layout->destroy(); }; - auto spawn_position = v3(0.f); - auto spawn_rotation = v3(0.f); - auto spawn_scale = v3(1.f); + v3 spawn_position{ 0.f }; + v3 spawn_rotation{ 0.f }; + v3 spawn_scale{ 1.f }; - auto update_spawn_matrix = false; + bool update_spawn_matrix = false; app.imgui.on_draw = [&]() { ImGui::SetNextWindowPos(ImVec2(30, 30), ImGuiCond_FirstUseEver); @@ -157,7 +157,7 @@ int main(int argc, char* argv[]) { ImGui::Begin(app.get_name()); - auto camera_active = app.camera.activated(); + bool camera_active = app.camera.activated(); if (ImGui::Checkbox("active", &camera_active)) app.camera.set_active(camera_active); @@ -167,7 +167,7 @@ int main(int argc, char* argv[]) { ImGui::SameLine(0.f, 15.f); - auto first_person = app.camera.type == camera_type::first_person; + bool first_person = app.camera.type == camera_type::first_person; if (ImGui::Checkbox("first person##camera", &first_person)) app.camera.type = first_person ? camera_type::first_person : camera_type::look_at; @@ -197,7 +197,7 @@ int main(int argc, char* argv[]) { } if (ImGui::CollapsingHeader("projection")) { - auto update_projection = false; + bool update_projection = false; update_projection |= ImGui::DragFloat("fov", &app.camera.fov); update_projection |= ImGui::DragFloat("z near", &app.camera.z_near); @@ -232,7 +232,7 @@ int main(int argc, char* argv[]) { ImGui::SameLine(); - auto texture_size = default_texture->get_size(); + uv2 texture_size = default_texture->get_size(); ImGui::Text("texture: %d x %d", texture_size.x, texture_size.y); app.draw_about(); diff --git a/liblava-demo/triangle.cpp b/liblava-demo/triangle.cpp index c0a604e77c58716317dae6e4c618320dc2a847f4..c0c16dbf271a9b7cef6a10014f78b8bb31aa7d01 100644 --- a/liblava-demo/triangle.cpp +++ b/liblava-demo/triangle.cpp @@ -15,11 +15,11 @@ int main(int argc, char* argv[]) { if (!app.setup()) return error::not_ready; - auto triangle = create_mesh(app.device, mesh_type::triangle); + mesh::ptr triangle = create_mesh(app.device, mesh_type::triangle); if (!triangle) return error::create_failed; - auto& triangle_data = triangle->get_data(); + mesh_data& triangle_data = triangle->get_data(); triangle_data.vertices.at(0).color = v4(1.f, 0.f, 0.f, 1.f); triangle_data.vertices.at(1).color = v4(0.f, 1.f, 0.f, 1.f); triangle_data.vertices.at(2).color = v4(0.f, 0.f, 1.f, 1.f); @@ -55,7 +55,7 @@ int main(int argc, char* argv[]) { { 1, 0, VK_FORMAT_R32G32B32A32_SFLOAT, to_ui32(offsetof(vertex, color)) }, }); - auto render_pass = app.shading.get_pass(); + render_pass::ptr render_pass = app.shading.get_pass(); pipeline->set_layout(layout); diff --git a/liblava/app/app.cpp b/liblava/app/app.cpp index 895215177b1f0069e59ea707702c3eb20582b3a3..7c4c73f103d4b79ed4ae6459e64c1c282592449c 100644 --- a/liblava/app/app.cpp +++ b/liblava/app/app.cpp @@ -199,7 +199,7 @@ namespace lava { if (!shading.create(target)) return false; - if (!plotter.create(target->get_swapchain())) + if (!renderer.create(target->get_swapchain())) return false; window.assign(&input); @@ -211,7 +211,7 @@ namespace lava { if (on_destroy) on_destroy(); - plotter.destroy(); + renderer.destroy(); shading.destroy(); target->destroy(); @@ -366,7 +366,7 @@ namespace lava { return true; } - auto frame_index = plotter.begin_frame(); + auto frame_index = renderer.begin_frame(); if (!frame_index) return true; @@ -375,7 +375,7 @@ namespace lava { if (!block.process(*frame_index)) return false; - return plotter.end_frame(block.get_buffers()); + return renderer.end_frame(block.get_buffers()); }); } diff --git a/liblava/app/app.hpp b/liblava/app/app.hpp index b4a0f66498a660c95da5a9b6ebd370fe349099fd..1b2935bad855b0d60e512b3f93f0e1240a81a69e 100644 --- a/liblava/app/app.hpp +++ b/liblava/app/app.hpp @@ -25,12 +25,14 @@ namespace lava { imgui::config imgui_config; device_ptr device = nullptr; + lava::camera camera; lava::staging staging; lava::block block; - renderer plotter; + lava::renderer renderer; + forward_shading shading; render_target::ptr target; diff --git a/tests/tests.cpp b/tests/tests.cpp index 6b08d0444b90a1e8c09b411ea245045c52b31479..919de0e1f56e2c078fc53f81076f0173f05d8247 100644 --- a/tests/tests.cpp +++ b/tests/tests.cpp @@ -17,7 +17,7 @@ LAVA_TEST(2, "run loop") { if (!frame.ready()) return error::not_ready; - auto count = 0; + ui32 count = 0; frame.add_run([&]() { sleep(one_second); @@ -84,19 +84,19 @@ LAVA_TEST(4, "clear color") { return input_ignore; }); - auto device = frame.create_device(); + device_ptr device = frame.create_device(); if (!device) return error::create_failed; - auto render_target = create_target(&window, device); + render_target::ptr render_target = create_target(&window, device); if (!render_target) return error::create_failed; - renderer plotter; - if (!plotter.create(render_target->get_swapchain())) + renderer renderer; + if (!renderer.create(render_target->get_swapchain())) return error::create_failed; - auto frame_count = render_target->get_frame_count(); + ui32 frame_count = render_target->get_frame_count(); VkCommandPool cmd_pool; VkCommandBuffers cmd_bufs(frame_count); @@ -122,8 +122,8 @@ LAVA_TEST(4, "clear color") { }; for (auto i = 0u; i < frame_count; ++i) { - auto cmd_buf = cmd_bufs[i]; - auto frame_image = render_target->get_image(i); + VkCommandBuffer cmd_buf = cmd_bufs[i]; + VkImage frame_image = render_target->get_image(i); if (failed(device->call().vkBeginCommandBuffer(cmd_buf, &begin_info))) return build_failed; @@ -167,17 +167,17 @@ LAVA_TEST(4, "clear color") { if (window.resize_request()) return window.handle_resize(); - auto frame_index = plotter.begin_frame(); + auto frame_index = renderer.begin_frame(); if (!frame_index) return run_continue; - return plotter.end_frame({ cmd_bufs[*frame_index] }); + return renderer.end_frame({ cmd_bufs[*frame_index] }); }); frame.add_run_end([&]() { clean_cmd_bufs(); - plotter.destroy(); + renderer.destroy(); render_target->destroy(); }); @@ -203,19 +203,19 @@ LAVA_TEST(5, "color block") { return input_ignore; }); - auto device = frame.create_device(); + device_ptr device = frame.create_device(); if (!device) return error::create_failed; - auto render_target = create_target(&window, device); + render_target::ptr render_target = create_target(&window, device); if (!render_target) return error::create_failed; - renderer plotter; - if (!plotter.create(render_target->get_swapchain())) + renderer renderer; + if (!renderer.create(render_target->get_swapchain())) return error::create_failed; - auto frame_count = render_target->get_frame_count(); + ui32 frame_count = render_target->get_frame_count(); block block; @@ -231,7 +231,7 @@ LAVA_TEST(5, "color block") { .layerCount = 1, }; - auto frame_image = render_target->get_image(block.get_current_frame()); + VkImage frame_image = render_target->get_image(block.get_current_frame()); insert_image_memory_barrier(device, cmd_buf, frame_image, VK_ACCESS_MEMORY_READ_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, @@ -255,20 +255,20 @@ LAVA_TEST(5, "color block") { if (window.resize_request()) return window.handle_resize(); - auto frame_index = plotter.begin_frame(); + auto frame_index = renderer.begin_frame(); if (!frame_index) return run_continue; if (!block.process(*frame_index)) return run_abort; - return plotter.end_frame(block.get_buffers()); + return renderer.end_frame(block.get_buffers()); }); frame.add_run_end([&]() { block.destroy(); - plotter.destroy(); + renderer.destroy(); render_target->destroy(); }); @@ -294,11 +294,11 @@ LAVA_TEST(6, "forward shading") { return input_ignore; }); - auto device = frame.create_device(); + device_ptr device = frame.create_device(); if (!device) return error::create_failed; - auto render_target = create_target(&window, device); + render_target::ptr render_target = create_target(&window, device); if (!render_target) return error::create_failed; @@ -306,7 +306,7 @@ LAVA_TEST(6, "forward shading") { if (!shading.create(render_target)) return error::create_failed; - auto render_pass = shading.get_pass(); + render_pass::ptr render_pass = shading.get_pass(); block block; if (!block.create(device, render_target->get_frame_count(), device->graphics_queue().family)) @@ -317,8 +317,8 @@ LAVA_TEST(6, "forward shading") { render_pass->process(cmd_buf, block.get_current_frame()); }); - renderer plotter; - if (!plotter.create(render_target->get_swapchain())) + renderer renderer; + if (!renderer.create(render_target->get_swapchain())) return error::create_failed; frame.add_run([&]() { @@ -338,21 +338,21 @@ LAVA_TEST(6, "forward shading") { frame.set_wait_for_events(false); } - auto frame_index = plotter.begin_frame(); + auto frame_index = renderer.begin_frame(); if (!frame_index) return run_continue; if (!block.process(*frame_index)) return run_abort; - return plotter.end_frame(block.get_buffers()); + return renderer.end_frame(block.get_buffers()); }); frame.add_run_end([&]() { block.destroy(); shading.destroy(); - plotter.destroy(); + renderer.destroy(); render_target->destroy(); }); @@ -365,7 +365,7 @@ LAVA_TEST(7, "gamepad") { return error::not_ready; gamepad_manager::add([&](gamepad pad, bool active) { - auto id = pad.get_id(); + ui32 id = pad.get_id(); if (active) log()->info("gamepad {} - active ({})", id, pad.get_name()); @@ -375,7 +375,7 @@ LAVA_TEST(7, "gamepad") { return input_ignore; }); - for (auto& pad : gamepads()) + for (gamepad& pad : gamepads()) log()->info("gamepad {} - active ({})", pad.get_id(), pad.get_name()); log()->info("Waiting some seconds for gamepads...");