getUniformFloat method

UniformFloatSlot getUniformFloat(
  1. String name, [
  2. int? index
])

Access the float binding for uniform named name with optional offset index. Example index values: 1 for 'foo.y', 2 for 'foo.b'.

Example:

uniform float uScale;
uniform sampler2D uTexture;
uniform vec2 uMagnitude;
uniform vec4 uColor;
void updateShader(ui.FragmentShader shader) {
  shader.getUniformFloat('uScale');
  shader.getUniformFloat('uMagnitude', 0);
  shader.getUniformFloat('uMagnitude', 1);
  shader.getUniformFloat('uColor', 0);
  shader.getUniformFloat('uColor', 1);
  shader.getUniformFloat('uColor', 2);
  shader.getUniformFloat('uColor', 3);
}

Implementation

UniformFloatSlot getUniformFloat(String name, [int? index]) {
  index ??= 0;

  final _UniformFloatInfo info = _program._getUniformFloatInfo(name);

  IndexError.check(index, info.size, message: 'Index `$index` out of bounds for `$name`.');

  final result = UniformFloatSlot._(this, name, index, info.index + index);
  _slots.removeWhere((WeakReference<UniformFloatSlot> ref) => ref.target == null);
  _slots.add(WeakReference<UniformFloatSlot>(result));
  return result;
}