vulkan-3.3: Bindings to the Vulkan graphics API.
Safe HaskellNone
LanguageHaskell2010

Vulkan.Core10.PipelineLayout

Synopsis

Documentation

createPipelineLayout :: forall io. MonadIO io => Device -> PipelineLayoutCreateInfo -> ("allocator" ::: Maybe AllocationCallbacks) -> io PipelineLayout Source #

vkCreatePipelineLayout - Creates a new pipeline layout object

Parameters

  • device is the logical device that creates the pipeline layout.
  • pCreateInfo is a pointer to a PipelineLayoutCreateInfo structure specifying the state of the pipeline layout object.
  • pAllocator controls host memory allocation as described in the Memory Allocation chapter.
  • pPipelineLayout is a pointer to a PipelineLayout handle in which the resulting pipeline layout object is returned.

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

AllocationCallbacks, Device, PipelineLayout, PipelineLayoutCreateInfo

withPipelineLayout :: forall io r. MonadIO io => Device -> PipelineLayoutCreateInfo -> Maybe AllocationCallbacks -> (io PipelineLayout -> (PipelineLayout -> io ()) -> r) -> r Source #

A convenience wrapper to make a compatible pair of calls to createPipelineLayout and destroyPipelineLayout

To ensure that destroyPipelineLayout is always called: pass bracket (or the allocate function from your favourite resource management library) as the first argument. To just extract the pair pass (,) as the first argument.

destroyPipelineLayout :: forall io. MonadIO io => Device -> PipelineLayout -> ("allocator" ::: Maybe AllocationCallbacks) -> io () Source #

vkDestroyPipelineLayout - Destroy a pipeline layout object

Parameters

  • device is the logical device that destroys the pipeline layout.
  • pipelineLayout is the pipeline layout to destroy.
  • pAllocator controls host memory allocation as described in the Memory Allocation chapter.

Valid Usage

  • If AllocationCallbacks were provided when pipelineLayout was created, a compatible set of callbacks must be provided here

Valid Usage (Implicit)

  • device must be a valid Device handle
  • If pipelineLayout is not NULL_HANDLE, pipelineLayout must be a valid PipelineLayout handle
  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid AllocationCallbacks structure
  • If pipelineLayout is a valid handle, it must have been created, allocated, or retrieved from device

Host Synchronization

  • Host access to pipelineLayout must be externally synchronized

See Also

AllocationCallbacks, Device, PipelineLayout

data PushConstantRange Source #

VkPushConstantRange - Structure specifying a push constant range

Valid Usage (Implicit)

See Also

PipelineLayoutCreateInfo, ShaderStageFlags

Constructors

PushConstantRange 

Fields

Instances

Instances details
Show PushConstantRange Source # 
Instance details

Defined in Vulkan.Core10.PipelineLayout

Storable PushConstantRange Source # 
Instance details

Defined in Vulkan.Core10.PipelineLayout

FromCStruct PushConstantRange Source # 
Instance details

Defined in Vulkan.Core10.PipelineLayout

ToCStruct PushConstantRange Source # 
Instance details

Defined in Vulkan.Core10.PipelineLayout

Zero PushConstantRange Source # 
Instance details

Defined in Vulkan.Core10.PipelineLayout

data PipelineLayoutCreateInfo Source #

VkPipelineLayoutCreateInfo - Structure specifying the parameters of a newly created pipeline layout object

Valid Usage

Valid Usage (Implicit)

  • pNext must be NULL
  • flags must be 0
  • If setLayoutCount is not 0, pSetLayouts must be a valid pointer to an array of setLayoutCount valid DescriptorSetLayout handles
  • If pushConstantRangeCount is not 0, pPushConstantRanges must be a valid pointer to an array of pushConstantRangeCount valid PushConstantRange structures

See Also

DescriptorSetLayout, PipelineLayoutCreateFlags, PushConstantRange, StructureType, createPipelineLayout

Constructors

PipelineLayoutCreateInfo 

Fields