Example #1
0
void RendererCommon::ApplyMaterial(const Material& Material, Mesh* const pMesh,
                                   const View& View) {
  SetShaderProgram(Material.GetShaderProgram());

  ApplyRenderState(Material.GetRenderState());

  const uint NumSamplers = Material.GetNumSamplers();
  for (uint SamplerIndex = 0; SamplerIndex < NumSamplers; ++SamplerIndex) {
    ApplySamplerState(SamplerIndex, Material.GetSamplerState(SamplerIndex));
  }

  DEBUGASSERT(Material.GetSDP());
  Material.GetSDP()->SetShaderParameters(this, pMesh, View);
}