MaterialParameters.withLayout constructor
MaterialParameters.withLayout({})
Builds parameters from an explicit layout, without shader reflection. Primarily for tests and advanced callers.
Implementation
@visibleForTesting
factory MaterialParameters.withLayout({
required String blockName,
required int blockSizeBytes,
required Map<String, ({FmatType type, int offset, bool sourceColor})>
parameters,
Map<String, FmatHintKind?> samplers = const {},
}) {
final layout = {
for (final e in parameters.entries)
e.key: _ParamSlot(
e.value.type,
e.value.offset,
sourceColor: e.value.sourceColor,
),
};
final samplerSlots = {
for (final e in samplers.entries) e.key: _SamplerSlot(e.value),
};
return MaterialParameters._(
blockName,
ByteData(blockSizeBytes),
layout,
samplerSlots,
);
}