本文整理汇总了C++中IScene::GetSunLight方法的典型用法代码示例。如果您正苦于以下问题:C++ IScene::GetSunLight方法的具体用法?C++ IScene::GetSunLight怎么用?C++ IScene::GetSunLight使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IScene
的用法示例。
在下文中一共展示了IScene::GetSunLight方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: begin
bool CEffectFileDirectX::begin(bool bApplyParam, DWORD dwFlag, bool bForceBegin )
{
IScene* pScene = CGlobals::GetEffectManager()->GetScene();
if(m_pEffect!=NULL)
{
if(bApplyParam)
{
// set the lighting parameters
// from the global light manager
applyGlobalLightingData(pScene->GetSunLight());
// set the camera matrix
applyCameraMatrices();
}
if(bForceBegin|| !m_bSharedMode)
{
HRESULT result = m_pEffect->Begin(0, dwFlag);
if( SUCCEEDED( result ) )
{
m_bIsBegin = true;
return true;
}
else
{
OUTPUT_LOG("error: CEffectFileDirectX::begin failed: %s \n", m_filename.c_str());
return false;
}
}
return true;
}
else
return false;
}
示例2: GetGLProgram
bool ParaEngine::CEffectFileOpenGL::begin(bool bApplyParam /*= true*/, DWORD flag /*= 0*/)
{
IScene* pScene = CGlobals::GetEffectManager()->GetScene();
auto program = GetGLProgram();
if (program != 0)
{
if (m_programs.size() == 1)
program->use();
else
{
// TODO: multiple pass effect in opengl is implemented as shader arrays.
// uniform values are currently NOT shared among different passes like directX.
// hence DO NOT set any uniform between begin() and beginPass().
// TODO: In future: uniform values should be cached until Commit() is called.
program->use();
}
if (bApplyParam)
{
// set the lighting parameters
// from the global light manager
applyGlobalLightingData(pScene->GetSunLight());
// set the camera matrix
applyCameraMatrices();
}
m_bIsBegin = true;
return true;
}
else
return false;
}