Record Class VkClusterAccelerationStructureBuildTriangleClusterInfoNV

java.lang.Object
java.lang.Record
club.doki7.vulkan.datatype.VkClusterAccelerationStructureBuildTriangleClusterInfoNV
All Implemented Interfaces:
IPointer, IVkClusterAccelerationStructureBuildTriangleClusterInfoNV

@ValueBasedCandidate @UnsafeConstructor public record VkClusterAccelerationStructureBuildTriangleClusterInfoNV(@NotNull MemorySegment segment) extends Record implements IVkClusterAccelerationStructureBuildTriangleClusterInfoNV

Represents a pointer to a VkClusterAccelerationStructureBuildTriangleClusterInfoNV structure in native memory.

Structure

typedef struct VkClusterAccelerationStructureBuildTriangleClusterInfoNV {
    uint32_t clusterID;
    VkClusterAccelerationStructureClusterFlagsNV clusterFlags; // optional
    uint32_t triangleCount : 9;
    uint32_t vertexCount : 9;
    uint32_t positionTruncateBitCount : 6;
    uint32_t indexType : 4;
    uint32_t opacityMicromapIndexType : 4;
    VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV baseGeometryIndexAndGeometryFlags;
    uint16_t indexBufferStride;
    uint16_t vertexBufferStride;
    uint16_t geometryIndexAndFlagsBufferStride;
    uint16_t opacityMicromapIndexBufferStride;
    VkDeviceAddress indexBuffer;
    VkDeviceAddress vertexBuffer;
    VkDeviceAddress geometryIndexAndFlagsBuffer;
    VkDeviceAddress opacityMicromapArray;
    VkDeviceAddress opacityMicromapIndexBuffer;
} VkClusterAccelerationStructureBuildTriangleClusterInfoNV;

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: