bool CSceneRendererStep::Init(CXMLTreeNode& _treeSceneRenderer, const string& _szDefaultRenderTarget) { //string l_szName = _treeSceneRenderer.GetPszISOProperty("name","",false); //string l_szRenderTarget = _treeSceneRenderer.GetPszISOProperty("render_target","",false); if(!CRendererStep::Init(_treeSceneRenderer,_szDefaultRenderTarget)) { LOGGER->AddNewLog(ELL_ERROR,"CSceneRendererStep::Init SceneRenderer sense nom"); SetOk(false); }else{ LOGGER->AddNewLog(ELL_INFORMATION,"CSceneRendererStep::Init iniciant %s",GetName().c_str()); //CRendererStep::Init(l_szRenderTarget); CXMLTreeNode l_treeSamplers = _treeSceneRenderer.GetChild("input_samplers"); CXMLTreeNode l_treeMaterialEffects = _treeSceneRenderer.GetChild("material_effects"); if(!InitInputSamplers(l_treeSamplers)) { LOGGER->AddNewLog(ELL_ERROR,"CSceneRendererStep::Init error inicialitzant input_samplers"); SetOk(false); }else if(!InitMaterialEffects(l_treeMaterialEffects)) { LOGGER->AddNewLog(ELL_ERROR,"CSceneRendererStep::Init error inicialitzant els material_effects"); SetOk(false); }else{ //SetName(l_szName); SetOk(true); } } return IsOk(); }
bool CPostSceneRendererStep::Init(CXMLTreeNode& _treePostSceneRenderer, const string& _szDefaultRenderTarget, bool _bNeedsEffect) { string l_szEffect = _treePostSceneRenderer.GetPszISOProperty("effect","",!_bNeedsEffect); if(!CRendererStep::Init(_treePostSceneRenderer, _szDefaultRenderTarget)) { LOGGER->AddNewLog(ELL_ERROR,"CPostSceneRendererStep::Init PostSceneRenderer sense nom"); SetOk(false); } else if(l_szEffect == "" && _bNeedsEffect) { LOGGER->AddNewLog(ELL_ERROR,"CPostSceneRendererStep::Init PostSceneRenderer sense effect"); SetOk(false); } else { LOGGER->AddNewLog(ELL_INFORMATION,"CPostSceneRendererStep::Init iniciant %s",GetName().c_str()); CRendererStep::Init(_treePostSceneRenderer, _szDefaultRenderTarget); CXMLTreeNode l_treeSamplers = _treePostSceneRenderer.GetChild("input_samplers"); CXMLTreeNode l_treeRenderTargets = _treePostSceneRenderer.GetChild("render_targets"); if(!InitInputSamplers(l_treeSamplers)) { LOGGER->AddNewLog(ELL_ERROR,"CPostSceneRendererStep::Init error inicialitzant input_samplers"); SetOk(false); } else { m_szEffect = l_szEffect; m_bUseTime = _treePostSceneRenderer.GetBoolProperty("use_time",false,false); if(m_bUseTime) { m_bUseDeltaTime = _treePostSceneRenderer.GetBoolProperty("use_delta_time",false,false); } else { m_bUseDeltaTime = false; } m_bUseCenter = _treePostSceneRenderer.GetBoolProperty("use_center",false,false); string l_szAlignment = _treePostSceneRenderer.GetPszISOProperty("alignment","",false); if(l_szAlignment == "center") { m_Alignment = CENTER; } Vect2f l_fPos = _treePostSceneRenderer.GetVect2fProperty("position",Vect2f(0),false); m_iPos.x = (int) (l_fPos.x * RENDER_MANAGER->GetScreenWidth()); m_iPos.y = (int) (l_fPos.y * RENDER_MANAGER->GetScreenHeight()); if(_treePostSceneRenderer.ExistsProperty("size")) { float l_fSizeX = _treePostSceneRenderer.GetFloatProperty("size",1.0,false); if(_treePostSceneRenderer.GetBoolProperty("absolute_size",false,false)) { m_iSize.x = (int) l_fSizeX; m_iSize.y = m_iSize.x; } else { m_iSize.x = (int) (l_fSizeX * RENDER_MANAGER->GetScreenWidth()); m_iSize.y = m_iSize.x; } if(_treePostSceneRenderer.ExistsProperty("aspect_ratio")) { bool l_bAspectRatio = _treePostSceneRenderer.GetBoolProperty("aspect_ratio",true,false); if(l_bAspectRatio) { m_iSize.y = (int)(m_iSize.x * RENDER_MANAGER->GetScreenHeight()/(float)RENDER_MANAGER->GetScreenWidth()); } } } else if(_treePostSceneRenderer.ExistsProperty("size_x")) { float l_fSizeX = _treePostSceneRenderer.GetFloatProperty("size_x",1.0,false); float l_fSizeY = _treePostSceneRenderer.GetFloatProperty("size_y",1.0,false); if(_treePostSceneRenderer.GetBoolProperty("absolute_size",false,false)) { m_iSize.x = (int) l_fSizeX; m_iSize.y = (int) l_fSizeY; } else { m_iSize.x = (int) (l_fSizeX * RENDER_MANAGER->GetScreenWidth()); m_iSize.y = (int) (l_fSizeY * RENDER_MANAGER->GetScreenHeight()); } } else { m_iSize.x = RENDER_MANAGER->GetScreenWidth(); m_iSize.y = RENDER_MANAGER->GetScreenHeight(); } SetOk(true); } } return IsOk(); }