From ee4bf54bf35d980e231bb41bd9b902b1c317409c Mon Sep 17 00:00:00 2001 From: Joshua Ashton Date: Fri, 12 Aug 2022 13:34:04 +0100 Subject: [PATCH] helpers --- include/Orange/Render/RenderContext.h | 7 +++++++ include/Orange/Render/VulkanHelpers.h | 13 +++++++++++++ src/Apps/Tools/CubeTest.cpp | 18 +++++++++++------- src/Orange/Render/Swapchain.cpp | 2 +- 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/include/Orange/Render/RenderContext.h b/include/Orange/Render/RenderContext.h index 83ce04a..fb82fcf 100644 --- a/include/Orange/Render/RenderContext.h +++ b/include/Orange/Render/RenderContext.h @@ -8,6 +8,13 @@ namespace orange { + class BufferPool + { + private: + VkBuffer m_buffer; + VkDeviceAddress m_va; + }; + template using VulkanResult = Result; diff --git a/include/Orange/Render/VulkanHelpers.h b/include/Orange/Render/VulkanHelpers.h index f3b818b..f87b0c9 100644 --- a/include/Orange/Render/VulkanHelpers.h +++ b/include/Orange/Render/VulkanHelpers.h @@ -27,4 +27,17 @@ namespace orange .baseArrayLayer = 0, .layerCount = 1, }; + + constexpr VkFormat FormatToSrgbFormat(VkFormat format) + { + switch (format) + { + case VK_FORMAT_R8G8B8A8_UNORM: + return VK_FORMAT_R8G8B8A8_SRGB; + case VK_FORMAT_B8G8R8A8_UNORM: + return VK_FORMAT_B8G8R8A8_SRGB; + default: + return format; + } + } } diff --git a/src/Apps/Tools/CubeTest.cpp b/src/Apps/Tools/CubeTest.cpp index 5b3fa0e..75fb535 100644 --- a/src/Apps/Tools/CubeTest.cpp +++ b/src/Apps/Tools/CubeTest.cpp @@ -230,7 +230,7 @@ int main(int argc, char** argv) VkPipelineRasterizationStateCreateInfo rasterizationInfo = { .sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO, - .cullMode = VK_CULL_MODE_NONE, //VK_CULL_MODE_BACK_BIT, + .cullMode = VK_CULL_MODE_NONE, //VK_CULL_MODE_BACK_BIT, .frontFace = VK_FRONT_FACE_CLOCKWISE, }; @@ -295,7 +295,8 @@ int main(int argc, char** argv) while (r_window->Update()) { - r_renderContext->BeginCommandBuffer(r_swapchain->CommandBuffer()); + VkCommandBuffer cmdBuf = r_swapchain->CommandBuffer(); + r_renderContext->BeginCommandBuffer(cmdBuf); { VkViewport viewport = { @@ -313,8 +314,10 @@ int main(int argc, char** argv) .extent = r_swapchain->Extent(), }; - vkCmdSetViewport(r_swapchain->CommandBuffer(), 0, 1, &viewport); - vkCmdSetScissor(r_swapchain->CommandBuffer(), 0, 1, &scissor); + vkCmdSetViewport(cmdBuf, 0, 1, &viewport); + vkCmdSetScissor(cmdBuf, 0, 1, &scissor); + + vkCmdBindPipeline(cmdBuf, VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline); const VkRenderingAttachmentInfoKHR attachmentInfo = { @@ -334,10 +337,11 @@ int main(int argc, char** argv) .colorAttachmentCount = 1, .pColorAttachments = &attachmentInfo, }; - vkCmdBeginRendering(r_swapchain->CommandBuffer(), &renderInfo); - vkCmdEndRendering(r_swapchain->CommandBuffer()); + vkCmdBeginRendering(cmdBuf, &renderInfo); + vkCmdDraw(cmdBuf, 3, 1, 0, 0); + vkCmdEndRendering(cmdBuf); } - r_renderContext->EndCommandBuffer(r_swapchain->CommandBuffer()); + r_renderContext->EndCommandBuffer(cmdBuf); r_swapchain->Present(); } diff --git a/src/Orange/Render/Swapchain.cpp b/src/Orange/Render/Swapchain.cpp index b1918cd..fb6983b 100644 --- a/src/Orange/Render/Swapchain.cpp +++ b/src/Orange/Render/Swapchain.cpp @@ -111,7 +111,7 @@ namespace orange .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, .image = swapchainImages[i], .viewType = VK_IMAGE_VIEW_TYPE_2D, - .format = r_format->format, + .format = FormatToSrgbFormat(r_format->format), .subresourceRange = FirstMipSubresourceRange, };