Package org.lwjgl.vulkan
Class VkAccelerationStructureSRTMotionInstanceNV
- java.lang.Object
-
- org.lwjgl.system.Pointer.Default
-
- org.lwjgl.system.Struct
-
- org.lwjgl.vulkan.VkAccelerationStructureSRTMotionInstanceNV
-
- All Implemented Interfaces:
java.lang.AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
public class VkAccelerationStructureSRTMotionInstanceNV extends org.lwjgl.system.Struct implements org.lwjgl.system.NativeResourceStructure specifying a single acceleration structure SRT motion instance for building into an acceleration structure geometry.Description
The C language specification does not define the ordering of bit-fields, but in practice, this struct produces the correct layout with existing compilers. The intended bit pattern is for the following:
instanceCustomIndexandmaskoccupy the same memory as if a singleuint32_twas specified in their placeinstanceCustomIndexoccupies the 24 least significant bits of that memorymaskoccupies the 8 most significant bits of that memory
instanceShaderBindingTableRecordOffsetandflagsoccupy the same memory as if a singleuint32_twas specified in their placeinstanceShaderBindingTableRecordOffsetoccupies the 24 least significant bits of that memoryflagsoccupies the 8 most significant bits of that memory
If a compiler produces code that diverges from that pattern, applications must employ another method to set values according to the correct bit pattern.
The transform for a SRT motion instance at a point in time is derived from component-wise linear interpolation of the two SRT transforms. That is, for a
timein [0,1] the resulting transform istransformT0 × (1 - time) + transformT1 × time
Valid Usage (Implicit)
flagsmust be a valid combination ofVkGeometryInstanceFlagBitsKHRvalues
See Also
VkAccelerationStructureMotionInstanceDataNV,VkSRTDataNVLayout
struct VkAccelerationStructureSRTMotionInstanceNV {VkSRTDataNVtransformT0();VkSRTDataNVtransformT1(); uint32_tinstanceCustomIndex(): 24; uint32_tmask(): 8; uint32_tinstanceShaderBindingTableRecordOffset(): 24; VkGeometryInstanceFlagsKHRflags(): 8; uint64_taccelerationStructureReference(); }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classVkAccelerationStructureSRTMotionInstanceNV.BufferAn array ofVkAccelerationStructureSRTMotionInstanceNVstructs.
-
Field Summary
Fields Modifier and Type Field Description static intACCELERATIONSTRUCTUREREFERENCEThe struct member offsets.static intALIGNOFThe struct alignment in bytes.static intBITFIELD0
BITFIELD1The struct member offsets.static intSIZEOFThe struct size in bytes.static intTRANSFORMT0
TRANSFORMT1The struct member offsets.
-
Constructor Summary
Constructors Constructor Description VkAccelerationStructureSRTMotionInstanceNV(java.nio.ByteBuffer container)Creates aVkAccelerationStructureSRTMotionInstanceNVinstance at the current position of the specifiedByteBuffercontainer.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description longaccelerationStructureReference()either: a device address containing the value obtained fromGetAccelerationStructureDeviceAddressKHRorGetAccelerationStructureHandleNV(used by device operations which reference acceleration structures) or, aVkAccelerationStructureKHRobject (used by host operations which reference acceleration structures).VkAccelerationStructureSRTMotionInstanceNVaccelerationStructureReference(long value)Sets the specified value to theaccelerationStructureReference()field.static VkAccelerationStructureSRTMotionInstanceNVcalloc()Returns a newVkAccelerationStructureSRTMotionInstanceNVinstance allocated withmemCalloc.static VkAccelerationStructureSRTMotionInstanceNV.Buffercalloc(int capacity)Returns a newVkAccelerationStructureSRTMotionInstanceNV.Bufferinstance allocated withmemCalloc.static VkAccelerationStructureSRTMotionInstanceNV.Buffercalloc(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkAccelerationStructureSRTMotionInstanceNV.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkAccelerationStructureSRTMotionInstanceNVcalloc(org.lwjgl.system.MemoryStack stack)Returns a newVkAccelerationStructureSRTMotionInstanceNVinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkAccelerationStructureSRTMotionInstanceNVcreate()Returns a newVkAccelerationStructureSRTMotionInstanceNVinstance allocated withBufferUtils.static VkAccelerationStructureSRTMotionInstanceNV.Buffercreate(int capacity)Returns a newVkAccelerationStructureSRTMotionInstanceNV.Bufferinstance allocated withBufferUtils.static VkAccelerationStructureSRTMotionInstanceNVcreate(long address)Returns a newVkAccelerationStructureSRTMotionInstanceNVinstance for the specified memory address.static VkAccelerationStructureSRTMotionInstanceNV.Buffercreate(long address, int capacity)Create aVkAccelerationStructureSRTMotionInstanceNV.Bufferinstance at the specified memory.static VkAccelerationStructureSRTMotionInstanceNVcreateSafe(long address)static VkAccelerationStructureSRTMotionInstanceNV.BuffercreateSafe(long address, int capacity)intflags()an 8-bit mask ofVkGeometryInstanceFlagBitsKHRvalues to apply to this instance.VkAccelerationStructureSRTMotionInstanceNVflags(int value)Sets the specified value to theflags()field.intinstanceCustomIndex()a 24-bit user-specified index value accessible to ray shaders in theInstanceCustomIndexKHRbuilt-in.VkAccelerationStructureSRTMotionInstanceNVinstanceCustomIndex(int value)Sets the specified value to theinstanceCustomIndex()field.intinstanceShaderBindingTableRecordOffset()a 24-bit offset used in calculating the hit shader binding table index.VkAccelerationStructureSRTMotionInstanceNVinstanceShaderBindingTableRecordOffset(int value)Sets the specified value to theinstanceShaderBindingTableRecordOffset()field.static VkAccelerationStructureSRTMotionInstanceNVmalloc()Returns a newVkAccelerationStructureSRTMotionInstanceNVinstance allocated withmemAlloc.static VkAccelerationStructureSRTMotionInstanceNV.Buffermalloc(int capacity)Returns a newVkAccelerationStructureSRTMotionInstanceNV.Bufferinstance allocated withmemAlloc.static VkAccelerationStructureSRTMotionInstanceNV.Buffermalloc(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkAccelerationStructureSRTMotionInstanceNV.Bufferinstance allocated on the specifiedMemoryStack.static VkAccelerationStructureSRTMotionInstanceNVmalloc(org.lwjgl.system.MemoryStack stack)Returns a newVkAccelerationStructureSRTMotionInstanceNVinstance allocated on the specifiedMemoryStack.intmask()an 8-bit visibility mask for the geometry.VkAccelerationStructureSRTMotionInstanceNVmask(int value)Sets the specified value to themask()field.static longnaccelerationStructureReference(long struct)Unsafe version ofaccelerationStructureReference().static voidnaccelerationStructureReference(long struct, long value)Unsafe version ofaccelerationStructureReference.static intnbitfield0(long struct)static voidnbitfield0(long struct, int value)static intnbitfield1(long struct)static voidnbitfield1(long struct, int value)static intnflags(long struct)Unsafe version offlags().static voidnflags(long struct, int value)Unsafe version offlags.static intninstanceCustomIndex(long struct)Unsafe version ofinstanceCustomIndex().static voidninstanceCustomIndex(long struct, int value)Unsafe version ofinstanceCustomIndex.static intninstanceShaderBindingTableRecordOffset(long struct)Unsafe version ofinstanceShaderBindingTableRecordOffset().static voidninstanceShaderBindingTableRecordOffset(long struct, int value)Unsafe version ofinstanceShaderBindingTableRecordOffset.static intnmask(long struct)Unsafe version ofmask().static voidnmask(long struct, int value)Unsafe version ofmask.static VkSRTDataNVntransformT0(long struct)Unsafe version oftransformT0().static voidntransformT0(long struct, VkSRTDataNV value)Unsafe version oftransformT0.static VkSRTDataNVntransformT1(long struct)Unsafe version oftransformT1().static voidntransformT1(long struct, VkSRTDataNV value)Unsafe version oftransformT1.VkAccelerationStructureSRTMotionInstanceNVset(VkAccelerationStructureSRTMotionInstanceNV src)Copies the specified struct data to this struct.VkAccelerationStructureSRTMotionInstanceNVset(VkSRTDataNV transformT0, VkSRTDataNV transformT1, int instanceCustomIndex, int mask, int instanceShaderBindingTableRecordOffset, int flags, long accelerationStructureReference)Initializes this struct with the specified values.intsizeof()VkSRTDataNVtransformT0()aVkSRTDataNVstructure describing a transformation to be applied to the acceleration structure at time 0.VkAccelerationStructureSRTMotionInstanceNVtransformT0(java.util.function.Consumer<VkSRTDataNV> consumer)Passes thetransformT0()field to the specifiedConsumer.VkAccelerationStructureSRTMotionInstanceNVtransformT0(VkSRTDataNV value)Copies the specifiedVkSRTDataNVto thetransformT0()field.VkSRTDataNVtransformT1()aVkSRTDataNVstructure describing a transformation to be applied to the acceleration structure at time 1.VkAccelerationStructureSRTMotionInstanceNVtransformT1(java.util.function.Consumer<VkSRTDataNV> consumer)Passes thetransformT1()field to the specifiedConsumer.VkAccelerationStructureSRTMotionInstanceNVtransformT1(VkSRTDataNV value)Copies the specifiedVkSRTDataNVto thetransformT1()field.
-
-
-
Constructor Detail
-
VkAccelerationStructureSRTMotionInstanceNV
public VkAccelerationStructureSRTMotionInstanceNV(java.nio.ByteBuffer container)
Creates aVkAccelerationStructureSRTMotionInstanceNVinstance at the current position of the specifiedByteBuffercontainer. Changes to the buffer's content will be visible to the struct instance and vice versa.The created instance holds a strong reference to the container object.
-
-
Method Detail
-
sizeof
public int sizeof()
- Specified by:
sizeofin classorg.lwjgl.system.Struct
-
transformT0
public VkSRTDataNV transformT0()
aVkSRTDataNVstructure describing a transformation to be applied to the acceleration structure at time 0.
-
transformT1
public VkSRTDataNV transformT1()
aVkSRTDataNVstructure describing a transformation to be applied to the acceleration structure at time 1.
-
instanceCustomIndex
public int instanceCustomIndex()
a 24-bit user-specified index value accessible to ray shaders in theInstanceCustomIndexKHRbuilt-in.
-
mask
public int mask()
an 8-bit visibility mask for the geometry. The instance may only be hit ifCull Mask & instance.mask != 0
-
instanceShaderBindingTableRecordOffset
public int instanceShaderBindingTableRecordOffset()
a 24-bit offset used in calculating the hit shader binding table index.
-
flags
public int flags()
an 8-bit mask ofVkGeometryInstanceFlagBitsKHRvalues to apply to this instance.
-
accelerationStructureReference
public long accelerationStructureReference()
either:- a device address containing the value obtained from
GetAccelerationStructureDeviceAddressKHRorGetAccelerationStructureHandleNV(used by device operations which reference acceleration structures) or, - a
VkAccelerationStructureKHRobject (used by host operations which reference acceleration structures).
- a device address containing the value obtained from
-
transformT0
public VkAccelerationStructureSRTMotionInstanceNV transformT0(VkSRTDataNV value)
Copies the specifiedVkSRTDataNVto thetransformT0()field.
-
transformT0
public VkAccelerationStructureSRTMotionInstanceNV transformT0(java.util.function.Consumer<VkSRTDataNV> consumer)
Passes thetransformT0()field to the specifiedConsumer.
-
transformT1
public VkAccelerationStructureSRTMotionInstanceNV transformT1(VkSRTDataNV value)
Copies the specifiedVkSRTDataNVto thetransformT1()field.
-
transformT1
public VkAccelerationStructureSRTMotionInstanceNV transformT1(java.util.function.Consumer<VkSRTDataNV> consumer)
Passes thetransformT1()field to the specifiedConsumer.
-
instanceCustomIndex
public VkAccelerationStructureSRTMotionInstanceNV instanceCustomIndex(int value)
Sets the specified value to theinstanceCustomIndex()field.
-
mask
public VkAccelerationStructureSRTMotionInstanceNV mask(int value)
Sets the specified value to themask()field.
-
instanceShaderBindingTableRecordOffset
public VkAccelerationStructureSRTMotionInstanceNV instanceShaderBindingTableRecordOffset(int value)
Sets the specified value to theinstanceShaderBindingTableRecordOffset()field.
-
flags
public VkAccelerationStructureSRTMotionInstanceNV flags(int value)
Sets the specified value to theflags()field.
-
accelerationStructureReference
public VkAccelerationStructureSRTMotionInstanceNV accelerationStructureReference(long value)
Sets the specified value to theaccelerationStructureReference()field.
-
set
public VkAccelerationStructureSRTMotionInstanceNV set(VkSRTDataNV transformT0, VkSRTDataNV transformT1, int instanceCustomIndex, int mask, int instanceShaderBindingTableRecordOffset, int flags, long accelerationStructureReference)
Initializes this struct with the specified values.
-
set
public VkAccelerationStructureSRTMotionInstanceNV set(VkAccelerationStructureSRTMotionInstanceNV src)
Copies the specified struct data to this struct.- Parameters:
src- the source struct- Returns:
- this struct
-
malloc
public static VkAccelerationStructureSRTMotionInstanceNV malloc()
Returns a newVkAccelerationStructureSRTMotionInstanceNVinstance allocated withmemAlloc. The instance must be explicitly freed.
-
calloc
public static VkAccelerationStructureSRTMotionInstanceNV calloc()
Returns a newVkAccelerationStructureSRTMotionInstanceNVinstance allocated withmemCalloc. The instance must be explicitly freed.
-
create
public static VkAccelerationStructureSRTMotionInstanceNV create()
Returns a newVkAccelerationStructureSRTMotionInstanceNVinstance allocated withBufferUtils.
-
create
public static VkAccelerationStructureSRTMotionInstanceNV create(long address)
Returns a newVkAccelerationStructureSRTMotionInstanceNVinstance for the specified memory address.
-
createSafe
@Nullable public static VkAccelerationStructureSRTMotionInstanceNV createSafe(long address)
-
malloc
public static VkAccelerationStructureSRTMotionInstanceNV.Buffer malloc(int capacity)
Returns a newVkAccelerationStructureSRTMotionInstanceNV.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
public static VkAccelerationStructureSRTMotionInstanceNV.Buffer calloc(int capacity)
Returns a newVkAccelerationStructureSRTMotionInstanceNV.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
public static VkAccelerationStructureSRTMotionInstanceNV.Buffer create(int capacity)
Returns a newVkAccelerationStructureSRTMotionInstanceNV.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
public static VkAccelerationStructureSRTMotionInstanceNV.Buffer create(long address, int capacity)
Create aVkAccelerationStructureSRTMotionInstanceNV.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
@Nullable public static VkAccelerationStructureSRTMotionInstanceNV.Buffer createSafe(long address, int capacity)
-
malloc
public static VkAccelerationStructureSRTMotionInstanceNV malloc(org.lwjgl.system.MemoryStack stack)
Returns a newVkAccelerationStructureSRTMotionInstanceNVinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
public static VkAccelerationStructureSRTMotionInstanceNV calloc(org.lwjgl.system.MemoryStack stack)
Returns a newVkAccelerationStructureSRTMotionInstanceNVinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
public static VkAccelerationStructureSRTMotionInstanceNV.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkAccelerationStructureSRTMotionInstanceNV.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocatecapacity- the buffer capacity
-
calloc
public static VkAccelerationStructureSRTMotionInstanceNV.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkAccelerationStructureSRTMotionInstanceNV.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocatecapacity- the buffer capacity
-
ntransformT0
public static VkSRTDataNV ntransformT0(long struct)
Unsafe version oftransformT0().
-
ntransformT1
public static VkSRTDataNV ntransformT1(long struct)
Unsafe version oftransformT1().
-
nbitfield0
public static int nbitfield0(long struct)
-
ninstanceCustomIndex
public static int ninstanceCustomIndex(long struct)
Unsafe version ofinstanceCustomIndex().
-
nmask
public static int nmask(long struct)
Unsafe version ofmask().
-
nbitfield1
public static int nbitfield1(long struct)
-
ninstanceShaderBindingTableRecordOffset
public static int ninstanceShaderBindingTableRecordOffset(long struct)
Unsafe version ofinstanceShaderBindingTableRecordOffset().
-
nflags
public static int nflags(long struct)
Unsafe version offlags().
-
naccelerationStructureReference
public static long naccelerationStructureReference(long struct)
Unsafe version ofaccelerationStructureReference().
-
ntransformT0
public static void ntransformT0(long struct, VkSRTDataNV value)Unsafe version oftransformT0.
-
ntransformT1
public static void ntransformT1(long struct, VkSRTDataNV value)Unsafe version oftransformT1.
-
nbitfield0
public static void nbitfield0(long struct, int value)
-
ninstanceCustomIndex
public static void ninstanceCustomIndex(long struct, int value)Unsafe version ofinstanceCustomIndex.
-
nmask
public static void nmask(long struct, int value)Unsafe version ofmask.
-
nbitfield1
public static void nbitfield1(long struct, int value)
-
ninstanceShaderBindingTableRecordOffset
public static void ninstanceShaderBindingTableRecordOffset(long struct, int value)Unsafe version ofinstanceShaderBindingTableRecordOffset.
-
nflags
public static void nflags(long struct, int value)Unsafe version offlags.
-
naccelerationStructureReference
public static void naccelerationStructureReference(long struct, long value)Unsafe version ofaccelerationStructureReference.
-
-