UpdateLightValues method
Implementation
void UpdateLightValues(ShaderC shader, LightC light) {
_lightInt8ValuePtr.value = light.enabled.toInt();
rl.Core.SetShaderValue(
shader,
light.enabledLoc,
_lightInt8ValuePtr.cast(),
ShaderUniformDataType.SHADER_UNIFORM_INT.value
);
_lightInt8ValuePtr.value = light.type;
rl.Core.SetShaderValue(
shader,
light.typeLoc,
_lightInt8ValuePtr.cast(),
ShaderUniformDataType.SHADER_UNIFORM_INT.value
);
_lightFloat3ValuePtr[0] = light.position.x;
_lightFloat3ValuePtr[1] = light.position.y;
_lightFloat3ValuePtr[2] = light.position.z;
rl.Core.SetShaderValue(
shader,
light.positionLoc,
_lightFloat3ValuePtr.cast(),
ShaderUniformDataType.SHADER_UNIFORM_VEC3.value
);
_lightFloat3ValuePtr[0] = light.target.x;
_lightFloat3ValuePtr[1] = light.target.y;
_lightFloat3ValuePtr[2] = light.target.z;
rl.Core.SetShaderValue(
shader,
light.targetLoc,
_lightFloat3ValuePtr.cast(),
ShaderUniformDataType.SHADER_UNIFORM_VEC3.value
);
_lightFloat4ValuePtr[0] = light.color.r / 255;
_lightFloat4ValuePtr[1] = light.color.g / 255;
_lightFloat4ValuePtr[2] = light.color.b / 255;
_lightFloat4ValuePtr[3] = light.color.a / 255;
rl.Core.SetShaderValue(
shader,
light.colorLoc,
_lightFloat4ValuePtr.cast(),
ShaderUniformDataType.SHADER_UNIFORM_VEC4.value
);
}