Exemplo n.º 1
0
 void DataBlockBinder::Bind(IDataBlockPtr block, ReloadPolicy policy){
     policy = (policy == RELOAD_DEFAULT) ? defaultpolicy : policy;
     if (IRenderer::RENDERER_UNINITIALIZE == r.GetCurrentStage()){
         initbinder->Add(block, policy);
     }else{
         // If the texture has not already been loaded
         if (block->GetID() == 0)
             r.BindDataBlock(block.get());
         // Listen for reload events (based on policy)
         reloader->Add(block, policy);
     }
 }
Exemplo n.º 2
0
IDataBlockPtr DataStore::find(std::string name){ 
	vector<std::string> dividedName;
	vector<std::string>::iterator itName;
	boost::split(dividedName, name, boost::is_any_of("/"), boost::token_compress_on);
	DataStore* current = (0==name.find("/"))?m_root.get():this;
	IDataBlockPtr db;
	for(itName=dividedName.begin(); itName !=dividedName.end(); itName++){
		if(0==(*itName).size()) continue;
		db = current->retrieveObject(*itName);
		current = dynamic_cast<DataStore*>(db.get());
		if(not current)return db;
	}
	return db;
}