# Class VulkanLWJGLCommandBuffer

java.lang.Object
com.io7m.jcoronado.lwjgl.internal.VulkanLWJGLCommandBuffer

All Implemented Interfaces:
  `VulkanCommandBufferType, VulkanHandleDispatchableType, VulkanHandleType, com.io7m.jmulticlose.core.CloseableType, AutoCloseable`

public final class VulkanLWJGLCommandBuffer extends Object implements VulkanCommandBufferType
LWJGL `VulkanCommandBufferType`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `beginCommandBuffer(VulkanCommandBufferBeginInfo info)`
  Begin a command buffer.
  `void`
  `beginQuery(VulkanQueryPoolType pool, int query, Set<VulkanQueryControlFlag> flags)`
  Begin a query.
  `void`
  `beginRendering(VulkanRenderingInfo renderingInfo)`
  Begin dynamic rendering.
  `void`
  `beginRenderPass(VulkanRenderPassBeginInfo info, VulkanSubpassContents contents)`
  Specify how commands in the first subpass of a render pass are provided.
  `void`
  `bindDescriptorSets(VulkanPipelineBindPoint pipeline_bind_point, VulkanPipelineLayoutType layout, int first_set, List<VulkanDescriptorSetType> descriptor_sets, List<Integer> dynamic_offsets)`
  Bind descriptor sets to a command buffer.
  `void`
  `bindIndexBuffer(VulkanBufferType indexBuffer, long offset, VulkanIndexType index_type)`
  Bind index buffer to a command buffer.
  `void`
  `bindPipeline(VulkanPipelineBindPoint bind_point, VulkanPipelineType pipeline)`
  Bind a rendering pipeline.
  `void`
  `bindVertexBuffers(int first_binding, int binding_count, List<VulkanBufferType> buffers, List<Long> offsets)`
  Bind vertex buffers to a command buffer.
  `void`
  `blitImage(VulkanImageType source_image, VulkanImageLayout source_image_layout, VulkanImageType target_image, VulkanImageLayout target_image_layout, List<VulkanImageBlit> regions, VulkanFilter filter)`
  Copy regions of an image, potentially performing format conversion.
  `protected final void`
  `checkNotClosed()`
  `void`
  `clearAttachments(List<VulkanClearAttachment> attachments, List<VulkanClearRectangle> rectangles)`
  Clear regions within bound framebuffer attachments.
  `void`
  `clearColorImage(VulkanImageType image, VulkanImageLayout image_layout, VulkanClearValueType.VulkanClearValueColorType color, List<VulkanImageSubresourceRange> ranges)`
  Clear regions of a color image.
  `void`
  `clearDepthStencilImage(VulkanImageType image, VulkanImageLayout image_layout, VulkanClearValueDepthStencil depth_stencil, List<VulkanImageSubresourceRange> ranges)`
  Clear regions of a depth stencil image.
  `final void`
  `close()`
  Destroy the object.
  `protected void`
  `closeActual()`
  `void`
  `copyBuffer(VulkanBufferType source, VulkanBufferType target, List<VulkanBufferCopy> regions)`
  Copy data between buffer regions.
  `void`
  `copyBufferToImage(VulkanBufferType source_buffer, VulkanImageType target_image, VulkanImageLayout target_image_layout, List<VulkanBufferImageCopy> regions)`
  Copy data from a buffer to an image.
  `void`
  `copyImage(VulkanImageType source_image, VulkanImageLayout source_image_layout, VulkanImageType target_image, VulkanImageLayout target_image_layout, List<VulkanImageCopy> regions)`
  Copy regions of an image, potentially performing format conversion.
  `void`
  `copyImageToBuffer(VulkanImageType source_image, VulkanImageLayout source_layout, VulkanBufferType target_buffer, List<VulkanBufferImageCopy> regions)`
  Copy data from an image to a buffer.
  `void`
  `dispatch(int group_count_x, int group_count_y, int group_count_z)`
  Dispatch compute work items.
  `void`
  `draw(int vertex_count, int instance_count, int first_vertex, int first_instance)`
  Draw primitives.
  `void`
  `drawIndexed(int vertex_count, int instance_count, int first_vertex, int vertex_offset, int first_instance)`
  Draw primitives using an index buffer.
  `void`
  `drawIndexedIndirect(VulkanBufferType indirectBuffer, long offset, int draw_count, int stride)`
  Draw primitives indirectly.
  `void`
  `drawIndirect(VulkanBufferType indirectBuffer, long offset, int draw_count, int stride)`
  Draw primitives indirectly.
  `void`
  `endCommandBuffer()`
  End a command buffer.
  `void`
  `endQuery(VulkanQueryPoolType pool, int query)`
  End a query.
  `void`
  `endRendering()`
  End dynamic rendering.
  `void`
  `endRenderPass()`
  End a render pass.
  `final boolean`
  `equals(Object o)`
  `void`
  `executeCommands(List<VulkanCommandBufferType> commandBuffers)`
  Execute a secondary command buffer from a primary command buffer.
  `void`
  `fillBuffer(VulkanBufferType outputBuffer, long offset, long size, int data)`
  Fill a region of a buffer with a fixed value.
  `final long`
  `handle()`
  `final int`
  `hashCode()`
  `final VulkanLWJGLHostAllocatorProxy`
  `hostAllocatorProxy()`
  `final boolean`
  `isClosed()`
  `protected org.slf4j.Logger`
  `logger()`
  `void`
  `nextSubpass(VulkanSubpassContents contents)`
  Transition to the next subpass of a render pass.
  `void`
  `pipelineBarrier(VulkanDependencyInfo info)`
  Insert a memory dependency.
  `void`
  `pushConstants(VulkanPipelineLayoutType layout, Set<VulkanShaderStageFlag> stageFlags, long offset, ByteBuffer data)`
  Update the values of push constants.
  `void`
  `reset(Set<VulkanCommandBufferResetFlag> flags)`
  Reset a command buffer to the initial state.
  `void`
  `resetEvent(VulkanEventType event, Set<VulkanPipelineStageFlag> mask)`
  Reset an event object to non-signaled state.
  `void`
  `resetQueryPool(VulkanQueryPoolType pool, int first_query, int query_count)`
  Reset a query pool.
  `void`
  `setBlendConstants(VulkanBlendConstants constants)`
  Set the values of blend constants.
  `void`
  `setDepthBias(float depth_bias_constant_factor, float depth_bias_clamp, float depth_bias_slope_factor)`
  Set the depth bias dynamic state.
  `void`
  `setDepthBounds(float min_depth_bounds, float max_depth_bounds)`
  Set the depth bounds test values for a command buffer.
  `void`
  `setEvent(VulkanEventType event, VulkanDependencyInfo info)`
  Set an event object to signaled state.
  `void`
  `setLineWidth(float width)`
  Set the dynamic line width state.
  `void`
  `setName(String inName)`
  Set the object name for debugging.
  `void`
  `setScissor(int first_scissor, List<VulkanRectangle2D> rectangles)`
  Set the dynamic scissor rectangles on a command buffer.
  `void`
  `setStencilCompareMask(Set<VulkanStencilFaceFlag> face_mask, int mask)`
  Set the stencil compare mask.
  `void`
  `setStencilReference(Set<VulkanStencilFaceFlag> face_mask, int reference)`
  Set the stencil reference.
  `void`
  `setStencilWriteMask(Set<VulkanStencilFaceFlag> face_mask, int mask)`
  Set the stencil write mask.
  `void`
  `setViewport(int first_viewport, List<VulkanViewport> viewports)`
  Set the viewport on a command buffer.
  `final String`
  `toString()`
  `void`
  `waitEvents(List<VulkanEventType> events, List<VulkanDependencyInfo> dependencyInfos)`
  Wait for one or more events and insert a set of memory barriers.
  `void`
  `writeTimestamp(VulkanPipelineStageFlag stage, VulkanQueryPoolType pool, int query_index)`
  Write a device timestamp into a query object.

  ### Methods inherited from class Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface com.io7m.jmulticlose.core.CloseableType

  `isClosed`

  ### Methods inherited from interface VulkanCommandBufferType

  `beginCommandBuffer, beginCommandBuffer, blitImage, clearAttachments, clearAttachments, clearAttachments, copyImage`

  ### Methods inherited from interface VulkanHandleType

  `close`

- ## Method Details

  - ### logger

    protected org.slf4j.Logger logger()

  - ### closeActual

    protected void closeActual()

  - ### beginCommandBuffer

    public void beginCommandBuffer(VulkanCommandBufferBeginInfo info) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Begin a command buffer.
    Specified by:
      `beginCommandBuffer` in interface `VulkanCommandBufferType`
    Parameters:
      `info` - The begin info
    Throws:
      `VulkanException` - On errors

  - ### beginQuery

    public void beginQuery(VulkanQueryPoolType pool, int query, Set<VulkanQueryControlFlag> flags) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Begin a query.
    Specified by:
      `beginQuery` in interface `VulkanCommandBufferType`
    Parameters:
      `pool` - The query pool
      `query` - The query index
      `flags` - Control flags for the query
    Throws:
      `VulkanException` - On errors

  - ### endQuery

    public void endQuery(VulkanQueryPoolType pool, int query) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    End a query.
    Specified by:
      `endQuery` in interface `VulkanCommandBufferType`
    Parameters:
      `pool` - The query pool
      `query` - The query index
    Throws:
      `VulkanException` - On errors

  - ### beginRenderPass

    public void beginRenderPass(VulkanRenderPassBeginInfo info, VulkanSubpassContents contents) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Specify how commands in the first subpass of a render pass are provided.
    Specified by:
      `beginRenderPass` in interface `VulkanCommandBufferType`
    Parameters:
      `info` - The begin info
      `contents` - Specifies how the commands in the first subpass will be provided.
    Throws:
      `VulkanException` - On errors

  - ### bindPipeline

    public void bindPipeline(VulkanPipelineBindPoint bind_point, VulkanPipelineType pipeline) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Bind a rendering pipeline.
    Specified by:
      `bindPipeline` in interface `VulkanCommandBufferType`
    Parameters:
      `bind_point` - The bind point
      `pipeline` - The pipeline
    Throws:
      `VulkanException` - On errors

  - ### bindVertexBuffers

    public void bindVertexBuffers(int first_binding, int binding_count, List<VulkanBufferType> buffers, List<Long> offsets) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Bind vertex buffers to a command buffer.
    Specified by:
      `bindVertexBuffers` in interface `VulkanCommandBufferType`
    Parameters:
      `first_binding` - The index of the first vertex input binding whose state is updated by the command
      `binding_count` - The number of vertex input bindings whose state is updated by the command
      `buffers` - An array of buffer handles
      `offsets` - An array of buffer offsets
    Throws:
      `VulkanException` - On errors

  - ### bindIndexBuffer

    public void bindIndexBuffer(VulkanBufferType indexBuffer, long offset, VulkanIndexType index_type) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Bind index buffer to a command buffer.
    Specified by:
      `bindIndexBuffer` in interface `VulkanCommandBufferType`
    Parameters:
      `indexBuffer` - The index buffer
      `offset` - The starting offset in bytes within buffer used in index buffer address calculations
      `index_type` - The type of indices
    Throws:
      `VulkanException` - On errors

  - ### bindDescriptorSets

    public void bindDescriptorSets(VulkanPipelineBindPoint pipeline_bind_point, VulkanPipelineLayoutType layout, int first_set, List<VulkanDescriptorSetType> descriptor_sets, List<Integer> dynamic_offsets) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Bind descriptor sets to a command buffer.
    Specified by:
      `bindDescriptorSets` in interface `VulkanCommandBufferType`
    Parameters:
      `pipeline_bind_point` - The pipeline bind point
      `layout` - The pipeline layout
      `first_set` - The set number of the first descriptor set to be bound
      `descriptor_sets` - The descriptor sets
      `dynamic_offsets` - An array of dynamic offsets
    Throws:
      `VulkanException` - On errors

  - ### blitImage

    public void blitImage(VulkanImageType source_image, VulkanImageLayout source_image_layout, VulkanImageType target_image, VulkanImageLayout target_image_layout, List<VulkanImageBlit> regions, VulkanFilter filter) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Copy regions of an image, potentially performing format conversion.
    Specified by:
      `blitImage` in interface `VulkanCommandBufferType`
    Parameters:
      `source_image` - The source image
      `source_image_layout` - The layout of the source image
      `target_image` - The target image
      `target_image_layout` - The target image layout
      `regions` - The regions that will be used to blit
      `filter` - The filter to apply if the blits require scaling
    Throws:
      `VulkanException` - On errors

  - ### copyImage

    public void copyImage(VulkanImageType source_image, VulkanImageLayout source_image_layout, VulkanImageType target_image, VulkanImageLayout target_image_layout, List<VulkanImageCopy> regions) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Copy regions of an image, potentially performing format conversion.
    Specified by:
      `copyImage` in interface `VulkanCommandBufferType`
    Parameters:
      `source_image` - The source image
      `source_image_layout` - The layout of the source image
      `target_image` - The target image
      `target_image_layout` - The target image layout
      `regions` - The regions that will be used to copy
    Throws:
      `VulkanException` - On errors

  - ### clearAttachments

    public void clearAttachments(List<VulkanClearAttachment> attachments, List<VulkanClearRectangle> rectangles) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Clear regions within bound framebuffer attachments.
    Specified by:
      `clearAttachments` in interface `VulkanCommandBufferType`
    Parameters:
      `attachments` - The attachments to clear and the clear values to use
      `rectangles` - An array of structures defining regions within each selected attachment to clear
    Throws:
      `VulkanException` - On errors

  - ### clearColorImage

    public void clearColorImage(VulkanImageType image, VulkanImageLayout image_layout, VulkanClearValueType.VulkanClearValueColorType color, List<VulkanImageSubresourceRange> ranges) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Clear regions of a color image.
    Specified by:
      `clearColorImage` in interface `VulkanCommandBufferType`
    Parameters:
      `image` - The image
      `image_layout` - The image layout
      `color` - The color value
      `ranges` - The image subresource ranges
    Throws:
      `VulkanException` - On errors

  - ### clearDepthStencilImage

    public void clearDepthStencilImage(VulkanImageType image, VulkanImageLayout image_layout, VulkanClearValueDepthStencil depth_stencil, List<VulkanImageSubresourceRange> ranges) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Clear regions of a depth stencil image.
    Specified by:
      `clearDepthStencilImage` in interface `VulkanCommandBufferType`
    Parameters:
      `image` - The image
      `image_layout` - The image layout
      `depth_stencil` - The depth stencil value
      `ranges` - The image subresource ranges
    Throws:
      `VulkanException` - On errors

  - ### dispatch

    public void dispatch(int group_count_x, int group_count_y, int group_count_z)
    Description copied from interface: `VulkanCommandBufferType`
    Dispatch compute work items.
    Specified by:
      `dispatch` in interface `VulkanCommandBufferType`
    Parameters:
      `group_count_x` - The number of local workgroups to dispatch in the X dimension.
      `group_count_y` - The number of local workgroups to dispatch in the Y dimension.
      `group_count_z` - The number of local workgroups to dispatch in the Z dimension.

  - ### copyBuffer

    public void copyBuffer(VulkanBufferType source, VulkanBufferType target, List<VulkanBufferCopy> regions) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Copy data between buffer regions.
    Specified by:
      `copyBuffer` in interface `VulkanCommandBufferType`
    Parameters:
      `source` - The source buffer
      `target` - The target buffer
      `regions` - The list of regions to be copied
    Throws:
      `VulkanException` - On errors

  - ### copyImageToBuffer

    public void copyImageToBuffer(VulkanImageType source_image, VulkanImageLayout source_layout, VulkanBufferType target_buffer, List<VulkanBufferImageCopy> regions) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Copy data from an image to a buffer.
    Specified by:
      `copyImageToBuffer` in interface `VulkanCommandBufferType`
    Parameters:
      `source_image` - The source image
      `source_layout` - The source layout
      `target_buffer` - The target buffer
      `regions` - The list of regions to be copied
    Throws:
      `VulkanException` - On errors

  - ### copyBufferToImage

    public void copyBufferToImage(VulkanBufferType source_buffer, VulkanImageType target_image, VulkanImageLayout target_image_layout, List<VulkanBufferImageCopy> regions) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Copy data from a buffer to an image.
    Specified by:
      `copyBufferToImage` in interface `VulkanCommandBufferType`
    Parameters:
      `source_buffer` - The source buffer
      `target_image` - The target image
      `target_image_layout` - The target image layout
      `regions` - The list of regions to be copied
    Throws:
      `VulkanException` - On errors

  - ### draw

    public void draw(int vertex_count, int instance_count, int first_vertex, int first_instance) throws VulkanDestroyedException
    Description copied from interface: `VulkanCommandBufferType`
    Draw primitives.
    Specified by:
      `draw` in interface `VulkanCommandBufferType`
    Parameters:
      `vertex_count` - The number of vertices to draw.
      `instance_count` - The number of instances to draw.
      `first_vertex` - The index of the first vertex to draw.
      `first_instance` - The instance ID of the first instance to draw.
    Throws:
      `VulkanDestroyedException`

  - ### drawIndexed

    public void drawIndexed(int vertex_count, int instance_count, int first_vertex, int vertex_offset, int first_instance) throws VulkanDestroyedException
    Description copied from interface: `VulkanCommandBufferType`
    Draw primitives using an index buffer.
    Specified by:
      `drawIndexed` in interface `VulkanCommandBufferType`
    Parameters:
      `vertex_count` - The number of vertices to draw.
      `instance_count` - The number of instances to draw.
      `first_vertex` - The index of the first vertex to draw.
      `vertex_offset` - The value added to the vertex index before indexing into the vertex buffer.
      `first_instance` - The instance ID of the first instance to draw.
    Throws:
      `VulkanDestroyedException`

  - ### drawIndirect

    public void drawIndirect(VulkanBufferType indirectBuffer, long offset, int draw_count, int stride) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Draw primitives indirectly.
    Specified by:
      `drawIndirect` in interface `VulkanCommandBufferType`
    Parameters:
      `indirectBuffer` - The buffer containing draw parameters.
      `offset` - The byte offset into buffer where parameters begin.
      `draw_count` - The number of draws to execute, and can be zero.
      `stride` - The byte stride between successive sets of draw parameters.
    Throws:
      `VulkanException` - On errors

  - ### drawIndexedIndirect

    public void drawIndexedIndirect(VulkanBufferType indirectBuffer, long offset, int draw_count, int stride) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Draw primitives indirectly.
    Specified by:
      `drawIndexedIndirect` in interface `VulkanCommandBufferType`
    Parameters:
      `indirectBuffer` - The buffer containing draw parameters.
      `offset` - The byte offset into buffer where parameters begin.
      `draw_count` - The number of draws to execute, and can be zero.
      `stride` - The byte stride between successive sets of draw parameters.
    Throws:
      `VulkanException` - On errors

  - ### executeCommands

    public void executeCommands(List<VulkanCommandBufferType> commandBuffers) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Execute a secondary command buffer from a primary command buffer.
    Specified by:
      `executeCommands` in interface `VulkanCommandBufferType`
    Parameters:
      `commandBuffers` - The buffers to be executed
    Throws:
      `VulkanException` - On errors

  - ### fillBuffer

    public void fillBuffer(VulkanBufferType outputBuffer, long offset, long size, int data) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Fill a region of a buffer with a fixed value.
    Specified by:
      `fillBuffer` in interface `VulkanCommandBufferType`
    Parameters:
      `outputBuffer` - The buffer to be filled.
      `offset` - The byte offset into the buffer at which to start filling, and must be a multiple of 4.
      `size` - The number of bytes to fill, and must be either a multiple of 4, or VK_WHOLE_SIZE to fill the range from offset to the end of the buffer. If VK_WHOLE_SIZE is used and the remaining size of the buffer is not a multiple of 4, then the nearest smaller multiple is used.
      `data` - The 4-byte word written repeatedly to the buffer to fill size bytes of data. The data word is written to memory according to the host endianness.
    Throws:
      `VulkanException` - On errors

  - ### endRenderPass

    public void endRenderPass() throws VulkanDestroyedException
    Description copied from interface: `VulkanCommandBufferType`
    End a render pass.
    Specified by:
      `endRenderPass` in interface `VulkanCommandBufferType`
    Throws:
      `VulkanDestroyedException`

  - ### pipelineBarrier

    public void pipelineBarrier(VulkanDependencyInfo info) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Insert a memory dependency.
    Specified by:
      `pipelineBarrier` in interface `VulkanCommandBufferType`
    Parameters:
      `info` - The dependency info
    Throws:
      `VulkanException` - On errors

  - ### nextSubpass

    public void nextSubpass(VulkanSubpassContents contents) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Transition to the next subpass of a render pass.
    Specified by:
      `nextSubpass` in interface `VulkanCommandBufferType`
    Parameters:
      `contents` - Specifies how the commands in the next subpass will be provided, in the same fashion as the corresponding parameter of vkCmdBeginRenderPass.
    Throws:
      `VulkanException` - On errors

  - ### setLineWidth

    public void setLineWidth(float width) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Set the dynamic line width state.
    Specified by:
      `setLineWidth` in interface `VulkanCommandBufferType`
    Parameters:
      `width` - The width of rasterized line segments.
    Throws:
      `VulkanException` - On errors

  - ### setDepthBias

    public void setDepthBias(float depth_bias_constant_factor, float depth_bias_clamp, float depth_bias_slope_factor) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Set the depth bias dynamic state.
    Specified by:
      `setDepthBias` in interface `VulkanCommandBufferType`
    Parameters:
      `depth_bias_constant_factor` - A scalar factor controlling the constant depth value added to each fragment.
      `depth_bias_clamp` - The maximum (or minimum) depth bias of a fragment.
      `depth_bias_slope_factor` - A scalar factor applied to a fragment’s slope in depth bias calculations.
    Throws:
      `VulkanException` - On errors

  - ### setDepthBounds

    public void setDepthBounds(float min_depth_bounds, float max_depth_bounds) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Set the depth bounds test values for a command buffer.
    Specified by:
      `setDepthBounds` in interface `VulkanCommandBufferType`
    Parameters:
      `min_depth_bounds` - The lower bound of the range of depth values used in the depth bounds test.
      `max_depth_bounds` - The upper bound of the range of depth values used in the depth bounds test.
    Throws:
      `VulkanException` - On errors

  - ### setBlendConstants

    public void setBlendConstants(VulkanBlendConstants constants) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Set the values of blend constants.
    Specified by:
      `setBlendConstants` in interface `VulkanCommandBufferType`
    Parameters:
      `constants` - The R, G, B, and A components of the blend constant color used in blending, depending on the blend factor.
    Throws:
      `VulkanException` - On errors

  - ### setStencilReference

    public void setStencilReference(Set<VulkanStencilFaceFlag> face_mask, int reference) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Set the stencil reference.
    Specified by:
      `setStencilReference` in interface `VulkanCommandBufferType`
    Parameters:
      `face_mask` - A set of flags specifying the set of stencil state for which to update the reference value.
      `reference` - The new value to use as the stencil reference value.
    Throws:
      `VulkanException` - On errors

  - ### setStencilCompareMask

    public void setStencilCompareMask(Set<VulkanStencilFaceFlag> face_mask, int mask) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Set the stencil compare mask.
    Specified by:
      `setStencilCompareMask` in interface `VulkanCommandBufferType`
    Parameters:
      `face_mask` - A set of flags specifying the set of stencil state for which to update the reference value.
      `mask` - The new value to use as the stencil compare mask value.
    Throws:
      `VulkanException` - On errors

  - ### setStencilWriteMask

    public void setStencilWriteMask(Set<VulkanStencilFaceFlag> face_mask, int mask) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Set the stencil write mask.
    Specified by:
      `setStencilWriteMask` in interface `VulkanCommandBufferType`
    Parameters:
      `face_mask` - A set of flags specifying the set of stencil state for which to update the reference value.
      `mask` - The new value to use as the stencil write mask value.
    Throws:
      `VulkanException` - On errors

  - ### setScissor

    public void setScissor(int first_scissor, List<VulkanRectangle2D> rectangles) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Set the dynamic scissor rectangles on a command buffer.
    Specified by:
      `setScissor` in interface `VulkanCommandBufferType`
    Parameters:
      `first_scissor` - The index of the first scissor whose state is updated by the command.
      `rectangles` - An array of structures defining scissor rectangles.
    Throws:
      `VulkanException` - On errors

  - ### setViewport

    public void setViewport(int first_viewport, List<VulkanViewport> viewports) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Set the viewport on a command buffer.
    Specified by:
      `setViewport` in interface `VulkanCommandBufferType`
    Parameters:
      `first_viewport` - The index of the first viewport whose state is updated by the command.
      `viewports` - An array of structures defining viewport rectangles.
    Throws:
      `VulkanException` - On errors

  - ### setEvent

    public void setEvent(VulkanEventType event, VulkanDependencyInfo info) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Set an event object to signaled state.
    Specified by:
      `setEvent` in interface `VulkanCommandBufferType`
    Parameters:
      `event` - The event
      `info` - The dependency info.
    Throws:
      `VulkanException` - On errors

  - ### resetEvent

    public void resetEvent(VulkanEventType event, Set<VulkanPipelineStageFlag> mask) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Reset an event object to non-signaled state.
    Specified by:
      `resetEvent` in interface `VulkanCommandBufferType`
    Parameters:
      `event` - The event
      `mask` - The source stage mask used to determine when the event is signaled.
    Throws:
      `VulkanException` - On errors

  - ### resetQueryPool

    public void resetQueryPool(VulkanQueryPoolType pool, int first_query, int query_count) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Reset a query pool.
    Specified by:
      `resetQueryPool` in interface `VulkanCommandBufferType`
    Parameters:
      `pool` - The query pool
      `first_query` - The initial query index to reset
      `query_count` - The number of queries to reset
    Throws:
      `VulkanException` - On errors

  - ### endCommandBuffer

    public void endCommandBuffer() throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    End a command buffer.
    Specified by:
      `endCommandBuffer` in interface `VulkanCommandBufferType`
    Throws:
      `VulkanException` - On errors

  - ### writeTimestamp

    public void writeTimestamp(VulkanPipelineStageFlag stage, VulkanQueryPoolType pool, int query_index) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Write a device timestamp into a query object.
    Specified by:
      `writeTimestamp` in interface `VulkanCommandBufferType`
    Parameters:
      `stage` - The stage of the pipeline
      `pool` - The query pool
      `query_index` - The query index
    Throws:
      `VulkanException` - On errors

  - ### waitEvents

    public void waitEvents(List<VulkanEventType> events, List<VulkanDependencyInfo> dependencyInfos) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Wait for one or more events and insert a set of memory barriers.
    Specified by:
      `waitEvents` in interface `VulkanCommandBufferType`
    Parameters:
      `events` - The events upon which to wait
      `dependencyInfos` - The dependency info
    Throws:
      `VulkanException` - On errors

  - ### reset

    public void reset(Set<VulkanCommandBufferResetFlag> flags) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Reset a command buffer to the initial state.
    Specified by:
      `reset` in interface `VulkanCommandBufferType`
    Parameters:
      `flags` - The flags
    Throws:
      `VulkanException` - On errors

  - ### beginRendering

    public void beginRendering(VulkanRenderingInfo renderingInfo) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Begin dynamic rendering.
    Specified by:
      `beginRendering` in interface `VulkanCommandBufferType`
    Parameters:
      `renderingInfo` - The rendering info
    Throws:
      `VulkanException` - On errors

  - ### endRendering

    public void endRendering() throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    End dynamic rendering.
    Specified by:
      `endRendering` in interface `VulkanCommandBufferType`
    Throws:
      `VulkanException` - On errors

  - ### pushConstants

    public void pushConstants(VulkanPipelineLayoutType layout, Set<VulkanShaderStageFlag> stageFlags, long offset, ByteBuffer data) throws VulkanException
    Description copied from interface: `VulkanCommandBufferType`
    Update the values of push constants.
    Specified by:
      `pushConstants` in interface `VulkanCommandBufferType`
    Parameters:
      `layout` - The pipeline layout
      `stageFlags` - The stage flags
      `offset` - The offset
      `data` - The data
    Throws:
      `VulkanException` - On errors

  - ### hostAllocatorProxy

    public final VulkanLWJGLHostAllocatorProxy hostAllocatorProxy()
    Returns:
      The underlying host allocator proxy

  - ### isClosed

    public final boolean isClosed()
    Specified by:
      `isClosed` in interface `com.io7m.jmulticlose.core.CloseableType`

  - ### close

    public final void close()
    Description copied from interface: `VulkanHandleType`
    Destroy the object.
    Specified by:
      `close` in interface `AutoCloseable`
    Specified by:
      `close` in interface `VulkanHandleType`

  - ### equals

    public final boolean equals(Object o)
    Overrides:
      `equals` in class `Object`

  - ### hashCode

    public final int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### toString

    public final String toString()
    Overrides:
      `toString` in class `Object`

  - ### handle

    public final long handle()
    Returns:
      The raw handle

  - ### checkNotClosed

    protected final void checkNotClosed() throws VulkanDestroyedException
    Throws:
      `VulkanDestroyedException`

  - ### setName

    public void setName(String inName)
    Set the object name for debugging.
    Parameters:
      `inName` - The name