Class VulkanGraphicsPipelineCreateInfo
java.lang.Object
com.io7m.jcoronado.api.VulkanGraphicsPipelineCreateInfo
- All Implemented Interfaces:
VulkanGraphicsPipelineCreateInfoType
public final class VulkanGraphicsPipelineCreateInfo
extends Object
implements VulkanGraphicsPipelineCreateInfoType
Structure specifying parameters of a newly created graphics pipeline.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classBuilds instances of typeVulkanGraphicsPipelineCreateInfo. -
Method Summary
Modifier and TypeMethodDescriptionbuilder()Creates a builder forVulkanGraphicsPipelineCreateInfo.copyOf(VulkanGraphicsPipelineCreateInfoType instance) Creates an immutable copy of aVulkanGraphicsPipelineCreateInfoTypevalue.booleanThis instance is equal to all instances ofVulkanGraphicsPipelineCreateInfothat have equal attribute values.flags()inthashCode()Computes a hash code from attributes:flags,stages,vertexInputState,inputAssemblyState,tessellationState,viewportState,rasterizationState,multisampleState,depthStencilState,colorBlendState,dynamicState,layout,renderPass,subpass,basePipeline,basePipelineIndex,renderingCreateInfo.layout()stages()intsubpass()toString()Prints the immutable valueVulkanGraphicsPipelineCreateInfowith attribute values.Copy the current immutable object by setting a present value for the optionalbasePipelineattribute.withBasePipeline(Optional<? extends VulkanPipelineType> optional) Copy the current immutable object by setting an optional value for thebasePipelineattribute.withBasePipelineIndex(int value) Copy the current immutable object by setting a present value for the optionalbasePipelineIndexattribute.withBasePipelineIndex(OptionalInt optional) Copy the current immutable object by setting an optional value for thebasePipelineIndexattribute.Copy the current immutable object by setting a value for thecolorBlendStateattribute.Copy the current immutable object by setting a value for thedepthStencilStateattribute.Copy the current immutable object by setting a value for thedynamicStateattribute.withFlags(VulkanPipelineCreateFlag... elements) Copy the current immutable object with elements that replace the content offlags.withFlags(Iterable<VulkanPipelineCreateFlag> elements) Copy the current immutable object with elements that replace the content offlags.Copy the current immutable object by setting a value for theinputAssemblyStateattribute.Copy the current immutable object by setting a value for thelayoutattribute.Copy the current immutable object by setting a value for themultisampleStateattribute.Copy the current immutable object by setting a value for therasterizationStateattribute.Copy the current immutable object by setting a present value for the optionalrenderingCreateInfoattribute.withRenderingCreateInfo(Optional<? extends VulkanPipelineRenderingCreateInfo> optional) Copy the current immutable object by setting an optional value for therenderingCreateInfoattribute.Copy the current immutable object by setting a present value for the optionalrenderPassattribute.withRenderPass(Optional<? extends VulkanRenderPassType> optional) Copy the current immutable object by setting an optional value for therenderPassattribute.withStages(VulkanPipelineShaderStageCreateInfo... elements) Copy the current immutable object with elements that replace the content ofstages.withStages(Iterable<? extends VulkanPipelineShaderStageCreateInfo> elements) Copy the current immutable object with elements that replace the content ofstages.withSubpass(int value) Copy the current immutable object by setting a value for thesubpassattribute.Copy the current immutable object by setting a value for thetessellationStateattribute.Copy the current immutable object by setting a value for thevertexInputStateattribute.Copy the current immutable object by setting a value for theviewportStateattribute.
-
Method Details
-
flags
- Specified by:
flagsin interfaceVulkanGraphicsPipelineCreateInfoType- Returns:
- Flags specifying how the pipeline will be generated.
-
stages
- Specified by:
stagesin interfaceVulkanGraphicsPipelineCreateInfoType- Returns:
- The shader stages to be included in the graphics pipeline.
-
vertexInputState
- Specified by:
vertexInputStatein interfaceVulkanGraphicsPipelineCreateInfoType- Returns:
- State for the vertex shading stage
-
inputAssemblyState
- Specified by:
inputAssemblyStatein interfaceVulkanGraphicsPipelineCreateInfoType- Returns:
- State for the input assembly stage
-
tessellationState
- Specified by:
tessellationStatein interfaceVulkanGraphicsPipelineCreateInfoType- Returns:
- State for the tesselation stage
-
viewportState
- Specified by:
viewportStatein interfaceVulkanGraphicsPipelineCreateInfoType- Returns:
- State for the viewport
-
rasterizationState
- Specified by:
rasterizationStatein interfaceVulkanGraphicsPipelineCreateInfoType- Returns:
- State for the rasterization stage
-
multisampleState
- Specified by:
multisampleStatein interfaceVulkanGraphicsPipelineCreateInfoType- Returns:
- State for multisampling
-
depthStencilState
- Specified by:
depthStencilStatein interfaceVulkanGraphicsPipelineCreateInfoType- Returns:
- State for the depth/stencil buffer
-
colorBlendState
- Specified by:
colorBlendStatein interfaceVulkanGraphicsPipelineCreateInfoType- Returns:
- State for the color blending stage
-
dynamicState
- Specified by:
dynamicStatein interfaceVulkanGraphicsPipelineCreateInfoType- Returns:
- Dynamic state
-
layout
- Specified by:
layoutin interfaceVulkanGraphicsPipelineCreateInfoType- Returns:
- The description of binding locations used by both the pipeline and descriptor sets used with the pipeline.
-
renderPass
- Specified by:
renderPassin interfaceVulkanGraphicsPipelineCreateInfoType- Returns:
- A handle to a render pass object describing the environment in which the pipeline will be used; the pipeline must only be used with an instance of any render pass compatible with the one provided.
-
subpass
public int subpass()- Specified by:
subpassin interfaceVulkanGraphicsPipelineCreateInfoType- Returns:
- The index of the subpass in the render pass where this pipeline will be used.
-
basePipeline
- Specified by:
basePipelinein interfaceVulkanGraphicsPipelineCreateInfoType- Returns:
- A pipeline to derive from.
-
basePipelineIndex
- Specified by:
basePipelineIndexin interfaceVulkanGraphicsPipelineCreateInfoType- Returns:
- An index into the createInfos parameter to use as a pipeline to derive from.
-
renderingCreateInfo
- Specified by:
renderingCreateInfoin interfaceVulkanGraphicsPipelineCreateInfoType- Returns:
- The rendering info used for dynamic rendering
-
withFlags
Copy the current immutable object with elements that replace the content offlags.- Parameters:
elements- The elements to set- Returns:
- A modified copy of
thisobject
-
withFlags
public final VulkanGraphicsPipelineCreateInfo withFlags(Iterable<VulkanPipelineCreateFlag> elements) Copy the current immutable object with elements that replace the content offlags. A shallow reference equality check is used to prevent copying of the same value by returningthis.- Parameters:
elements- An iterable of flags elements to set- Returns:
- A modified copy or
thisif not changed
-
withStages
public final VulkanGraphicsPipelineCreateInfo withStages(VulkanPipelineShaderStageCreateInfo... elements) Copy the current immutable object with elements that replace the content ofstages.- Parameters:
elements- The elements to set- Returns:
- A modified copy of
thisobject
-
withStages
public final VulkanGraphicsPipelineCreateInfo withStages(Iterable<? extends VulkanPipelineShaderStageCreateInfo> elements) Copy the current immutable object with elements that replace the content ofstages. A shallow reference equality check is used to prevent copying of the same value by returningthis.- Parameters:
elements- An iterable of stages elements to set- Returns:
- A modified copy or
thisif not changed
-
withVertexInputState
public final VulkanGraphicsPipelineCreateInfo withVertexInputState(VulkanPipelineVertexInputStateCreateInfo value) Copy the current immutable object by setting a value for thevertexInputStateattribute. A shallow reference equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for vertexInputState- Returns:
- A modified copy or the
thisobject
-
withInputAssemblyState
public final VulkanGraphicsPipelineCreateInfo withInputAssemblyState(VulkanPipelineInputAssemblyStateCreateInfo value) Copy the current immutable object by setting a value for theinputAssemblyStateattribute. A shallow reference equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for inputAssemblyState- Returns:
- A modified copy or the
thisobject
-
withTessellationState
public final VulkanGraphicsPipelineCreateInfo withTessellationState(VulkanPipelineTessellationStateCreateInfo value) Copy the current immutable object by setting a value for thetessellationStateattribute. A shallow reference equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for tessellationState- Returns:
- A modified copy or the
thisobject
-
withViewportState
public final VulkanGraphicsPipelineCreateInfo withViewportState(VulkanPipelineViewportStateCreateInfo value) Copy the current immutable object by setting a value for theviewportStateattribute. A shallow reference equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for viewportState- Returns:
- A modified copy or the
thisobject
-
withRasterizationState
public final VulkanGraphicsPipelineCreateInfo withRasterizationState(VulkanPipelineRasterizationStateCreateInfo value) Copy the current immutable object by setting a value for therasterizationStateattribute. A shallow reference equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for rasterizationState- Returns:
- A modified copy or the
thisobject
-
withMultisampleState
public final VulkanGraphicsPipelineCreateInfo withMultisampleState(VulkanPipelineMultisampleStateCreateInfo value) Copy the current immutable object by setting a value for themultisampleStateattribute. A shallow reference equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for multisampleState- Returns:
- A modified copy or the
thisobject
-
withDepthStencilState
public final VulkanGraphicsPipelineCreateInfo withDepthStencilState(VulkanPipelineDepthStencilStateCreateInfo value) Copy the current immutable object by setting a value for thedepthStencilStateattribute. A shallow reference equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for depthStencilState- Returns:
- A modified copy or the
thisobject
-
withColorBlendState
public final VulkanGraphicsPipelineCreateInfo withColorBlendState(VulkanPipelineColorBlendStateCreateInfo value) Copy the current immutable object by setting a value for thecolorBlendStateattribute. A shallow reference equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for colorBlendState- Returns:
- A modified copy or the
thisobject
-
withDynamicState
public final VulkanGraphicsPipelineCreateInfo withDynamicState(VulkanPipelineDynamicStateCreateInfo value) Copy the current immutable object by setting a value for thedynamicStateattribute. A shallow reference equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for dynamicState- Returns:
- A modified copy or the
thisobject
-
withLayout
Copy the current immutable object by setting a value for thelayoutattribute. A shallow reference equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for layout- Returns:
- A modified copy or the
thisobject
-
withRenderPass
Copy the current immutable object by setting a present value for the optionalrenderPassattribute.- Parameters:
value- The value for renderPass- Returns:
- A modified copy or
thisif not changed
-
withRenderPass
public final VulkanGraphicsPipelineCreateInfo withRenderPass(Optional<? extends VulkanRenderPassType> optional) Copy the current immutable object by setting an optional value for therenderPassattribute. A shallow reference equality check is used on unboxed optional value to prevent copying of the same value by returningthis.- Parameters:
optional- An optional value for renderPass- Returns:
- A modified copy or
thisif not changed
-
withSubpass
Copy the current immutable object by setting a value for thesubpassattribute. A value equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for subpass- Returns:
- A modified copy or the
thisobject
-
withBasePipeline
Copy the current immutable object by setting a present value for the optionalbasePipelineattribute.- Parameters:
value- The value for basePipeline- Returns:
- A modified copy or
thisif not changed
-
withBasePipeline
public final VulkanGraphicsPipelineCreateInfo withBasePipeline(Optional<? extends VulkanPipelineType> optional) Copy the current immutable object by setting an optional value for thebasePipelineattribute. A shallow reference equality check is used on unboxed optional value to prevent copying of the same value by returningthis.- Parameters:
optional- An optional value for basePipeline- Returns:
- A modified copy or
thisif not changed
-
withBasePipelineIndex
Copy the current immutable object by setting a present value for the optionalbasePipelineIndexattribute.- Parameters:
value- The value for basePipelineIndex- Returns:
- A modified copy or
thisif not changed
-
withBasePipelineIndex
Copy the current immutable object by setting an optional value for thebasePipelineIndexattribute. An equality check is used on inner value to prevent copying of the same value by returningthis.- Parameters:
optional- An optional value for basePipelineIndex- Returns:
- A modified copy or
thisif not changed
-
withRenderingCreateInfo
public final VulkanGraphicsPipelineCreateInfo withRenderingCreateInfo(VulkanPipelineRenderingCreateInfo value) Copy the current immutable object by setting a present value for the optionalrenderingCreateInfoattribute.- Parameters:
value- The value for renderingCreateInfo- Returns:
- A modified copy or
thisif not changed
-
withRenderingCreateInfo
public final VulkanGraphicsPipelineCreateInfo withRenderingCreateInfo(Optional<? extends VulkanPipelineRenderingCreateInfo> optional) Copy the current immutable object by setting an optional value for therenderingCreateInfoattribute. A shallow reference equality check is used on unboxed optional value to prevent copying of the same value by returningthis.- Parameters:
optional- An optional value for renderingCreateInfo- Returns:
- A modified copy or
thisif not changed
-
equals
-
hashCode
public int hashCode()Computes a hash code from attributes:flags,stages,vertexInputState,inputAssemblyState,tessellationState,viewportState,rasterizationState,multisampleState,depthStencilState,colorBlendState,dynamicState,layout,renderPass,subpass,basePipeline,basePipelineIndex,renderingCreateInfo. -
toString
-
copyOf
public static VulkanGraphicsPipelineCreateInfo copyOf(VulkanGraphicsPipelineCreateInfoType instance) Creates an immutable copy of aVulkanGraphicsPipelineCreateInfoTypevalue. Uses accessors to get values to initialize the new immutable instance. If an instance is already immutable, it is returned as is.- Parameters:
instance- The instance to copy- Returns:
- A copied immutable VulkanGraphicsPipelineCreateInfo instance
-
builder
Creates a builder forVulkanGraphicsPipelineCreateInfo.VulkanGraphicsPipelineCreateInfo.builder() .addFlags|addAllFlags(com.io7m.jcoronado.api.VulkanPipelineCreateFlag) //
flagselements .addStages|addAllStages(VulkanPipelineShaderStageCreateInfo) //stageselements .setVertexInputState(com.io7m.jcoronado.api.VulkanPipelineVertexInputStateCreateInfo) // optionalvertexInputState.setInputAssemblyState(com.io7m.jcoronado.api.VulkanPipelineInputAssemblyStateCreateInfo) // optionalinputAssemblyState.setTessellationState(com.io7m.jcoronado.api.VulkanPipelineTessellationStateCreateInfo) // optionaltessellationState.setViewportState(com.io7m.jcoronado.api.VulkanPipelineViewportStateCreateInfo) // optionalviewportState.setRasterizationState(com.io7m.jcoronado.api.VulkanPipelineRasterizationStateCreateInfo) // optionalrasterizationState.setMultisampleState(com.io7m.jcoronado.api.VulkanPipelineMultisampleStateCreateInfo) // optionalmultisampleState.setDepthStencilState(com.io7m.jcoronado.api.VulkanPipelineDepthStencilStateCreateInfo) // optionaldepthStencilState.setColorBlendState(com.io7m.jcoronado.api.VulkanPipelineColorBlendStateCreateInfo) // optionalcolorBlendState.setDynamicState(com.io7m.jcoronado.api.VulkanPipelineDynamicStateCreateInfo) // optionaldynamicState.setLayout(com.io7m.jcoronado.api.VulkanPipelineLayoutType) // requiredlayout.setRenderPass(Optional<com.io7m.jcoronado.api.VulkanRenderPassType>) // optionalrenderPass.setSubpass(int) // optionalsubpass.setBasePipeline(Optional<com.io7m.jcoronado.api.VulkanPipelineType>) // optionalbasePipeline.setBasePipelineIndex(OptionalInt) // optionalbasePipelineIndex.setRenderingCreateInfo(Optional<VulkanPipelineRenderingCreateInfo>) // optionalrenderingCreateInfo.build();- Returns:
- A new VulkanGraphicsPipelineCreateInfo builder
-