mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-14 17:01:22 +00:00
d919a85c8e
It seems to work when parsing the layouts. They can be created in-line (in theory) or in a "setLayouts" node and then referenced by name.
205 lines
5.5 KiB
Text
205 lines
5.5 KiB
Text
{
|
|
search = (
|
|
VkAttachmentDescription,
|
|
VkSubpassDescription,
|
|
VkSubpassDependency,
|
|
VkSpecializationInfo,
|
|
VkPipelineShaderStageCreateInfo,
|
|
VkPipelineVertexInputStateCreateInfo,
|
|
VkPipelineInputAssemblyStateCreateInfo,
|
|
VkPipelineViewportStateCreateInfo,
|
|
VkPipelineRasterizationStateCreateInfo,
|
|
VkPipelineMultisampleStateCreateInfo,
|
|
VkPipelineDepthStencilStateCreateInfo,
|
|
VkPipelineColorBlendStateCreateInfo,
|
|
VkPipelineDynamicStateCreateInfo,
|
|
VkDescriptorSetLayoutBinding,
|
|
VkDescriptorSetLayoutCreateInfo,
|
|
VkPushConstantRange,
|
|
VkPipelineLayoutCreateInfo,
|
|
qfv_swapchain_t,
|
|
);
|
|
parse = {
|
|
qfv_swapchain_s = {
|
|
.name = qfv_swapchain_t;
|
|
format = auto;
|
|
};
|
|
VkSubpassDescription = {
|
|
flags = auto;
|
|
pipelineBindPoint = auto;
|
|
inputAttachments = {
|
|
type = (array, VkAttachmentReference);
|
|
size = inputAttachmentCount;
|
|
values = pInputAttachments;
|
|
};
|
|
colorAttachments = {
|
|
type = (array, VkAttachmentReference);
|
|
size = colorAttachmentCount;
|
|
values = pColorAttachments;
|
|
};
|
|
resolveAttachments = {
|
|
type = (array, VkAttachmentReference);
|
|
values = pResolveAttachments;
|
|
matchSize = colorAttachments;
|
|
};
|
|
depthStencilAttachment = {
|
|
type = (single, VkAttachmentReference);
|
|
value = pDepthStencilAttachment;
|
|
};
|
|
preserveAttachments = {
|
|
type = (array, uint32_t);
|
|
size = preserveAttachmentCount;
|
|
values = pPreserveAttachments;
|
|
};
|
|
};
|
|
VkSpecializationInfo = {
|
|
mapEntries = {
|
|
type = (array, VkSpecializationMapEntry);
|
|
size = mapEntryCount;
|
|
values = pMapEntries;
|
|
};
|
|
data = {
|
|
type = data;
|
|
size = dataSize;
|
|
data = pData;
|
|
};
|
|
};
|
|
VkPipelineShaderStageCreateInfo = {
|
|
flags = auto;
|
|
stage = auto;
|
|
name = {
|
|
type = string;
|
|
string = pName;
|
|
};
|
|
module = {
|
|
type = (custom, QFString, parse_VkShaderModule);
|
|
fields = (module);
|
|
};
|
|
specializationInfo = {
|
|
type = (single, VkSpecializationInfo);
|
|
value = pSpecializationInfo;
|
|
};
|
|
};
|
|
VkShaderModuleCreateInfo = skip;
|
|
VkDescriptorSetLayoutBinding = {
|
|
binding = auto;
|
|
descriptorType = auto;
|
|
descriptorCount = auto;
|
|
stageFlags = auto;
|
|
// skip pImmutableSamplers (default to 0) until I know how it works
|
|
};
|
|
VkDescriptorSetLayoutCreateInfo = {
|
|
flags = auto;
|
|
bindings = {
|
|
type = (array, VkDescriptorSetLayoutBinding);
|
|
size = bindingCount;
|
|
values = pBindings;
|
|
};
|
|
};
|
|
VkPipelineVertexInputStateCreateInfo = {
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
bindings = {
|
|
type = (array, VkVertexInputBindingDescription);
|
|
size = vertexBindingDescriptionCount;
|
|
values = pVertexBindingDescriptions;
|
|
};
|
|
attributes = {
|
|
type = (array, VkVertexInputAttributeDescription);
|
|
size = vertexAttributeDescriptionCount;
|
|
values = pVertexAttributeDescriptions;
|
|
};
|
|
};
|
|
VkPipelineInputAssemblyStateCreateInfo = {
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
topology = auto;
|
|
primitiveRestartEnable = auto;
|
|
};
|
|
VkPipelineViewportStateCreateInfo = {
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
//FIXME redo as one array
|
|
viewports = {
|
|
type = (array, VkViewport);
|
|
size = viewportCount;
|
|
values = pViewports;
|
|
};
|
|
scissors = {
|
|
type = (array, VkRect2D);
|
|
size = scissorCount;
|
|
values = pScissors;
|
|
};
|
|
};
|
|
VkPipelineRasterizationStateCreateInfo = {
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
depthClampEnable = auto;
|
|
rasterizerDiscardEnable = auto;
|
|
polygonMode = auto;
|
|
cullMode = auto;
|
|
frontFace = auto;
|
|
depthBiasEnable = auto;
|
|
depthBiasConstantFactor = auto;
|
|
depthBiasClamp = auto;
|
|
depthBiasSlopeFactor = auto;
|
|
lineWidth = auto;
|
|
};
|
|
VkPipelineMultisampleStateCreateInfo = {
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
rasterizationSamples = auto;
|
|
sampleShadingEnable = auto;
|
|
minSampleShading = auto;
|
|
//pSampleMask = auto; FIXME disabled until correct size is known
|
|
alphaToCoverageEnable = auto;
|
|
alphaToOneEnable = auto;
|
|
};
|
|
VkPipelineDepthStencilStateCreateInfo = {
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
depthTestEnable = auto;
|
|
depthWriteEnable = auto;
|
|
depthCompareOp = auto;
|
|
depthBoundsTestEnable = auto;
|
|
stencilTestEnable = auto;
|
|
front = auto;
|
|
back = auto;
|
|
minDepthBounds = auto;
|
|
maxDepthBounds = auto;
|
|
};
|
|
VkPipelineColorBlendStateCreateInfo = {
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
logicOpEnable = auto;
|
|
logicOp = auto;
|
|
attachments = {
|
|
type = (array, VkPipelineColorBlendAttachmentState);
|
|
size = attachmentCount;
|
|
values = pAttachments;
|
|
};
|
|
blendConstants = {
|
|
type = (custom, QFString, parse_RGBA);
|
|
fields = (blendConstants);
|
|
};
|
|
};
|
|
VkPipelineDynamicStateCreateInfo = {
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
dynamicState = {
|
|
type = (array, VkDynamicState);
|
|
size = dynamicStateCount;
|
|
values = pDynamicStates;
|
|
};
|
|
};
|
|
VkPipelineLayoutCreateInfo = {
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
setLayouts = {
|
|
type = (array, {
|
|
parse_type = (QFDictionary, QFString);
|
|
type = VkDescriptorSetLayout;
|
|
parser = parse_VkDescriptorSetLayout;
|
|
});
|
|
size = setLayoutCount;
|
|
values = pSetLayouts;
|
|
};
|
|
pushConstantRanges = {
|
|
type = (array, VkPushConstantRange);
|
|
size = pushConstantRangeCount;
|
|
values = pPushConstantRanges;
|
|
};
|
|
}
|
|
}
|
|
}
|