SetShaderValueV method

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

Implementation

void SetShaderValueV(
  ShaderD shader,
  num locIndex,
  List<num> value,
  ShaderUniformDataType uniformType,
  num count,
) => run(
  () => 'SetShaderValueV($shader, $locIndex, $value, ${uniformType.name}, $count)',
  () {
    final ptr = switch (uniformType) {
      .SHADER_UNIFORM_FLOAT ||
      .SHADER_UNIFORM_VEC2  ||
      .SHADER_UNIFORM_VEC3  ||
      .SHADER_UNIFORM_VEC4  => refListFloat(value, 'SetShaderValueV_Float'),

      .SHADER_UNIFORM_INT   ||
      .SHADER_UNIFORM_IVEC2 ||
      .SHADER_UNIFORM_IVEC3 ||
      .SHADER_UNIFORM_IVEC4 => refListInt(value, 'SetShaderValueV_Int'),

      .SHADER_UNIFORM_SAMPLER2D => refListInt(value, 'SetShaderValueV_Int'),
    };

    rl.Core.SetShaderValueV(
      _refShader1(shader).ref,
      locIndex.toInt(),
      ptr.cast(),
      uniformType.value,
      count.toInt(),
    );
  },
);