run method

  1. @override
Vector4 run(
  1. Float32List a,
  2. ShaderBindings bindings,
  3. Float32List out
)
override

Reads attributes — the vertex, as the engine laid it out — and writes a clip-space position plus varyings.

Implementation

@override
Vector4 run(Float32List a, ShaderBindings bindings, Float32List out) {
  for (var i = 0; i < 4; i++) {
    out[i] = a[3 + i];
  }
  out[4] = a[7];
  out[5] = a[8];
  out[6] = a[0];
  out[7] = a[1];
  out[8] = a[2];
  return bindings.mat4('ParticleInfo', 'view_projection') *
      Vector4(a[0], a[1], a[2], 1.0);
}