1#ifndef VULKAN_DYNAMICSTATE
2#define VULKAN_DYNAMICSTATE
4#include <vulkan/vulkan.h>
20 template<
typename... DS>
requires (std::same_as<DS, VkDynamicState> && ...)
21 DynamicState(DS... dynamicStates) : dynamicState{}, usedDynamicStates{ VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR } {
22 std::set<VkDynamicState> enumerateDynamicStates;
23 (enumerateDynamicStates.insert(dynamicStates), ...);
24 std::copy(enumerateDynamicStates.begin(), enumerateDynamicStates.end(), std::back_inserter(usedDynamicStates));
26 dynamicState.sType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO;
27 dynamicState.dynamicStateCount =
static_cast<uint32_t
>(usedDynamicStates.size());
28 dynamicState.pDynamicStates = usedDynamicStates.data();
32 const VkPipelineDynamicStateCreateInfo&
operator+()
const {
38 VkPipelineDynamicStateCreateInfo dynamicState;
39 std::vector<VkDynamicState> usedDynamicStates;
Describes what can be changed in the pipeline without having to create a new pipeline....
Definition: DynamicState.h:17
const VkPipelineDynamicStateCreateInfo & operator+() const
Definition: DynamicState.h:32
DynamicState(DS... dynamicStates)
Definition: DynamicState.h:21
Definition: Attachment.h:11