rlSetUniform method

void rlSetUniform(
  1. num locIndex,
  2. TypedDataList value,
  3. RlShaderUniformDataType uniformType,
  4. num count,
)

Set shader value uniform

Implementation

void rlSetUniform(
  num locIndex,
  TypedDataList value,
  RlShaderUniformDataType uniformType,
  num count,
) => run(
  () => _debugLabels.rlSetUniform(locIndex, value, uniformType, count),
  () {
    final MemoryPointer ptr;
    switch (uniformType) {
      case .RL_SHADER_UNIFORM_FLOAT:
      case .RL_SHADER_UNIFORM_VEC2:
      case .RL_SHADER_UNIFORM_VEC3:
      case .RL_SHADER_UNIFORM_VEC4:
        ptr = $.Float32$.FromTypedData(value);
      case .RL_SHADER_UNIFORM_INT:
      case .RL_SHADER_UNIFORM_IVEC2:
      case .RL_SHADER_UNIFORM_IVEC3:
      case .RL_SHADER_UNIFORM_IVEC4:
      case .RL_SHADER_UNIFORM_SAMPLER2D:
        ptr = $.Int32$.FromTypedData(value);
      case .RL_SHADER_UNIFORM_UINT:
      case .RL_SHADER_UNIFORM_UIVEC2:
      case .RL_SHADER_UNIFORM_UIVEC3:
      case .RL_SHADER_UNIFORM_UIVEC4:
        ptr = $.Uint32$.FromTypedData(value);
    }
    _flat.rlSetUniform(
      locIndex.toInt(),
      ptr.cast(),
      uniformType.value,
      count.toInt(),
    );
  },
);