202 Chapter 3 Renderers
if (pkVProgram)
{
// The programs have already been loaded.
return;
}
VertexProgramPtr spkVProgram =
VertexProgramCatalog::GetActive()->Find(
m_kVShader[iPass]->GetShaderName());
PixelProgramPtr spkPProgram =
PixelProgramCatalog::GetActive()->Find(
m_kPShader[iPass]->GetShaderName());
<remainder of implementation>
}
The function checks to see if the shader programs have already been loaded. In
the common case they should be, since loading should occur only once, because of
either the first attempt to draw or an explicit resource load forced by the application
code.
When the programs have not been loaded, the function checks the catalogs for
the vertex and pixel programs. For example, the
Find function for vertex programs is
VertexProgram* ...