BufferArrayElement constructor
parameters used to create our BufferArrayElement.
Initial length of the input BufferBinding arrayBuffer.
Total number of elements (i.e. arrayLength divided by buffer layout number of elements.
Number of bytes in the ArrayBuffer between two elements startOffset.
The name of the BufferElement.
The WGSL variable type of the BufferElement (stripped of array
).
The WGSL base variable type of the BufferElement (stripped of array
and atomic
).
The key of the BufferElement.
BufferLayout used to fill the BufferBinding arrayBuffer at the right offsets.
Object defining exactly at which place a binding should be inserted into the BufferBinding arrayBuffer.
Optional
viewArray containing the BufferElement values.
Function assigned to set the view values.
Get the array stride between two elements of the array, in indices.
Get the total number of rows used by this BufferElement.
Get the total number of bytes used by this BufferElement based on alignment start and end offsets.
Get the total number of bytes used by this BufferElement, including final padding.
Get the offset (i.e. byte index) at which our BufferElement starts.
Get the array offset (i.e. array index) at which our BufferElement starts.
Get the offset (i.e. byte index) at which our BufferElement ends.
Get the array offset (i.e. array index) at which our BufferElement ends.
Set the alignment. To compute how arrays are packed, we get the second item alignment as well and use it to calculate the arrayStride between two array elements. Using the arrayStride and the total number of elements, we can easily get the end alignment position.
Offset at which to start inserting the values in the BufferBinding arrayBuffer.
Set the strided view value from an array.
Array to use.
Static
getGet the BufferElement WGSL type.
Original type passed.
Static
getGet the BufferElement WGSL base type.
Original type passed.
Get the position at given offset (i.e. byte index).
Byte index to use.
Get the number of bytes at a given position.
Position from which to count.
Check that a byte position does not overflow its max value (16).
Get the number of bytes between two positions.
First position.
Second position.
Compute the right alignment (i.e. start and end rows and bytes) given the size and align properties and the next available position.
next position at which we should insert this element.
position at which to start inserting the values in the BufferBinding arrayBuffer.
Set this BufferElement view into a parent BufferBinding arrayBuffer.
The parent BufferBinding arrayBuffer.
The parent BufferBinding arrayView.
Set the view value from a float or an int.
Float or int to use.
Set the view value from an array with pad applied.
Array to use.
Update the view based on the new value.
New value to use.
Extract the data corresponding to this specific BufferElement from a Float32Array holding the GPUBuffer data of the parentMesh BufferBinding.
Float32Array holding GPUBuffer data.
Used to handle specific array BufferBinding types.