Initial upgrade

This commit is contained in:
Alejandro Saucedo 2020-07-31 06:42:45 +01:00
parent fc5e3acf65
commit 4019e9c885
4 changed files with 305 additions and 431 deletions

View file

@ -11,78 +11,63 @@
#pragma once
#include "vulkan/vulkan.h"
#include <vector>
#include "vulkan/vulkan.h"
namespace vks {
namespace initializers {
inline VkMemoryAllocateInfo
memoryAllocateInfo()
{
inline VkMemoryAllocateInfo memoryAllocateInfo() {
VkMemoryAllocateInfo memAllocInfo{};
memAllocInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
return memAllocInfo;
}
inline VkMappedMemoryRange
mappedMemoryRange()
{
inline VkMappedMemoryRange mappedMemoryRange() {
VkMappedMemoryRange mappedMemoryRange{};
mappedMemoryRange.sType = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE;
return mappedMemoryRange;
}
inline VkCommandBufferAllocateInfo
commandBufferAllocateInfo(VkCommandPool commandPool,
VkCommandBufferLevel level,
uint32_t bufferCount)
{
inline VkCommandBufferAllocateInfo commandBufferAllocateInfo(
VkCommandPool commandPool,
VkCommandBufferLevel level,
uint32_t bufferCount) {
VkCommandBufferAllocateInfo commandBufferAllocateInfo{};
commandBufferAllocateInfo.sType =
VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
commandBufferAllocateInfo.commandPool = commandPool;
commandBufferAllocateInfo.level = level;
commandBufferAllocateInfo.commandBufferCount = bufferCount;
return commandBufferAllocateInfo;
}
inline VkCommandPoolCreateInfo
commandPoolCreateInfo()
{
inline VkCommandPoolCreateInfo commandPoolCreateInfo() {
VkCommandPoolCreateInfo cmdPoolCreateInfo{};
cmdPoolCreateInfo.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO;
return cmdPoolCreateInfo;
}
inline VkCommandBufferBeginInfo
commandBufferBeginInfo()
{
inline VkCommandBufferBeginInfo commandBufferBeginInfo() {
VkCommandBufferBeginInfo cmdBufferBeginInfo{};
cmdBufferBeginInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
return cmdBufferBeginInfo;
}
inline VkCommandBufferInheritanceInfo
commandBufferInheritanceInfo()
{
inline VkCommandBufferInheritanceInfo commandBufferInheritanceInfo() {
VkCommandBufferInheritanceInfo cmdBufferInheritanceInfo{};
cmdBufferInheritanceInfo.sType =
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO;
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO;
return cmdBufferInheritanceInfo;
}
inline VkRenderPassBeginInfo
renderPassBeginInfo()
{
inline VkRenderPassBeginInfo renderPassBeginInfo() {
VkRenderPassBeginInfo renderPassBeginInfo{};
renderPassBeginInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
return renderPassBeginInfo;
}
inline VkRenderPassCreateInfo
renderPassCreateInfo()
{
inline VkRenderPassCreateInfo renderPassCreateInfo() {
VkRenderPassCreateInfo renderPassCreateInfo{};
renderPassCreateInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
return renderPassCreateInfo;
@ -90,9 +75,7 @@ renderPassCreateInfo()
/** @brief Initialize an image memory barrier with no image transfer ownership
*/
inline VkImageMemoryBarrier
imageMemoryBarrier()
{
inline VkImageMemoryBarrier imageMemoryBarrier() {
VkImageMemoryBarrier imageMemoryBarrier{};
imageMemoryBarrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
imageMemoryBarrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
@ -102,9 +85,7 @@ imageMemoryBarrier()
/** @brief Initialize a buffer memory barrier with no image transfer ownership
*/
inline VkBufferMemoryBarrier
bufferMemoryBarrier()
{
inline VkBufferMemoryBarrier bufferMemoryBarrier() {
VkBufferMemoryBarrier bufferMemoryBarrier{};
bufferMemoryBarrier.sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER;
bufferMemoryBarrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
@ -112,83 +93,66 @@ bufferMemoryBarrier()
return bufferMemoryBarrier;
}
inline VkMemoryBarrier
memoryBarrier()
{
inline VkMemoryBarrier memoryBarrier() {
VkMemoryBarrier memoryBarrier{};
memoryBarrier.sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER;
return memoryBarrier;
}
inline VkImageCreateInfo
imageCreateInfo()
{
inline VkImageCreateInfo imageCreateInfo() {
VkImageCreateInfo imageCreateInfo{};
imageCreateInfo.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
return imageCreateInfo;
}
inline VkSamplerCreateInfo
samplerCreateInfo()
{
inline VkSamplerCreateInfo samplerCreateInfo() {
VkSamplerCreateInfo samplerCreateInfo{};
samplerCreateInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
samplerCreateInfo.maxAnisotropy = 1.0f;
return samplerCreateInfo;
}
inline VkImageViewCreateInfo
imageViewCreateInfo()
{
inline VkImageViewCreateInfo imageViewCreateInfo() {
VkImageViewCreateInfo imageViewCreateInfo{};
imageViewCreateInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
return imageViewCreateInfo;
}
inline VkFramebufferCreateInfo
framebufferCreateInfo()
{
inline VkFramebufferCreateInfo framebufferCreateInfo() {
VkFramebufferCreateInfo framebufferCreateInfo{};
framebufferCreateInfo.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO;
return framebufferCreateInfo;
}
inline VkSemaphoreCreateInfo
semaphoreCreateInfo()
{
inline VkSemaphoreCreateInfo semaphoreCreateInfo() {
VkSemaphoreCreateInfo semaphoreCreateInfo{};
semaphoreCreateInfo.sType = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO;
return semaphoreCreateInfo;
}
inline VkFenceCreateInfo
fenceCreateInfo(VkFenceCreateFlags flags = 0)
{
inline VkFenceCreateInfo fenceCreateInfo(VkFenceCreateFlags flags = 0) {
VkFenceCreateInfo fenceCreateInfo{};
fenceCreateInfo.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO;
fenceCreateInfo.flags = flags;
return fenceCreateInfo;
}
inline VkEventCreateInfo
eventCreateInfo()
{
inline VkEventCreateInfo eventCreateInfo() {
VkEventCreateInfo eventCreateInfo{};
eventCreateInfo.sType = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO;
return eventCreateInfo;
}
inline VkSubmitInfo
submitInfo()
{
inline VkSubmitInfo submitInfo() {
VkSubmitInfo submitInfo{};
submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
return submitInfo;
}
inline VkViewport
viewport(float width, float height, float minDepth, float maxDepth)
{
inline VkViewport viewport(float width,
float height,
float minDepth,
float maxDepth) {
VkViewport viewport{};
viewport.width = width;
viewport.height = height;
@ -197,9 +161,10 @@ viewport(float width, float height, float minDepth, float maxDepth)
return viewport;
}
inline VkRect2D
rect2D(int32_t width, int32_t height, int32_t offsetX, int32_t offsetY)
{
inline VkRect2D rect2D(int32_t width,
int32_t height,
int32_t offsetX,
int32_t offsetY) {
VkRect2D rect2D{};
rect2D.extent.width = width;
rect2D.extent.height = height;
@ -208,17 +173,14 @@ rect2D(int32_t width, int32_t height, int32_t offsetX, int32_t offsetY)
return rect2D;
}
inline VkBufferCreateInfo
bufferCreateInfo()
{
inline VkBufferCreateInfo bufferCreateInfo() {
VkBufferCreateInfo bufCreateInfo{};
bufCreateInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
return bufCreateInfo;
}
inline VkBufferCreateInfo
bufferCreateInfo(VkBufferUsageFlags usage, VkDeviceSize size)
{
inline VkBufferCreateInfo bufferCreateInfo(VkBufferUsageFlags usage,
VkDeviceSize size) {
VkBufferCreateInfo bufCreateInfo{};
bufCreateInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
bufCreateInfo.usage = usage;
@ -226,11 +188,10 @@ bufferCreateInfo(VkBufferUsageFlags usage, VkDeviceSize size)
return bufCreateInfo;
}
inline VkDescriptorPoolCreateInfo
descriptorPoolCreateInfo(uint32_t poolSizeCount,
VkDescriptorPoolSize* pPoolSizes,
uint32_t maxSets)
{
inline VkDescriptorPoolCreateInfo descriptorPoolCreateInfo(
uint32_t poolSizeCount,
VkDescriptorPoolSize* pPoolSizes,
uint32_t maxSets) {
VkDescriptorPoolCreateInfo descriptorPoolInfo{};
descriptorPoolInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
descriptorPoolInfo.poolSizeCount = poolSizeCount;
@ -239,10 +200,9 @@ descriptorPoolCreateInfo(uint32_t poolSizeCount,
return descriptorPoolInfo;
}
inline VkDescriptorPoolCreateInfo
descriptorPoolCreateInfo(const std::vector<VkDescriptorPoolSize>& poolSizes,
uint32_t maxSets)
{
inline VkDescriptorPoolCreateInfo descriptorPoolCreateInfo(
const std::vector<VkDescriptorPoolSize>& poolSizes,
uint32_t maxSets) {
VkDescriptorPoolCreateInfo descriptorPoolInfo{};
descriptorPoolInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
descriptorPoolInfo.poolSizeCount = static_cast<uint32_t>(poolSizes.size());
@ -251,21 +211,19 @@ descriptorPoolCreateInfo(const std::vector<VkDescriptorPoolSize>& poolSizes,
return descriptorPoolInfo;
}
inline VkDescriptorPoolSize
descriptorPoolSize(VkDescriptorType type, uint32_t descriptorCount)
{
inline VkDescriptorPoolSize descriptorPoolSize(VkDescriptorType type,
uint32_t descriptorCount) {
VkDescriptorPoolSize descriptorPoolSize{};
descriptorPoolSize.type = type;
descriptorPoolSize.descriptorCount = descriptorCount;
return descriptorPoolSize;
}
inline VkDescriptorSetLayoutBinding
descriptorSetLayoutBinding(VkDescriptorType type,
VkShaderStageFlags stageFlags,
uint32_t binding,
uint32_t descriptorCount = 1)
{
inline VkDescriptorSetLayoutBinding descriptorSetLayoutBinding(
VkDescriptorType type,
VkShaderStageFlags stageFlags,
uint32_t binding,
uint32_t descriptorCount = 1) {
VkDescriptorSetLayoutBinding setLayoutBinding{};
setLayoutBinding.descriptorType = type;
setLayoutBinding.stageFlags = stageFlags;
@ -274,72 +232,64 @@ descriptorSetLayoutBinding(VkDescriptorType type,
return setLayoutBinding;
}
inline VkDescriptorSetLayoutCreateInfo
descriptorSetLayoutCreateInfo(const VkDescriptorSetLayoutBinding* pBindings,
uint32_t bindingCount)
{
inline VkDescriptorSetLayoutCreateInfo descriptorSetLayoutCreateInfo(
const VkDescriptorSetLayoutBinding* pBindings,
uint32_t bindingCount) {
VkDescriptorSetLayoutCreateInfo descriptorSetLayoutCreateInfo{};
descriptorSetLayoutCreateInfo.sType =
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
descriptorSetLayoutCreateInfo.pBindings = pBindings;
descriptorSetLayoutCreateInfo.bindingCount = bindingCount;
return descriptorSetLayoutCreateInfo;
}
inline VkDescriptorSetLayoutCreateInfo
descriptorSetLayoutCreateInfo(
const std::vector<VkDescriptorSetLayoutBinding>& bindings)
{
inline VkDescriptorSetLayoutCreateInfo descriptorSetLayoutCreateInfo(
const std::vector<VkDescriptorSetLayoutBinding>& bindings) {
VkDescriptorSetLayoutCreateInfo descriptorSetLayoutCreateInfo{};
descriptorSetLayoutCreateInfo.sType =
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
descriptorSetLayoutCreateInfo.pBindings = bindings.data();
descriptorSetLayoutCreateInfo.bindingCount =
static_cast<uint32_t>(bindings.size());
static_cast<uint32_t>(bindings.size());
return descriptorSetLayoutCreateInfo;
}
inline VkPipelineLayoutCreateInfo
pipelineLayoutCreateInfo(const VkDescriptorSetLayout* pSetLayouts,
uint32_t setLayoutCount = 1)
{
inline VkPipelineLayoutCreateInfo pipelineLayoutCreateInfo(
const VkDescriptorSetLayout* pSetLayouts,
uint32_t setLayoutCount = 1) {
VkPipelineLayoutCreateInfo pipelineLayoutCreateInfo{};
pipelineLayoutCreateInfo.sType =
VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
pipelineLayoutCreateInfo.setLayoutCount = setLayoutCount;
pipelineLayoutCreateInfo.pSetLayouts = pSetLayouts;
return pipelineLayoutCreateInfo;
}
inline VkPipelineLayoutCreateInfo
pipelineLayoutCreateInfo(uint32_t setLayoutCount = 1)
{
inline VkPipelineLayoutCreateInfo pipelineLayoutCreateInfo(
uint32_t setLayoutCount = 1) {
VkPipelineLayoutCreateInfo pipelineLayoutCreateInfo{};
pipelineLayoutCreateInfo.sType =
VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
pipelineLayoutCreateInfo.setLayoutCount = setLayoutCount;
return pipelineLayoutCreateInfo;
}
inline VkDescriptorSetAllocateInfo
descriptorSetAllocateInfo(VkDescriptorPool descriptorPool,
const VkDescriptorSetLayout* pSetLayouts,
uint32_t descriptorSetCount)
{
inline VkDescriptorSetAllocateInfo descriptorSetAllocateInfo(
VkDescriptorPool descriptorPool,
const VkDescriptorSetLayout* pSetLayouts,
uint32_t descriptorSetCount) {
VkDescriptorSetAllocateInfo descriptorSetAllocateInfo{};
descriptorSetAllocateInfo.sType =
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
descriptorSetAllocateInfo.descriptorPool = descriptorPool;
descriptorSetAllocateInfo.pSetLayouts = pSetLayouts;
descriptorSetAllocateInfo.descriptorSetCount = descriptorSetCount;
return descriptorSetAllocateInfo;
}
inline VkDescriptorImageInfo
descriptorImageInfo(VkSampler sampler,
VkImageView imageView,
VkImageLayout imageLayout)
{
inline VkDescriptorImageInfo descriptorImageInfo(VkSampler sampler,
VkImageView imageView,
VkImageLayout imageLayout) {
VkDescriptorImageInfo descriptorImageInfo{};
descriptorImageInfo.sampler = sampler;
descriptorImageInfo.imageView = imageView;
@ -347,13 +297,12 @@ descriptorImageInfo(VkSampler sampler,
return descriptorImageInfo;
}
inline VkWriteDescriptorSet
writeDescriptorSet(VkDescriptorSet dstSet,
VkDescriptorType type,
uint32_t binding,
VkDescriptorBufferInfo* bufferInfo,
uint32_t descriptorCount = 1)
{
inline VkWriteDescriptorSet writeDescriptorSet(
VkDescriptorSet dstSet,
VkDescriptorType type,
uint32_t binding,
VkDescriptorBufferInfo* bufferInfo,
uint32_t descriptorCount = 1) {
VkWriteDescriptorSet writeDescriptorSet{};
writeDescriptorSet.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
writeDescriptorSet.dstSet = dstSet;
@ -364,13 +313,11 @@ writeDescriptorSet(VkDescriptorSet dstSet,
return writeDescriptorSet;
}
inline VkWriteDescriptorSet
writeDescriptorSet(VkDescriptorSet dstSet,
VkDescriptorType type,
uint32_t binding,
VkDescriptorImageInfo* imageInfo,
uint32_t descriptorCount = 1)
{
inline VkWriteDescriptorSet writeDescriptorSet(VkDescriptorSet dstSet,
VkDescriptorType type,
uint32_t binding,
VkDescriptorImageInfo* imageInfo,
uint32_t descriptorCount = 1) {
VkWriteDescriptorSet writeDescriptorSet{};
writeDescriptorSet.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
writeDescriptorSet.dstSet = dstSet;
@ -381,11 +328,10 @@ writeDescriptorSet(VkDescriptorSet dstSet,
return writeDescriptorSet;
}
inline VkVertexInputBindingDescription
vertexInputBindingDescription(uint32_t binding,
uint32_t stride,
VkVertexInputRate inputRate)
{
inline VkVertexInputBindingDescription vertexInputBindingDescription(
uint32_t binding,
uint32_t stride,
VkVertexInputRate inputRate) {
VkVertexInputBindingDescription vInputBindDescription{};
vInputBindDescription.binding = binding;
vInputBindDescription.stride = stride;
@ -393,12 +339,11 @@ vertexInputBindingDescription(uint32_t binding,
return vInputBindDescription;
}
inline VkVertexInputAttributeDescription
vertexInputAttributeDescription(uint32_t binding,
uint32_t location,
VkFormat format,
uint32_t offset)
{
inline VkVertexInputAttributeDescription vertexInputAttributeDescription(
uint32_t binding,
uint32_t location,
VkFormat format,
uint32_t offset) {
VkVertexInputAttributeDescription vInputAttribDescription{};
vInputAttribDescription.location = location;
vInputAttribDescription.binding = binding;
@ -408,62 +353,58 @@ vertexInputAttributeDescription(uint32_t binding,
}
inline VkPipelineVertexInputStateCreateInfo
pipelineVertexInputStateCreateInfo()
{
pipelineVertexInputStateCreateInfo() {
VkPipelineVertexInputStateCreateInfo pipelineVertexInputStateCreateInfo{};
pipelineVertexInputStateCreateInfo.sType =
VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO;
VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO;
return pipelineVertexInputStateCreateInfo;
}
inline VkPipelineVertexInputStateCreateInfo
pipelineVertexInputStateCreateInfo(
const std::vector<VkVertexInputBindingDescription>& vertexBindingDescriptions,
const std::vector<VkVertexInputAttributeDescription>&
vertexAttributeDescriptions)
{
inline VkPipelineVertexInputStateCreateInfo pipelineVertexInputStateCreateInfo(
const std::vector<VkVertexInputBindingDescription>&
vertexBindingDescriptions,
const std::vector<VkVertexInputAttributeDescription>&
vertexAttributeDescriptions) {
VkPipelineVertexInputStateCreateInfo pipelineVertexInputStateCreateInfo{};
pipelineVertexInputStateCreateInfo.sType =
VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO;
VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO;
pipelineVertexInputStateCreateInfo.vertexBindingDescriptionCount =
static_cast<uint32_t>(vertexBindingDescriptions.size());
static_cast<uint32_t>(vertexBindingDescriptions.size());
pipelineVertexInputStateCreateInfo.pVertexBindingDescriptions =
vertexBindingDescriptions.data();
vertexBindingDescriptions.data();
pipelineVertexInputStateCreateInfo.vertexAttributeDescriptionCount =
static_cast<uint32_t>(vertexAttributeDescriptions.size());
static_cast<uint32_t>(vertexAttributeDescriptions.size());
pipelineVertexInputStateCreateInfo.pVertexAttributeDescriptions =
vertexAttributeDescriptions.data();
vertexAttributeDescriptions.data();
return pipelineVertexInputStateCreateInfo;
}
inline VkPipelineInputAssemblyStateCreateInfo
pipelineInputAssemblyStateCreateInfo(
VkPrimitiveTopology topology,
VkPipelineInputAssemblyStateCreateFlags flags,
VkBool32 primitiveRestartEnable)
{
VkPrimitiveTopology topology,
VkPipelineInputAssemblyStateCreateFlags flags,
VkBool32 primitiveRestartEnable) {
VkPipelineInputAssemblyStateCreateInfo
pipelineInputAssemblyStateCreateInfo{};
pipelineInputAssemblyStateCreateInfo{};
pipelineInputAssemblyStateCreateInfo.sType =
VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO;
VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO;
pipelineInputAssemblyStateCreateInfo.topology = topology;
pipelineInputAssemblyStateCreateInfo.flags = flags;
pipelineInputAssemblyStateCreateInfo.primitiveRestartEnable =
primitiveRestartEnable;
primitiveRestartEnable;
return pipelineInputAssemblyStateCreateInfo;
}
inline VkPipelineRasterizationStateCreateInfo
pipelineRasterizationStateCreateInfo(
VkPolygonMode polygonMode,
VkCullModeFlags cullMode,
VkFrontFace frontFace,
VkPipelineRasterizationStateCreateFlags flags = 0)
{
VkPolygonMode polygonMode,
VkCullModeFlags cullMode,
VkFrontFace frontFace,
VkPipelineRasterizationStateCreateFlags flags = 0) {
VkPipelineRasterizationStateCreateInfo
pipelineRasterizationStateCreateInfo{};
pipelineRasterizationStateCreateInfo{};
pipelineRasterizationStateCreateInfo.sType =
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO;
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO;
pipelineRasterizationStateCreateInfo.polygonMode = polygonMode;
pipelineRasterizationStateCreateInfo.cullMode = cullMode;
pipelineRasterizationStateCreateInfo.frontFace = frontFace;
@ -473,24 +414,21 @@ pipelineRasterizationStateCreateInfo(
return pipelineRasterizationStateCreateInfo;
}
inline VkPipelineColorBlendAttachmentState
pipelineColorBlendAttachmentState(VkColorComponentFlags colorWriteMask,
VkBool32 blendEnable)
{
inline VkPipelineColorBlendAttachmentState pipelineColorBlendAttachmentState(
VkColorComponentFlags colorWriteMask,
VkBool32 blendEnable) {
VkPipelineColorBlendAttachmentState pipelineColorBlendAttachmentState{};
pipelineColorBlendAttachmentState.colorWriteMask = colorWriteMask;
pipelineColorBlendAttachmentState.blendEnable = blendEnable;
return pipelineColorBlendAttachmentState;
}
inline VkPipelineColorBlendStateCreateInfo
pipelineColorBlendStateCreateInfo(
uint32_t attachmentCount,
const VkPipelineColorBlendAttachmentState* pAttachments)
{
inline VkPipelineColorBlendStateCreateInfo pipelineColorBlendStateCreateInfo(
uint32_t attachmentCount,
const VkPipelineColorBlendAttachmentState* pAttachments) {
VkPipelineColorBlendStateCreateInfo pipelineColorBlendStateCreateInfo{};
pipelineColorBlendStateCreateInfo.sType =
VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO;
VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO;
pipelineColorBlendStateCreateInfo.attachmentCount = attachmentCount;
pipelineColorBlendStateCreateInfo.pAttachments = pAttachments;
return pipelineColorBlendStateCreateInfo;
@ -499,11 +437,10 @@ pipelineColorBlendStateCreateInfo(
inline VkPipelineDepthStencilStateCreateInfo
pipelineDepthStencilStateCreateInfo(VkBool32 depthTestEnable,
VkBool32 depthWriteEnable,
VkCompareOp depthCompareOp)
{
VkCompareOp depthCompareOp) {
VkPipelineDepthStencilStateCreateInfo pipelineDepthStencilStateCreateInfo{};
pipelineDepthStencilStateCreateInfo.sType =
VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO;
VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO;
pipelineDepthStencilStateCreateInfo.depthTestEnable = depthTestEnable;
pipelineDepthStencilStateCreateInfo.depthWriteEnable = depthWriteEnable;
pipelineDepthStencilStateCreateInfo.depthCompareOp = depthCompareOp;
@ -511,78 +448,70 @@ pipelineDepthStencilStateCreateInfo(VkBool32 depthTestEnable,
return pipelineDepthStencilStateCreateInfo;
}
inline VkPipelineViewportStateCreateInfo
pipelineViewportStateCreateInfo(uint32_t viewportCount,
uint32_t scissorCount,
VkPipelineViewportStateCreateFlags flags = 0)
{
inline VkPipelineViewportStateCreateInfo pipelineViewportStateCreateInfo(
uint32_t viewportCount,
uint32_t scissorCount,
VkPipelineViewportStateCreateFlags flags = 0) {
VkPipelineViewportStateCreateInfo pipelineViewportStateCreateInfo{};
pipelineViewportStateCreateInfo.sType =
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO;
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO;
pipelineViewportStateCreateInfo.viewportCount = viewportCount;
pipelineViewportStateCreateInfo.scissorCount = scissorCount;
pipelineViewportStateCreateInfo.flags = flags;
return pipelineViewportStateCreateInfo;
}
inline VkPipelineMultisampleStateCreateInfo
pipelineMultisampleStateCreateInfo(
VkSampleCountFlagBits rasterizationSamples,
VkPipelineMultisampleStateCreateFlags flags = 0)
{
inline VkPipelineMultisampleStateCreateInfo pipelineMultisampleStateCreateInfo(
VkSampleCountFlagBits rasterizationSamples,
VkPipelineMultisampleStateCreateFlags flags = 0) {
VkPipelineMultisampleStateCreateInfo pipelineMultisampleStateCreateInfo{};
pipelineMultisampleStateCreateInfo.sType =
VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO;
VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO;
pipelineMultisampleStateCreateInfo.rasterizationSamples =
rasterizationSamples;
rasterizationSamples;
pipelineMultisampleStateCreateInfo.flags = flags;
return pipelineMultisampleStateCreateInfo;
}
inline VkPipelineDynamicStateCreateInfo
pipelineDynamicStateCreateInfo(const VkDynamicState* pDynamicStates,
uint32_t dynamicStateCount,
VkPipelineDynamicStateCreateFlags flags = 0)
{
inline VkPipelineDynamicStateCreateInfo pipelineDynamicStateCreateInfo(
const VkDynamicState* pDynamicStates,
uint32_t dynamicStateCount,
VkPipelineDynamicStateCreateFlags flags = 0) {
VkPipelineDynamicStateCreateInfo pipelineDynamicStateCreateInfo{};
pipelineDynamicStateCreateInfo.sType =
VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO;
VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO;
pipelineDynamicStateCreateInfo.pDynamicStates = pDynamicStates;
pipelineDynamicStateCreateInfo.dynamicStateCount = dynamicStateCount;
pipelineDynamicStateCreateInfo.flags = flags;
return pipelineDynamicStateCreateInfo;
}
inline VkPipelineDynamicStateCreateInfo
pipelineDynamicStateCreateInfo(
const std::vector<VkDynamicState>& pDynamicStates,
VkPipelineDynamicStateCreateFlags flags = 0)
{
inline VkPipelineDynamicStateCreateInfo pipelineDynamicStateCreateInfo(
const std::vector<VkDynamicState>& pDynamicStates,
VkPipelineDynamicStateCreateFlags flags = 0) {
VkPipelineDynamicStateCreateInfo pipelineDynamicStateCreateInfo{};
pipelineDynamicStateCreateInfo.sType =
VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO;
VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO;
pipelineDynamicStateCreateInfo.pDynamicStates = pDynamicStates.data();
pipelineDynamicStateCreateInfo.dynamicStateCount =
static_cast<uint32_t>(pDynamicStates.size());
static_cast<uint32_t>(pDynamicStates.size());
pipelineDynamicStateCreateInfo.flags = flags;
return pipelineDynamicStateCreateInfo;
}
inline VkPipelineTessellationStateCreateInfo
pipelineTessellationStateCreateInfo(uint32_t patchControlPoints)
{
pipelineTessellationStateCreateInfo(uint32_t patchControlPoints) {
VkPipelineTessellationStateCreateInfo pipelineTessellationStateCreateInfo{};
pipelineTessellationStateCreateInfo.sType =
VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO;
VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO;
pipelineTessellationStateCreateInfo.patchControlPoints = patchControlPoints;
return pipelineTessellationStateCreateInfo;
}
inline VkGraphicsPipelineCreateInfo
pipelineCreateInfo(VkPipelineLayout layout,
VkRenderPass renderPass,
VkPipelineCreateFlags flags = 0)
{
inline VkGraphicsPipelineCreateInfo pipelineCreateInfo(
VkPipelineLayout layout,
VkRenderPass renderPass,
VkPipelineCreateFlags flags = 0) {
VkGraphicsPipelineCreateInfo pipelineCreateInfo{};
pipelineCreateInfo.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;
pipelineCreateInfo.layout = layout;
@ -593,9 +522,7 @@ pipelineCreateInfo(VkPipelineLayout layout,
return pipelineCreateInfo;
}
inline VkGraphicsPipelineCreateInfo
pipelineCreateInfo()
{
inline VkGraphicsPipelineCreateInfo pipelineCreateInfo() {
VkGraphicsPipelineCreateInfo pipelineCreateInfo{};
pipelineCreateInfo.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;
pipelineCreateInfo.basePipelineIndex = -1;
@ -603,21 +530,20 @@ pipelineCreateInfo()
return pipelineCreateInfo;
}
inline VkComputePipelineCreateInfo
computePipelineCreateInfo(VkPipelineLayout layout,
VkPipelineCreateFlags flags = 0)
{
inline VkComputePipelineCreateInfo computePipelineCreateInfo(
VkPipelineLayout layout,
VkPipelineCreateFlags flags = 0) {
VkComputePipelineCreateInfo computePipelineCreateInfo{};
computePipelineCreateInfo.sType =
VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO;
VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO;
computePipelineCreateInfo.layout = layout;
computePipelineCreateInfo.flags = flags;
return computePipelineCreateInfo;
}
inline VkPushConstantRange
pushConstantRange(VkShaderStageFlags stageFlags, uint32_t size, uint32_t offset)
{
inline VkPushConstantRange pushConstantRange(VkShaderStageFlags stageFlags,
uint32_t size,
uint32_t offset) {
VkPushConstantRange pushConstantRange{};
pushConstantRange.stageFlags = stageFlags;
pushConstantRange.offset = offset;
@ -625,18 +551,16 @@ pushConstantRange(VkShaderStageFlags stageFlags, uint32_t size, uint32_t offset)
return pushConstantRange;
}
inline VkBindSparseInfo
bindSparseInfo()
{
inline VkBindSparseInfo bindSparseInfo() {
VkBindSparseInfo bindSparseInfo{};
bindSparseInfo.sType = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO;
return bindSparseInfo;
}
/** @brief Initialize a map entry for a shader specialization constant */
inline VkSpecializationMapEntry
specializationMapEntry(uint32_t constantID, uint32_t offset, size_t size)
{
inline VkSpecializationMapEntry specializationMapEntry(uint32_t constantID,
uint32_t offset,
size_t size) {
VkSpecializationMapEntry specializationMapEntry{};
specializationMapEntry.constantID = constantID;
specializationMapEntry.offset = offset;
@ -646,12 +570,11 @@ specializationMapEntry(uint32_t constantID, uint32_t offset, size_t size)
/** @brief Initialize a specialization constant info structure to pass to a
* shader stage */
inline VkSpecializationInfo
specializationInfo(uint32_t mapEntryCount,
const VkSpecializationMapEntry* mapEntries,
size_t dataSize,
const void* data)
{
inline VkSpecializationInfo specializationInfo(
uint32_t mapEntryCount,
const VkSpecializationMapEntry* mapEntries,
size_t dataSize,
const void* data) {
VkSpecializationInfo specializationInfo{};
specializationInfo.mapEntryCount = mapEntryCount;
specializationInfo.pMapEntries = mapEntries;
@ -662,11 +585,10 @@ specializationInfo(uint32_t mapEntryCount,
/** @brief Initialize a specialization constant info structure to pass to a
* shader stage */
inline VkSpecializationInfo
specializationInfo(const std::vector<VkSpecializationMapEntry>& mapEntries,
size_t dataSize,
const void* data)
{
inline VkSpecializationInfo specializationInfo(
const std::vector<VkSpecializationMapEntry>& mapEntries,
size_t dataSize,
const void* data) {
VkSpecializationInfo specializationInfo{};
specializationInfo.mapEntryCount = static_cast<uint32_t>(mapEntries.size());
specializationInfo.pMapEntries = mapEntries.data();
@ -675,5 +597,5 @@ specializationInfo(const std::vector<VkSpecializationMapEntry>& mapEntries,
return specializationInfo;
}
} // namespace initializers
} // namespace vks
} // namespace initializers
} // namespace vks