diff --git a/openVulkanoCpp/Scene/Shader.hpp b/openVulkanoCpp/Scene/Shader.hpp index 3e272a7..d6e4056 100644 --- a/openVulkanoCpp/Scene/Shader.hpp +++ b/openVulkanoCpp/Scene/Shader.hpp @@ -14,6 +14,14 @@ namespace openVulkanoCpp::Scene { + enum class CullMode : uint32_t + { + NONE = 0, + FRONT, + BACK, + FRONT_AND_BACK + }; + enum class Topology : uint32_t { POINT_LIST = 0, @@ -122,6 +130,7 @@ namespace openVulkanoCpp::Scene std::vector shaderPrograms{}; std::vector vertexInputDescriptions{}; Topology topology = Topology::TRIANGLE_LIST; + CullMode cullMode = CullMode::BACK; ICloseable* renderShader = nullptr; Shader() = default; diff --git a/openVulkanoCpp/Vulkan/Scene/VulkanShader.cpp b/openVulkanoCpp/Vulkan/Scene/VulkanShader.cpp index 69b6890..cb00abd 100644 --- a/openVulkanoCpp/Vulkan/Scene/VulkanShader.cpp +++ b/openVulkanoCpp/Vulkan/Scene/VulkanShader.cpp @@ -67,7 +67,7 @@ namespace openVulkanoCpp::Vulkan attributeDescriptionsSize, attributeDescriptionsData }; vk::PipelineInputAssemblyStateCreateInfo inputAssembly = { {}, static_cast(shader->topology), 0 }; vk::PipelineRasterizationStateCreateInfo rasterizer = {}; - rasterizer.cullMode = vk::CullModeFlagBits::eBack; + rasterizer.cullMode = static_cast(shader->cullMode); vk::PipelineMultisampleStateCreateInfo msaa = {}; vk::PipelineDepthStencilStateCreateInfo depth = { {}, 1, 1, vk::CompareOp::eLess }; depth.maxDepthBounds = 1;