#include "CFTTTextureCache.h" #include "CFTTTextureManager.h" #include "FTTThread.h" #include "CFTTFileSystem.h" #include "CFTTAsyncEvent.h" #include "CFTTTime.h" #include "memctrl.h" uint CFTTTextureCache::s_uMaxTextures = 0x80; //00349A34 uint CFTTTextureCache::s_uMaxMainHeapMemory = 0xA00000; //00349A38 uint CFTTTextureCache::s_uFadeInPeriodMS = 500; //00349A3C float CFTTTextureCache::s_fCurrentAlpha = 1.0; //00349A40 bool CFTTTextureCache::s_bInitialised; //005CB228 uint CFTTTextureCache::s_uUsedTextures; //005CB22C used texture count uint CFTTTextureCache::s_uUsedMainHeapMemory; //005CB230 CFTTCachedImage *CFTTTextureCache::s_pCachedImages; //005CB234 CFTTTexture *CFTTTextureCache::s_pDummyTexture; //005CB238 CFTTTexture *CFTTTextureCache::s_pCurrentAlphaTexture; //005CB23C int CFTTTextureCache::s_tTextureCacheMutex; //005CB240 CFTTTextureCache::func_PreCacheTextureProcessingCallback CFTTTextureCache::m_fpPreCacheTextureProcessingCallback; //005CB244 //------------------------------------------------------------------------------------------------- //002229FC //^_^ 经过单元测试,功能正常 void CFTTTextureCache::SetInitParams(uint uMaxTextures, uint uMaxMainHeapMemory, uint unuse, func_PreCacheTextureProcessingCallback func) { LOGI("CFTTTextureCache::SetInitParams entry"); } //------------------------------------------------------------------------------------------------- //00222A38 //^_^ 经过单元测试,功能正常 void CFTTTextureCache::Initialise() { LOGI("CFTTTextureCache::Initialise entry"); } //------------------------------------------------------------------------------------------------- //00222AEC //^_^ void CFTTTextureCache::Shutdown() { LOGI("CFTTTextureCache::Shutdown entry"); } //------------------------------------------------------------------------------------------------- //00222B58 //^_^ 经过单元测试,功能正常 void CFTTTextureCache::EmptyCache() { LOGI("CFTTTextureCache::EmptyCache entry"); } //------------------------------------------------------------------------------------------------- //00222BAC //^_^ int CFTTTextureCache::GetUsedTextureCount() { return CFTTTextureCache::s_uUsedTextures; } //------------------------------------------------------------------------------------------------- //00222BBC //^_^ void CFTTTextureCache::LockMutex() { } //------------------------------------------------------------------------------------------------- //00222BCC //^_^ void CFTTTextureCache::UnlockMutex() { } //------------------------------------------------------------------------------------------------- //00222BDC //^_- 经过单元测试,功能正常 void CFTTTextureCache::ReleaseTexture(uint d1) { LOGI("CFTTTextureCache::ReleaseTexture entry %d %d", d1, s_pCachedImages[d1].field_14); //00222BF6 LOGI("CFTTTextureCache::ReleaseTexture end"); } //------------------------------------------------------------------------------------------------- //00222C68 //^_^ void CFTTTextureCache::ReleaseTexture(char const *p1) { LOGI("CFTTTextureCache::ReleaseTexture entry 00222C68"); //locret_222C94 } //------------------------------------------------------------------------------------------------- //00222C9C //^_^ bool CFTTTextureCache::TextureCached(char const *p1) { LOGI("CFTTTextureCache::TextureCached entry"); return false; } //------------------------------------------------------------------------------------------------- //00222CB0 //^_^ 经过单元测试,功能正常 //此函数实现折半查找,优点是查询速度快,缺点是插入速度慢,如果在一个连续的buf中插入,要内存大量移动 CFTTCachedImage *CFTTTextureCache::FindTexture(uint dIndex) { LOGI("CFTTTextureCache::FindTexture entry"); //loc_222CF4 return nullptr; } //------------------------------------------------------------------------------------------------- //00222D0C //^_^ int CFTTTextureCache::GetIndex(CFTTCachedImage *pImage) { return pImage - s_pCachedImages; } //------------------------------------------------------------------------------------------------- //00222D20 //^_- 经过单元测试,功能正常 玩了几关游戏,没有发现问题 CFTTTexture *CFTTTextureCache::GetTexture(char const *a1, CFTTTexLoadOptions const &a2, uint a3) { srand(time(NULL)); int ret=rand(); printf("%p%x%x%x",a1,ret,(uint)&a2,a3); return (CFTTTexture*)rand(); } //------------------------------------------------------------------------------------------------- //002230FC bool CFTTTextureCache::CheckForLoadCompletion(CFTTCachedImage *pImage) { LOGI("CFTTTextureCache::CheckForLoadCompletion entry"); //loc_22317C return false; } //------------------------------------------------------------------------------------------------- //002231A8 bool CFTTTextureCache::ReleaseOldestTexture(bool b) { LOGI("CFTTTextureCache::ReleaseOldestTexture entry"); return true; } //------------------------------------------------------------------------------------------------- //0022323C //^_^ 经过单元测试,功能正常 int CFTTTextureCache::InsertTexture(CFTTCachedImage *pImage) { LOGI("CFTTTextureCache::InsertTexture %08x", pImage->dHash_4); uint dr5 = 0; return dr5; } //------------------------------------------------------------------------------------------------- //002232A8 //^_^ 经过单元测试,功能正常 void CFTTTextureCache::ManageCache() { LOGI("CFTTTextureCache::ManageCache entry"); } //------------------------------------------------------------------------------------------------- //00223320 //^_^ void CFTTTextureCache::AsyncLoadCallback(CFTTAsyncEvent *pAsyncEvent, TFTTFileAsyncEventData const *pEventData, void *pdat) { LOGI("CFTTTextureCache::AsyncLoadCallback Entry"); LOGI("CFTTTextureCache::AsyncLoadCallback End"); } //------------------------------------------------------------------------------------------------- //00223368 //^_^ bool CFTTTextureCache::IsDummyTexture(CFTTTexture *pTexture) { return s_pDummyTexture == pTexture; } //-------------------------------------------------------------------------------------------------