SetShaderValueV method

void SetShaderValueV(
  1. ShaderD shader,
  2. num locIndex,
  3. List<num> value,
  4. ShaderUniformDataType uniformType,
  5. num count,
)

Set shader uniform value vector

Implementation

void SetShaderValueV(
  ShaderD shader,
  num locIndex,
  List<num> value,
  ShaderUniformDataType uniformType,
  num count,
) => run(
  () => _debugLabels.SetShaderValueV(shader, locIndex, value, uniformType, count),
  () {
    final ptr = switch (uniformType) {
      .SHADER_UNIFORM_FLOAT ||
      .SHADER_UNIFORM_VEC2  ||
      .SHADER_UNIFORM_VEC3  ||
      .SHADER_UNIFORM_VEC4  => $.Float32$.Array(value),

      .SHADER_UNIFORM_INT   ||
      .SHADER_UNIFORM_IVEC2 ||
      .SHADER_UNIFORM_IVEC3 ||
      .SHADER_UNIFORM_IVEC4 => $.Int$.Array(value),

      .SHADER_UNIFORM_UINT   ||
      .SHADER_UNIFORM_UIVEC2 ||
      .SHADER_UNIFORM_UIVEC3 ||
      .SHADER_UNIFORM_UIVEC4 => $.UnsignedInt$.Array(value),

      .SHADER_UNIFORM_SAMPLER2D => $.Int$.Array(value),
    };

    _flat.SetShaderValueV(
      shader,
      locIndex.toInt(),
      ptr.cast(),
      uniformType.value,
      count.toInt(),
    );
  },
);