diff --git a/core/Common/Image.cpp b/core/Common/Image.cpp index d6e9cfd6..559c06eb 100644 --- a/core/Common/Image.cpp +++ b/core/Common/Image.cpp @@ -1,10 +1,8 @@ #include "..\e2dcommon.h" #include "..\e2dbase.h" #include "..\e2dtool.h" -#include - -static std::map s_mBitmapsFromResource; +std::map e2d::Image::_bitmapCache; e2d::Image::Image() : _bitmap(nullptr) @@ -62,7 +60,7 @@ bool e2d::Image::open(const Resource& res) return false; } - this->_setBitmap(s_mBitmapsFromResource.at(res)); + this->_setBitmap(_bitmapCache.at(res)); return true; } @@ -150,7 +148,7 @@ e2d::Point e2d::Image::getCropPos() const bool e2d::Image::preload(const Resource& res) { - if (s_mBitmapsFromResource.find(res) != s_mBitmapsFromResource.end()) + if (_bitmapCache.find(res) != _bitmapCache.end()) { return true; } @@ -284,7 +282,7 @@ bool e2d::Image::preload(const Resource& res) if (SUCCEEDED(hr)) { - s_mBitmapsFromResource.insert(std::make_pair(res, pBitmap)); + _bitmapCache.insert(std::make_pair(res, pBitmap)); } // 释放相关资源 @@ -298,11 +296,11 @@ bool e2d::Image::preload(const Resource& res) void e2d::Image::clearCache() { - for (auto bitmap : s_mBitmapsFromResource) + for (auto bitmap : _bitmapCache) { SafeRelease(bitmap.second); } - s_mBitmapsFromResource.clear(); + _bitmapCache.clear(); } void e2d::Image::_setBitmap(ID2D1Bitmap * bitmap) diff --git a/core/Tool/Player.cpp b/core/Tool/Player.cpp index aaf0ea18..b3409439 100644 --- a/core/Tool/Player.cpp +++ b/core/Tool/Player.cpp @@ -13,9 +13,9 @@ e2d::Player::Player() e2d::Player::~Player() { - for (auto pair : _resList) + for (auto pair : _musicList) GC::release(pair.second); - _resList.clear(); + _musicList.clear(); if (_masteringVoice) _masteringVoice->DestroyVoice(); @@ -65,7 +65,7 @@ bool e2d::Player::preload(const String& filePath) bool e2d::Player::preload(const Resource& res) { - if (_resList.end() != _resList.find(res)) + if (_musicList.end() != _musicList.find(res)) return true; Music * music = new (e2d::autorelease) Music(); @@ -74,7 +74,7 @@ bool e2d::Player::preload(const Resource& res) { GC::retain(music); music->setVolume(_volume); - _resList.insert(std::make_pair(res, music)); + _musicList.insert(std::make_pair(res, music)); return true; } return false; @@ -92,7 +92,7 @@ bool e2d::Player::play(const Resource& res, int nLoopCount) { if (Player::preload(res)) { - auto music = _resList[res]; + auto music = _musicList[res]; if (music->play(nLoopCount)) { return true; @@ -111,8 +111,8 @@ void e2d::Player::pause(const String& filePath) void e2d::Player::pause(const Resource& res) { - if (_resList.end() != _resList.find(res)) - _resList[res]->pause(); + if (_musicList.end() != _musicList.find(res)) + _musicList[res]->pause(); } void e2d::Player::resume(const String& filePath) @@ -125,8 +125,8 @@ void e2d::Player::resume(const String& filePath) void e2d::Player::resume(const Resource& res) { - if (_resList.end() != _resList.find(res)) - _resList[res]->pause(); + if (_musicList.end() != _musicList.find(res)) + _musicList[res]->pause(); } void e2d::Player::stop(const String& filePath) @@ -143,8 +143,8 @@ void e2d::Player::stop(const Resource& res) { } - if (_resList.end() != _resList.find(res)) - _resList[res]->stop(); + if (_musicList.end() != _musicList.find(res)) + _musicList[res]->stop(); } bool e2d::Player::isPlaying(const String& filePath) @@ -157,8 +157,8 @@ bool e2d::Player::isPlaying(const String& filePath) bool e2d::Player::isPlaying(const Resource& res) { - if (_resList.end() != _resList.find(res)) - return _resList[res]->isPlaying(); + if (_musicList.end() != _musicList.find(res)) + return _musicList[res]->isPlaying(); return false; } @@ -170,7 +170,7 @@ double e2d::Player::getVolume() void e2d::Player::setVolume(double volume) { _volume = std::min(std::max(float(volume), -224.f), 224.f); - for (auto pair : _resList) + for (auto pair : _musicList) { pair.second->setVolume(_volume); } @@ -178,7 +178,7 @@ void e2d::Player::setVolume(double volume) void e2d::Player::pauseAll() { - for (auto pair : _resList) + for (auto pair : _musicList) { pair.second->pause(); } @@ -186,7 +186,7 @@ void e2d::Player::pauseAll() void e2d::Player::resumeAll() { - for (auto pair : _resList) + for (auto pair : _musicList) { pair.second->resume(); } @@ -194,7 +194,7 @@ void e2d::Player::resumeAll() void e2d::Player::stopAll() { - for (auto pair : _resList) + for (auto pair : _musicList) { pair.second->stop(); } @@ -202,9 +202,9 @@ void e2d::Player::stopAll() void e2d::Player::clearCache() { - for (auto pair : _resList) + for (auto pair : _musicList) { GC::release(pair.second); } - _resList.clear(); + _musicList.clear(); } diff --git a/core/e2dcommon.h b/core/e2dcommon.h index d9e1bba1..a6998680 100644 --- a/core/e2dcommon.h +++ b/core/e2dcommon.h @@ -552,10 +552,10 @@ public: bool operator<= (const Resource &) const; protected: - bool _isResource; - String _fileName; - int _resNameId; - String _resType; + bool _isResource; + int _resNameId; + String _resType; + String _fileName; }; @@ -675,6 +675,8 @@ protected: protected: Rect _cropRect; ID2D1Bitmap * _bitmap; + + static std::map _bitmapCache; }; diff --git a/core/e2dtool.h b/core/e2dtool.h index b69c38ac..dda2fcca 100644 --- a/core/e2dtool.h +++ b/core/e2dtool.h @@ -253,7 +253,7 @@ private: private: float _volume; - MusicMap _resList; + MusicMap _musicList; IXAudio2* _xAudio2; IXAudio2MasteringVoice* _masteringVoice;