decodeUniformBlock function Debugging and profiling

List<ShaderUniformValue> decodeUniformBlock(
  1. ShaderUniformBlockInfo block,
  2. ByteData bytes
)

Decodes bytes, packed to block's std140 layout, into one value per member. Members past the end of bytes decode empty rather than failing, so a short buffer still reports what it holds.

Implementation

List<ShaderUniformValue> decodeUniformBlock(
  ShaderUniformBlockInfo block,
  ByteData bytes,
) {
  final values = <ShaderUniformValue>[];
  for (final field in block.fields) {
    values.add(
      ShaderUniformValue(field: field, values: _decodeField(field, bytes)),
    );
  }
  return values;
}