Record Class VkDependencyInfo

java.lang.Object
java.lang.Record
club.doki7.vulkan.datatype.VkDependencyInfo
All Implemented Interfaces:
IPointer, IVkDependencyInfo

@ValueBasedCandidate @UnsafeConstructor public record VkDependencyInfo(@NotNull MemorySegment segment) extends Record implements IVkDependencyInfo

Represents a pointer to a VkDependencyInfo structure in native memory.

Structure

typedef struct VkDependencyInfo {
    VkStructureType sType;
    void const* pNext; // optional
    VkDependencyFlags dependencyFlags; // optional
    uint32_t memoryBarrierCount; // optional
    VkMemoryBarrier2 const* pMemoryBarriers;
    uint32_t bufferMemoryBarrierCount; // optional
    VkBufferMemoryBarrier2 const* pBufferMemoryBarriers;
    uint32_t imageMemoryBarrierCount; // optional
    VkImageMemoryBarrier2 const* pImageMemoryBarriers;
} VkDependencyInfo;

Auto initialization

This structure has the following members that can be automatically initialized:

  • sType = VK_STRUCTURE_TYPE_DEPENDENCY_INFO

The allocate (allocate(Arena), allocate(Arena, long)) functions will automatically initialize these fields. Also, you may call autoInit() to initialize these fields manually for non-allocated instances.

Contracts

The property segment() should always be not-null (segment != NULL && !segment.equals(MemorySegment.NULL)), and properly aligned to LAYOUT.byteAlignment() bytes. To represent null pointer, you may use a Java null instead. See the documentation of IPointer.segment() for more details.

The constructor of this class is marked as UnsafeConstructor, because it does not perform any runtime check. The constructor can be useful for automatic code generators.

See Also:
  • Field Details

    • LAYOUT

      public static final StructLayout LAYOUT
    • BYTES

      public static final long BYTES
    • PATH$sType

      public static final MemoryLayout.PathElement PATH$sType
    • PATH$pNext

      public static final MemoryLayout.PathElement PATH$pNext
    • PATH$dependencyFlags

      public static final MemoryLayout.PathElement PATH$dependencyFlags
    • PATH$memoryBarrierCount

      public static final MemoryLayout.PathElement PATH$memoryBarrierCount
    • PATH$pMemoryBarriers

      public static final MemoryLayout.PathElement PATH$pMemoryBarriers
    • PATH$bufferMemoryBarrierCount

      public static final MemoryLayout.PathElement PATH$bufferMemoryBarrierCount
    • PATH$pBufferMemoryBarriers

      public static final MemoryLayout.PathElement PATH$pBufferMemoryBarriers
    • PATH$imageMemoryBarrierCount

      public static final MemoryLayout.PathElement PATH$imageMemoryBarrierCount
    • PATH$pImageMemoryBarriers

      public static final MemoryLayout.PathElement PATH$pImageMemoryBarriers
    • LAYOUT$sType

      public static final ValueLayout.OfInt LAYOUT$sType
    • LAYOUT$pNext

      public static final AddressLayout LAYOUT$pNext
    • LAYOUT$dependencyFlags

      public static final ValueLayout.OfInt LAYOUT$dependencyFlags
    • LAYOUT$memoryBarrierCount

      public static final ValueLayout.OfInt LAYOUT$memoryBarrierCount
    • LAYOUT$pMemoryBarriers

      public static final AddressLayout LAYOUT$pMemoryBarriers
    • LAYOUT$bufferMemoryBarrierCount

      public static final ValueLayout.OfInt LAYOUT$bufferMemoryBarrierCount
    • LAYOUT$pBufferMemoryBarriers

      public static final AddressLayout LAYOUT$pBufferMemoryBarriers
    • LAYOUT$imageMemoryBarrierCount

      public static final ValueLayout.OfInt LAYOUT$imageMemoryBarrierCount
    • LAYOUT$pImageMemoryBarriers

      public static final AddressLayout LAYOUT$pImageMemoryBarriers
    • SIZE$sType

      public static final long SIZE$sType
    • SIZE$pNext

      public static final long SIZE$pNext
    • SIZE$dependencyFlags

      public static final long SIZE$dependencyFlags
    • SIZE$memoryBarrierCount

      public static final long SIZE$memoryBarrierCount
    • SIZE$pMemoryBarriers

      public static final long SIZE$pMemoryBarriers
    • SIZE$bufferMemoryBarrierCount

      public static final long SIZE$bufferMemoryBarrierCount
    • SIZE$pBufferMemoryBarriers

      public static final long SIZE$pBufferMemoryBarriers
    • SIZE$imageMemoryBarrierCount

      public static final long SIZE$imageMemoryBarrierCount
    • SIZE$pImageMemoryBarriers

      public static final long SIZE$pImageMemoryBarriers
    • OFFSET$sType

      public static final long OFFSET$sType
    • OFFSET$pNext

      public static final long OFFSET$pNext
    • OFFSET$dependencyFlags

      public static final long OFFSET$dependencyFlags
    • OFFSET$memoryBarrierCount

      public static final long OFFSET$memoryBarrierCount
    • OFFSET$pMemoryBarriers

      public static final long OFFSET$pMemoryBarriers
    • OFFSET$bufferMemoryBarrierCount

      public static final long OFFSET$bufferMemoryBarrierCount
    • OFFSET$pBufferMemoryBarriers

      public static final long OFFSET$pBufferMemoryBarriers
    • OFFSET$imageMemoryBarrierCount

      public static final long OFFSET$imageMemoryBarrierCount
    • OFFSET$pImageMemoryBarriers

      public static final long OFFSET$pImageMemoryBarriers
  • Constructor Details

    • VkDependencyInfo

      public VkDependencyInfo(@NotNull @NotNull MemorySegment segment)
      Creates an instance of a VkDependencyInfo record class.
      Parameters:
      segment - the value for the segment record component
  • Method Details