createResource method

  1. @override
ByteBuffer createResource()
override

Implementation

@override
ByteBuffer createResource() {
  final data = <double>[];
  for (final element in _storage) {
    var previousIndex = -1;
    for (final entry in element.entries) {
      if (previousIndex + 1 != entry.key) {
        final field = slot.fields.indexed.firstWhere(
          (e) => e.$1 == previousIndex + 1,
        );
        throw StateError(
          'Uniform ${slot.name}.${field.$2} was not set',
        );
      }
      previousIndex = entry.key;
      data.addAll(entry.value.data);
    }
  }
  return Float32List.fromList(data).buffer;
}