Virtual function for enabling physical device features (instead of function pointer in constructor)

This commit is contained in:
saschawillems 2016-12-14 20:17:15 +01:00
parent d24f8ec8b7
commit 00ed23db98
5 changed files with 29 additions and 21 deletions

View file

@ -169,9 +169,9 @@ public:
VkSemaphore offscreenSemaphore = VK_NULL_HANDLE;
// Device features to be enabled for this example
static VkPhysicalDeviceFeatures getEnabledFeatures()
virtual VkPhysicalDeviceFeatures getEnabledFeatures()
{
VkPhysicalDeviceFeatures enabledFeatures = {};
VkPhysicalDeviceFeatures enabledFeatures{};
enabledFeatures.geometryShader = VK_TRUE;
enabledFeatures.shaderClipDistance = VK_TRUE;
enabledFeatures.shaderCullDistance = VK_TRUE;
@ -179,7 +179,7 @@ public:
return enabledFeatures;
}
VulkanExample() : VulkanExampleBase(ENABLE_VALIDATION, getEnabledFeatures)
VulkanExample() : VulkanExampleBase(ENABLE_VALIDATION)
{
enableTextOverlay = true;
title = "Vulkan Example - Deferred shading with shadows (2016 by Sascha Willems)";
@ -669,25 +669,25 @@ public:
vkTools::initializers::descriptorImageInfo(
frameBuffers.deferred->sampler,
frameBuffers.deferred->attachments[0].view,
VK_IMAGE_LAYOUT_GENERAL);
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL);
VkDescriptorImageInfo texDescriptorNormal =
vkTools::initializers::descriptorImageInfo(
frameBuffers.deferred->sampler,
frameBuffers.deferred->attachments[1].view,
VK_IMAGE_LAYOUT_GENERAL);
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL);
VkDescriptorImageInfo texDescriptorAlbedo =
vkTools::initializers::descriptorImageInfo(
frameBuffers.deferred->sampler,
frameBuffers.deferred->attachments[2].view,
VK_IMAGE_LAYOUT_GENERAL);
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL);
VkDescriptorImageInfo texDescriptorShadowMap =
vkTools::initializers::descriptorImageInfo(
frameBuffers.shadow->sampler,
frameBuffers.shadow->attachments[0].view,
VK_IMAGE_LAYOUT_GENERAL);
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL);
writeDescriptorSets = {
// Binding 0: Vertex shader uniform buffer