mgpuWriteInt8 function
Implementation
void mgpuWriteInt8(MGPUBuffer buffer, Int8List inputData, int size) {
final int elementsRequested = size > 0 ? size : inputData.length;
final int actualElements = elementsRequested <= inputData.length
? elementsRequested
: inputData.length;
final int byteSize = actualElements * Int8List.bytesPerElement;
final JSNumber ptr = _malloc(byteSize.toJS);
final int startIndex = ptr.toDartInt;
try {
if (startIndex < 0 || startIndex + actualElements > _heapU8.length) {
throw StateError('Int8 write would exceed heap bounds');
}
_heapU8.setRange(
startIndex,
startIndex + actualElements,
inputData.sublist(0, actualElements),
);
_mgpuWriteInt8(buffer, ptr, byteSize.toJS);
} finally {
_free(ptr);
}
}