コード例 #1
0
ファイル: model.cpp プロジェクト: Airstriker/viewer
void 
Model::draw(const RenderContext& context)
{
  if (!m_material)
  {
    log_error("Model::draw: no material set");
  }
  else
  {
    OpenGLState state;

    MaterialPtr material;

    if (context.get_override_material())
    {
      if (m_material->cast_shadow())
      {
        material = context.get_override_material();
      }
    }
    else
    {
      material = m_material;
    }

    if (material)
    {
      material->apply(context);

      for (MeshLst::iterator i = m_meshes.begin(); i != m_meshes.end(); ++i)
      {
        (*i)->draw();
      }
    }

    glUseProgram(0);
  }
}