Added initializers for specialization constants

This commit is contained in:
saschawillems 2016-10-31 22:23:19 +01:00
parent 55f16c2340
commit a33ea8ed4b
2 changed files with 25 additions and 0 deletions

View file

@ -918,3 +918,22 @@ VkBindSparseInfo vkTools::initializers::bindSparseInfo()
bindSparseInfo.sType = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO;
return VkBindSparseInfo();
}
VkSpecializationMapEntry vkTools::initializers::specializationMapEntry(uint32_t constantID, uint32_t offset, size_t size)
{
VkSpecializationMapEntry specializationEntry{};
specializationEntry.constantID = constantID;
specializationEntry.offset = offset;
specializationEntry.size = size;
return specializationEntry;
}
VkSpecializationInfo vkTools::initializers::specializationInfo(uint32_t mapEntryCount, const VkSpecializationMapEntry* mapEntries, size_t dataSize, const void* data)
{
VkSpecializationInfo specializationInfo{};
specializationInfo.mapEntryCount = mapEntryCount;
specializationInfo.pMapEntries = mapEntries;
specializationInfo.dataSize = dataSize;
specializationInfo.pData = data;
return specializationInfo;
}

View file

@ -284,6 +284,12 @@ namespace vkTools
uint32_t offset);
VkBindSparseInfo bindSparseInfo();
/** @brief Initialize a map entry for a shader specialization constant */
VkSpecializationMapEntry specializationMapEntry(uint32_t constantID, uint32_t offset, size_t size);
/** @biref Initialize a specialization constant info structure to pass to a shader stage */
VkSpecializationInfo specializationInfo(uint32_t mapEntryCount, const VkSpecializationMapEntry* mapEntries, size_t dataSize, const void* data);
}
}