rlSetUniform method
Implementation
void rlSetUniform(
num locIndex,
TypedData value,
RlShaderUniformDataType uniformType,
num count,
) => run(
() => 'rlSetUniform($locIndex, ${value.lengthInBytes}, ${uniformType.name})',
() {
final Pointer<Void> ptr;
switch (uniformType) {
case .RL_SHADER_UNIFORM_FLOAT:
case .RL_SHADER_UNIFORM_VEC2:
case .RL_SHADER_UNIFORM_VEC3:
case .RL_SHADER_UNIFORM_VEC4:
ptr = refTypedListFloat(value as Float32List).cast();
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 = refTypedListInt32(value as Int32List).cast();
case .RL_SHADER_UNIFORM_UINT:
case .RL_SHADER_UNIFORM_UIVEC2:
case .RL_SHADER_UNIFORM_UIVEC3:
case .RL_SHADER_UNIFORM_UIVEC4:
ptr = refTypedListUInt32(value as Uint32List).cast();
}
rl.Rlgl.rlSetUniform(
locIndex.toInt(),
ptr,
uniformType.value,
count.toInt(),
);
},
);