UpdateLightValues method

void UpdateLightValues(
  1. ShaderC shader,
  2. LightC light
)

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
  );
}