Record Class VkGeometryTrianglesNV

java.lang.Object
java.lang.Record
club.doki7.vulkan.datatype.VkGeometryTrianglesNV
All Implemented Interfaces:
IPointer, IVkGeometryTrianglesNV

@ValueBasedCandidate @UnsafeConstructor public record VkGeometryTrianglesNV(@NotNull MemorySegment segment) extends Record implements IVkGeometryTrianglesNV

Represents a pointer to a VkGeometryTrianglesNV structure in native memory.

Structure

typedef struct VkGeometryTrianglesNV {
    VkStructureType sType;
    void const* pNext; // optional
    VkBuffer vertexData; // optional
    VkDeviceSize vertexOffset;
    uint32_t vertexCount;
    VkDeviceSize vertexStride;
    VkFormat vertexFormat;
    VkBuffer indexData; // optional
    VkDeviceSize indexOffset;
    uint32_t indexCount;
    VkIndexType indexType;
    VkBuffer transformData; // optional
    VkDeviceSize transformOffset;
} VkGeometryTrianglesNV;

Auto initialization

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

  • sType = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV

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$vertexData

      public static final MemoryLayout.PathElement PATH$vertexData
    • PATH$vertexOffset

      public static final MemoryLayout.PathElement PATH$vertexOffset
    • PATH$vertexCount

      public static final MemoryLayout.PathElement PATH$vertexCount
    • PATH$vertexStride

      public static final MemoryLayout.PathElement PATH$vertexStride
    • PATH$vertexFormat

      public static final MemoryLayout.PathElement PATH$vertexFormat
    • PATH$indexData

      public static final MemoryLayout.PathElement PATH$indexData
    • PATH$indexOffset

      public static final MemoryLayout.PathElement PATH$indexOffset
    • PATH$indexCount

      public static final MemoryLayout.PathElement PATH$indexCount
    • PATH$indexType

      public static final MemoryLayout.PathElement PATH$indexType
    • PATH$transformData

      public static final MemoryLayout.PathElement PATH$transformData
    • PATH$transformOffset

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

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

      public static final AddressLayout LAYOUT$pNext
    • LAYOUT$vertexData

      public static final AddressLayout LAYOUT$vertexData
    • LAYOUT$vertexOffset

      public static final ValueLayout.OfLong LAYOUT$vertexOffset
    • LAYOUT$vertexCount

      public static final ValueLayout.OfInt LAYOUT$vertexCount
    • LAYOUT$vertexStride

      public static final ValueLayout.OfLong LAYOUT$vertexStride
    • LAYOUT$vertexFormat

      public static final ValueLayout.OfInt LAYOUT$vertexFormat
    • LAYOUT$indexData

      public static final AddressLayout LAYOUT$indexData
    • LAYOUT$indexOffset

      public static final ValueLayout.OfLong LAYOUT$indexOffset
    • LAYOUT$indexCount

      public static final ValueLayout.OfInt LAYOUT$indexCount
    • LAYOUT$indexType

      public static final ValueLayout.OfInt LAYOUT$indexType
    • LAYOUT$transformData

      public static final AddressLayout LAYOUT$transformData
    • LAYOUT$transformOffset

      public static final ValueLayout.OfLong LAYOUT$transformOffset
    • SIZE$sType

      public static final long SIZE$sType
    • SIZE$pNext

      public static final long SIZE$pNext
    • SIZE$vertexData

      public static final long SIZE$vertexData
    • SIZE$vertexOffset

      public static final long SIZE$vertexOffset
    • SIZE$vertexCount

      public static final long SIZE$vertexCount
    • SIZE$vertexStride

      public static final long SIZE$vertexStride
    • SIZE$vertexFormat

      public static final long SIZE$vertexFormat
    • SIZE$indexData

      public static final long SIZE$indexData
    • SIZE$indexOffset

      public static final long SIZE$indexOffset
    • SIZE$indexCount

      public static final long SIZE$indexCount
    • SIZE$indexType

      public static final long SIZE$indexType
    • SIZE$transformData

      public static final long SIZE$transformData
    • SIZE$transformOffset

      public static final long SIZE$transformOffset
    • OFFSET$sType

      public static final long OFFSET$sType
    • OFFSET$pNext

      public static final long OFFSET$pNext
    • OFFSET$vertexData

      public static final long OFFSET$vertexData
    • OFFSET$vertexOffset

      public static final long OFFSET$vertexOffset
    • OFFSET$vertexCount

      public static final long OFFSET$vertexCount
    • OFFSET$vertexStride

      public static final long OFFSET$vertexStride
    • OFFSET$vertexFormat

      public static final long OFFSET$vertexFormat
    • OFFSET$indexData

      public static final long OFFSET$indexData
    • OFFSET$indexOffset

      public static final long OFFSET$indexOffset
    • OFFSET$indexCount

      public static final long OFFSET$indexCount
    • OFFSET$indexType

      public static final long OFFSET$indexType
    • OFFSET$transformData

      public static final long OFFSET$transformData
    • OFFSET$transformOffset

      public static final long OFFSET$transformOffset
  • Constructor Details

    • VkGeometryTrianglesNV

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