diff --git a/Renderer/Renderer.cpp b/Renderer/Renderer.cpp index 122df2a..b3d3fd8 100644 --- a/Renderer/Renderer.cpp +++ b/Renderer/Renderer.cpp @@ -24,7 +24,7 @@ Renderer::Renderer(Window& win) : win(win) { .apiVersion = VK_API_VERSION_1_1, }; - const auto req_extensions = win.requiredExtensions(); + auto req_instance_extensions = win.requiredExtensions(); auto extensions = vk::enumerateInstanceExtensionProperties(); std::vector extension_names(extensions.size()); @@ -32,11 +32,12 @@ Renderer::Renderer(Window& win) : win(win) { extension_names[i] = extensions[i].extensionName; } - Log::info("%u Required extensions:\n", (u32)req_extensions.size()); - for (const auto& ext : req_extensions) { + Log::info("%u Required extensions:\n", (u32)req_instance_extensions.size()); + for (const auto& ext : req_instance_extensions) { Log::info("\t- \"%s\"\n", ext); } + /* query and enable available layers if in DEBUG mode */ #ifdef _DEBUG @@ -55,8 +56,8 @@ Renderer::Renderer(Window& win) : win(win) { .pApplicationInfo = &app_info, .enabledLayerCount = std::size(my_layers), .ppEnabledLayerNames = my_layers, - .enabledExtensionCount = static_cast(req_extensions.size()), - .ppEnabledExtensionNames = req_extensions.data(), + .enabledExtensionCount = static_cast(req_instance_extensions.size()), + .ppEnabledExtensionNames = req_instance_extensions.data(), }; #else @@ -116,8 +117,9 @@ Renderer::Renderer(Window& win) : win(win) { }; /* enumerate available device features */ - std::vector required_extensions; - required_extensions.push_back("VK_KHR_swapchain"); + std::vector req_dev_extensions; + req_dev_extensions.push_back("VK_KHR_swapchain"); + req_dev_extensions.push_back(VK_KHR_MAINTENANCE1_EXTENSION_NAME); auto dev_extentions = phys_dev.enumerateDeviceExtensionProperties(); Log::info("%zu available device extensions\n", dev_extentions.size()); for (const auto& ext : dev_extentions) { @@ -139,8 +141,8 @@ Renderer::Renderer(Window& win) : win(win) { .pQueueCreateInfos = &queue_info, .enabledLayerCount = static_cast(dev_layer_names.size()), .ppEnabledLayerNames = dev_layer_names.data(), - .enabledExtensionCount = static_cast(required_extensions.size()), - .ppEnabledExtensionNames = required_extensions.data(), + .enabledExtensionCount = static_cast(req_dev_extensions.size()), + .ppEnabledExtensionNames = req_dev_extensions.data(), }; dev = phys_dev.createDevice(dev_info); @@ -168,9 +170,9 @@ Renderer::Renderer(Window& win) : win(win) { /* basic triangle */ std::vector triangle = { - {{ 0.0, 0.5, 0.0 }}, - {{ 0.5, 0.0, 0.0 }}, - {{ 0.5, 0.5, 0.0 }}, + {{ 1.0, 1.0, 0.0 }}, + {{-1.0, 1.0, 0.0 }}, + {{ 0.0,-1.0, 0.0 }}, }; vertex_buffer = std::make_unique(phys_dev, dev, triangle.size()); @@ -230,11 +232,13 @@ void Renderer::draw() { .pClearValues = clear_values, }; + /* flip viewport */ auto viewport = vk::Viewport{ .x = 0.0f, - .y = 0.0f, +// .y = 0.0f, + .y = static_cast(swapchain->extent.height), .width = static_cast(swapchain->extent.width), - .height = static_cast(swapchain->extent.height), + .height = -static_cast(swapchain->extent.height), .minDepth = 0.0f, .maxDepth = 1.0f, }; diff --git a/assets/shaders/basic.frag b/assets/shaders/basic.frag index ed984e7..fcbe8a9 100644 --- a/assets/shaders/basic.frag +++ b/assets/shaders/basic.frag @@ -7,5 +7,6 @@ layout (set = 0, binding = 0) uniform Matrices { }; void main() { - FragColor = vec4(abs(cos(time)), 0.5, 1.0, 1.0); +// FragColor = vec4(abs(cos(time)), 0.5, 1.0, 1.0); + FragColor = vec4(1.0); } \ No newline at end of file diff --git a/assets/shaders/basic.frag.spv b/assets/shaders/basic.frag.spv index 973bbf0..f46c35c 100644 Binary files a/assets/shaders/basic.frag.spv and b/assets/shaders/basic.frag.spv differ