コード例 #1
0
const Ogre::GpuProgramPtr& MaterialGenerator::GetVertexShader(Perm permutation)
{
    ProgramMap::iterator i = mVsMap.find(permutation);
    if (i != mVsMap.end())
    {
        return i->second;
    }
    else
    {
        // Create it
        mVsMap[permutation] = GenerateVertexShader(permutation);
        return mVsMap[permutation];
    }
}
コード例 #2
0
ファイル: GSH_OpenGL_Shader.cpp プロジェクト: cmexp/Play-
Framework::OpenGl::ProgramPtr CGSH_OpenGL::GenerateShader(const SHADERCAPS& caps)
{
	auto vertexShader = GenerateVertexShader(caps);
	auto fragmentShader = GenerateFragmentShader(caps);

	auto result = std::make_shared<Framework::OpenGl::CProgram>();

	result->AttachShader(vertexShader);
	result->AttachShader(fragmentShader);

	bool linkResult = result->Link();
	assert(linkResult);

	assert(glGetError() == GL_NO_ERROR);

	return result;
}