updateFromMetadata method

  1. @override
void updateFromMetadata(
  1. Shader fragmentShader,
  2. Map<String, Object?> metadata
)

Re-reads the render state and parameters from a regenerated fragmentShader and sidecar metadata (a hot-reloaded .fmat), in place.

Updates culling, blending, shading model, and the parameter layout without replacing the material instance, so every primitive already using it picks up the change. Explicitly-set parameter values are preserved; see MaterialParameters.updateFromMetadata.

Implementation

@override
void updateFromMetadata(
  gpu.Shader fragmentShader,
  Map<String, Object?> metadata,
) {
  _shadingModel = _parseShadingModel(metadata['shading_model']);
  _blending = _parseBlending(metadata['blending']);
  _culling = _parseCulling(metadata['culling']);
  setFragmentShader(fragmentShader);
  parameters.updateFromMetadata(fragmentShader, metadata);
}