Record Class VkGeometryAABBNV

java.lang.Object
java.lang.Record
club.doki7.vulkan.datatype.VkGeometryAABBNV
All Implemented Interfaces:
IPointer, IVkGeometryAABBNV

@ValueBasedCandidate @UnsafeConstructor public record VkGeometryAABBNV(@NotNull MemorySegment segment) extends Record implements IVkGeometryAABBNV

Represents a pointer to a VkGeometryAABBNV structure in native memory.

Structure

typedef struct VkGeometryAABBNV {
    VkStructureType sType;
    void const* pNext; // optional
    VkBuffer aabbData; // optional
    uint32_t numAABBs;
    uint32_t stride;
    VkDeviceSize offset;
} VkGeometryAABBNV;

Auto initialization

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

  • sType = VK_STRUCTURE_TYPE_GEOMETRY_AABB_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$aabbData

      public static final MemoryLayout.PathElement PATH$aabbData
    • PATH$numAABBs

      public static final MemoryLayout.PathElement PATH$numAABBs
    • PATH$stride

      public static final MemoryLayout.PathElement PATH$stride
    • PATH$offset

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

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

      public static final AddressLayout LAYOUT$pNext
    • LAYOUT$aabbData

      public static final AddressLayout LAYOUT$aabbData
    • LAYOUT$numAABBs

      public static final ValueLayout.OfInt LAYOUT$numAABBs
    • LAYOUT$stride

      public static final ValueLayout.OfInt LAYOUT$stride
    • LAYOUT$offset

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

      public static final long SIZE$sType
    • SIZE$pNext

      public static final long SIZE$pNext
    • SIZE$aabbData

      public static final long SIZE$aabbData
    • SIZE$numAABBs

      public static final long SIZE$numAABBs
    • SIZE$stride

      public static final long SIZE$stride
    • SIZE$offset

      public static final long SIZE$offset
    • OFFSET$sType

      public static final long OFFSET$sType
    • OFFSET$pNext

      public static final long OFFSET$pNext
    • OFFSET$aabbData

      public static final long OFFSET$aabbData
    • OFFSET$numAABBs

      public static final long OFFSET$numAABBs
    • OFFSET$stride

      public static final long OFFSET$stride
    • OFFSET$offset

      public static final long OFFSET$offset
  • Constructor Details

    • VkGeometryAABBNV

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