#include "stdafx.h" #ifdef ITF_WIN32 #ifndef _ITF_PBKMERGERLIST_H_ #include "AnimTexPacker/PbkMergerList.h" #endif #ifndef _ITF_ANIMPACKERCONFIGURATION_H_ #include "AnimTexPacker/AnimPackerConfiguration.h" #endif #ifndef _ITF_ANIMATIONTRACK_H_ #include "engine/animation/AnimationTrack.h" #endif //_ITF_ANIMATIONTRACK_H_ namespace ITF { namespace AnimTexPacker { /////////////////////////////////////////////////////////////////////////////////////////// PbkMergerList::~PbkMergerList() { for (PbkMergerList::iterator iter=begin(); iter!=end(); iter++) { PbkMerger &merger = *iter; merger.destroyCompositePatchBank(); } } /////////////////////////////////////////////////////////////////////////////////////////// PbkMerger *PbkMergerList::getPbkMergerFromTemplateID(const StringID &_templateID) { for (PbkMergerList::iterator iter=begin(); iter!=end(); iter++) { PbkMerger &merger = *iter; if (merger.findPatch(_templateID)) return &merger; } return NULL; } /////////////////////////////////////////////////////////////////////////////////////////// void PbkMergerList::buildPbkMergerList(int & _serialMergerIndex, const AnimPackerConfiguration &_config, PbkMergerList &_mergers, PatchDepot &_depot) { SafeArray isPatchBankMerged; isPatchBankMerged.reserve(_depot.size()); for (u32 i=0; i<_depot.size(); i++) { isPatchBankMerged.push_back(bfalse); } AnimPackerConfiguration::PbkConcatDescList::const_iterator concatIter; for (concatIter = _config.m_concatenatedPbkList.begin(); concatIter != _config.m_concatenatedPbkList.end(); concatIter++) { const AnimPackerConfiguration::PbkConcatDesc &pbkConcatDesc=*concatIter; //build 1 PbkMerger from a PbkConcatDesc PbkMerger merger(_serialMergerIndex, _config.m_baseName); PatchDepot::iterator iter; int pbkIndex=0; for (iter=_depot.begin(); iter!=_depot.end(); iter++, pbkIndex++) { if (isPatchBankMerged[pbkIndex]) continue; PatchList &patchList = *iter; String8 filename = patchList.m_bankName.getDebugString(); if (_config.m_ignorePbkList.checkFileMatch(filename) || _config.m_fullIgnorePbkList.checkFileMatch(filename)) { isPatchBankMerged[pbkIndex] = btrue; continue; } if (pbkConcatDesc.checkFileMatch(filename)) { isPatchBankMerged[pbkIndex] = btrue; merger.m_listOfPatchLists.push_back(&patchList); merger.m_imgMask |= patchList.m_imgMask; merger.m_hdDownscaleMask &= patchList.m_hdDownscaleMask; merger.m_imgUseAlphaMask |= patchList.m_imgUseAlphaMask; } } // if (merger.m_listOfPatchLists.size()!=0) { _mergers.push_back(merger); _serialMergerIndex++; } } } } } #endif