Vulkan/Device: Allow to specify additionnal layers and extensions
Former-commit-id: adad0618a4a7a93c246cc97297e69601ee7af24c [formerly e8a833ff02f357280d80910c5f983d379054f82a] Former-commit-id: d2cf201e725836a709b2c633ea5c1c155e9bbc4f
This commit is contained in:
parent
e332f2f77e
commit
1634311008
|
|
@ -219,8 +219,31 @@ namespace Nz
|
|||
queueCreateInfos.emplace_back(createInfo);
|
||||
}
|
||||
|
||||
std::array<const char*, 1> enabledExtensions = {VK_KHR_SWAPCHAIN_EXTENSION_NAME};
|
||||
std::array<const char*, 0> enabledLayers;
|
||||
|
||||
std::vector<const char*> enabledLayers;
|
||||
std::vector<const char*> enabledExtensions;
|
||||
|
||||
bool bParam;
|
||||
if (!s_initializationParameters.GetBooleanParameter("VkDeviceInfo_OverrideEnabledExtensions", &bParam) || !bParam)
|
||||
enabledExtensions.push_back(VK_KHR_SWAPCHAIN_EXTENSION_NAME);
|
||||
|
||||
int iParam;
|
||||
std::vector<String> additionalExtensions; // Just to keep the String alive
|
||||
if (s_initializationParameters.GetIntegerParameter("VkDeviceInfo_EnabledExtensionCount", &iParam))
|
||||
{
|
||||
for (int i = 0; i < iParam; ++i)
|
||||
{
|
||||
Nz::String parameterName = "VkDeviceInfo_EnabledExtension" + String::Number(i);
|
||||
Nz::String extension;
|
||||
if (s_initializationParameters.GetStringParameter(parameterName, &extension))
|
||||
{
|
||||
additionalExtensions.emplace_back(std::move(extension));
|
||||
enabledExtensions.push_back(additionalExtensions.back().GetConstBuffer());
|
||||
}
|
||||
else
|
||||
NazaraWarning("Parameter " + parameterName + " expected");
|
||||
}
|
||||
}
|
||||
|
||||
VkDeviceCreateInfo createInfo = {
|
||||
VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
|
||||
|
|
|
|||
Loading…
Reference in New Issue