# Interface VulkanGraphicsPipelineCreateInfoType

All Known Implementing Classes:
  `VulkanGraphicsPipelineCreateInfo`

@Immutable public interface VulkanGraphicsPipelineCreateInfoType
Structure specifying parameters of a newly created graphics pipeline.

See Also:
  - "VkGraphicsPipelineCreateInfo"

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Optional<VulkanPipelineType>`
  `basePipeline()`
  `OptionalInt`
  `basePipelineIndex()`
  `Optional<VulkanPipelineColorBlendStateCreateInfo>`
  `colorBlendState()`
  `Optional<VulkanPipelineDepthStencilStateCreateInfo>`
  `depthStencilState()`
  `Optional<VulkanPipelineDynamicStateCreateInfo>`
  `dynamicState()`
  `Set<VulkanPipelineCreateFlag>`
  `flags()`
  `VulkanPipelineInputAssemblyStateCreateInfo`
  `inputAssemblyState()`
  `VulkanPipelineLayoutType`
  `layout()`
  `Optional<VulkanPipelineMultisampleStateCreateInfo>`
  `multisampleState()`
  `VulkanPipelineRasterizationStateCreateInfo`
  `rasterizationState()`
  `VulkanRenderPassType`
  `renderPass()`
  `List<VulkanPipelineShaderStageCreateInfo>`
  `stages()`
  `int`
  `subpass()`
  `Optional<VulkanPipelineTessellationStateCreateInfo>`
  `tessellationState()`
  `VulkanPipelineVertexInputStateCreateInfo`
  `vertexInputState()`
  `Optional<VulkanPipelineViewportStateCreateInfo>`
  `viewportState()`

- ## Method Details

  - ### flags

    @Parameter Set<VulkanPipelineCreateFlag> flags()
    Returns:
      Flags specifying how the pipeline will be generated.

  - ### stages

    @Parameter List<VulkanPipelineShaderStageCreateInfo> stages()
    Returns:
      The shader stages to be included in the graphics pipeline.

  - ### vertexInputState

    @Parameter VulkanPipelineVertexInputStateCreateInfo vertexInputState()
    Returns:
      State for the vertex shading stage

  - ### inputAssemblyState

    @Parameter VulkanPipelineInputAssemblyStateCreateInfo inputAssemblyState()
    Returns:
      State for the input assembly stage

  - ### tessellationState

    @Parameter Optional<VulkanPipelineTessellationStateCreateInfo> tessellationState()
    Returns:
      State for the tesselation stage

  - ### viewportState

    @Parameter Optional<VulkanPipelineViewportStateCreateInfo> viewportState()
    Returns:
      State for the viewport

  - ### rasterizationState

    @Parameter VulkanPipelineRasterizationStateCreateInfo rasterizationState()
    Returns:
      State for the rasterization stage

  - ### multisampleState

    @Parameter Optional<VulkanPipelineMultisampleStateCreateInfo> multisampleState()
    Returns:
      State for multisampling

  - ### depthStencilState

    @Parameter Optional<VulkanPipelineDepthStencilStateCreateInfo> depthStencilState()
    Returns:
      State for the depth/stencil buffer

  - ### colorBlendState

    @Parameter Optional<VulkanPipelineColorBlendStateCreateInfo> colorBlendState()
    Returns:
      State for the color blending stage

  - ### dynamicState

    @Parameter Optional<VulkanPipelineDynamicStateCreateInfo> dynamicState()
    Returns:
      Dynamic state

  - ### layout

    @Parameter VulkanPipelineLayoutType layout()
    Returns:
      The description of binding locations used by both the pipeline and descriptor sets used with the pipeline.

  - ### renderPass

    @Parameter VulkanRenderPassType renderPass()
    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

    @Parameter int subpass()
    Returns:
      The index of the subpass in the render pass where this pipeline will be used.

  - ### basePipeline

    @Parameter Optional<VulkanPipelineType> basePipeline()
    Returns:
      A pipeline to derive from.

  - ### basePipelineIndex

    @Parameter OptionalInt basePipelineIndex()
    Returns:
      An index into the createInfos parameter to use as a pipeline to derive from.