Reached shader lessons. Stopping to refactor code.
This commit is contained in:
2026-01-21 15:05:14 -05:00
parent 586ae1d18e
commit 15b3e294b5
21 changed files with 749 additions and 286 deletions

View File

@@ -8,11 +8,11 @@ VulkanInstanceManager::VulkanInstanceManager()
VulkanInstanceManager::~VulkanInstanceManager()
{
Cleanup();
// Cleanup();
}
VulkanInstanceManager::VulkanInstanceManager(VulkanInstanceManager&& Other) noexcept
: Instance(Other.Instance), bValidationEnabled(Other.bValidationEnabled), bVerboseLogging(Other.bVerboseLogging), VkDebugManager(std::move(Other.VkDebugManager))
: Instance(Other.Instance) /*, bValidationEnabled(Other.bValidationEnabled), bVerboseLogging(Other.bVerboseLogging), VkDebugManager(std::move(Other.VkDebugManager))*/
{
Other.Instance = VK_NULL_HANDLE;
Other.bValidationEnabled = false;
@@ -34,7 +34,28 @@ VulkanInstanceManager& VulkanInstanceManager::operator=(VulkanInstanceManager&&
return *this;
}
void VulkanInstanceManager::Initialize(const FVulkanConfig& Config)
// void VulkanInstanceManager::Initialize(const FVulkanConfig& Config)
//{
// if (IsInitialized())
// {
// Log::Warning("Already Initialized.");
// return;
// }
//
// bValidationEnabled = Config.bValidationEnabled;
// bVerboseLogging = Config.bVerboseLogging;
//
// if (bValidationEnabled)
// {
// Log::Info("DebugManager created with validation enabled.");
// VkDebugManager = std::make_unique<VulkanDebugManager>();
// }
//
// CreateInstance();
// }
void VulkanInstanceManager::Initialize(bool bEnableValidationLayers)
{
if (IsInitialized())
{
@@ -42,24 +63,27 @@ void VulkanInstanceManager::Initialize(const FVulkanConfig& Config)
return;
}
bValidationEnabled = Config.bValidationEnabled;
bVerboseLogging = Config.bVerboseLogging;
if (bValidationEnabled)
if (bEnableValidationLayers)
{
Log::Info("DebugManager created with validation enabled.");
VkDebugManager = std::make_unique<VulkanDebugManager>();
}
CreateInstance();
}
if (VkDebugManager)
void VulkanInstanceManager::SetupDebug()
{
if (bValidationEnabled)
{
VkDebugManager->Initialize(Instance);
}
}
void VulkanInstanceManager::SetupDevice()
{
VkDeviceManager = std::make_unique<VulkanDeviceManager>();
VkDeviceManager->Initialize(Instance);
VkDeviceManager->Initialize(Instance, bValidationEnabled, ValidationLayers);
}
void VulkanInstanceManager::Cleanup()
@@ -70,16 +94,16 @@ void VulkanInstanceManager::Cleanup()
return;
}
if (VkDebugManager)
{
VkDebugManager->Cleanup();
}
if (VkDeviceManager)
{
VkDeviceManager->Cleanup();
}
if (VkDebugManager)
{
VkDebugManager->Cleanup();
}
vkDestroyInstance(Instance, nullptr);
Instance = VK_NULL_HANDLE;
}
@@ -174,4 +198,4 @@ void VulkanInstanceManager::CreateInstance()
{
Log::Error("Failed to create instance!");
}
}
}