Moved vulkan files

This commit is contained in:
Pasha Bibko
2025-11-16 21:20:43 +00:00
parent 5dc0974d50
commit edcf13d62a
5 changed files with 5 additions and 5 deletions

View File

@@ -0,0 +1,76 @@
#include "VulkanManager.h"
namespace PB::Renderer
{
bool VulkanManager::RenderPass()
{
uint32_t imageIndex;
VkResult result = vkAcquireNextImageKHR(
s_Device,
s_SwapChain,
UINT64_MAX,
s_ImageAvailableSemaphore,
VK_NULL_HANDLE,
&imageIndex
);
if (result == VK_ERROR_OUT_OF_DATE_KHR)
{
return false;
}
if (result != VK_SUCCESS && result != VK_SUBOPTIMAL_KHR)
{
std::cout << "PB::Renderer::VulkanManager::RenderPass(): Failed to acquire swap chain image!" << std::endl;
return false;
}
VkSubmitInfo submitInfo{};
submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
const VkSemaphore waitSemaphores[] = { s_ImageAvailableSemaphore };
constexpr VkPipelineStageFlags waitStages[] = { VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT };
submitInfo.waitSemaphoreCount = 1;
submitInfo.pWaitSemaphores = waitSemaphores;
submitInfo.pWaitDstStageMask = waitStages;
submitInfo.commandBufferCount = 1;
submitInfo.pCommandBuffers = &s_CommandBuffers[imageIndex];
const VkSemaphore signalSemaphores[] = { s_RenderFinishedSemaphore };
submitInfo.signalSemaphoreCount = 1;
submitInfo.pSignalSemaphores = signalSemaphores;
if (vkQueueSubmit(s_GraphicsQueue, 1, &submitInfo, VK_NULL_HANDLE) != VK_SUCCESS)
{
std::cout << "PB::Renderer::VulkanManager::RenderPass(): Failed to submit draw command buffer!" << std::endl;
return false;
}
VkPresentInfoKHR presentInfo{};
presentInfo.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
presentInfo.waitSemaphoreCount = 1;
presentInfo.pWaitSemaphores = signalSemaphores;
const VkSwapchainKHR swapChains[] = { s_SwapChain };
presentInfo.swapchainCount = 1;
presentInfo.pSwapchains = swapChains;
presentInfo.pImageIndices = &imageIndex;
result = vkQueuePresentKHR(s_PresentQueue, &presentInfo);
if (result == VK_ERROR_OUT_OF_DATE_KHR || result == VK_SUBOPTIMAL_KHR)
{
return false;
}
if (result != VK_SUCCESS)
{
std::cout << "PB::Renderer::VulkanManager::RenderPass(): Failed to present swap chain image!" << std::endl;
return false;
}
vkQueueWaitIdle(s_PresentQueue);
return true;
}
}