123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- //
- // RedBakeSpineIO.h
- // cocos2d_libs
- //
- // Created by ZhengSong on 2023/2/16.
- //
- #ifndef RedBakeSpineIO_h
- #define RedBakeSpineIO_h
- #include "spine_bake_data.pb.h"
- #include "RedAnimationBakeModel.h"
- using namespace std;
- namespace spine {
- class RedBakeSpineIO {
- public:
- struct AsyncStruct
- {
- public:
- AsyncStruct
- ( const std::string& aFilaName,
- const std::string& aFilePath,
- const std::function<void(std::unordered_map<std::string, RedAnimationBakeModel*>&)> aCallback
- ): filename(aFilaName), filePath(aFilePath), callback(aCallback){}
- std::string filename;
- std::string filePath;
- std::function<void(std::unordered_map<std::string, RedAnimationBakeModel*>&)> callback;
- };
- RedBakeSpineIO();
- ~RedBakeSpineIO();
-
- static RedBakeSpineIO* getInstance();
-
- /// 把spine的烘焙数据写入到指定路径
- /// @param filePath 烘焙文件路径
- /// @param bakeModelList 烘焙的数据列表
- void write(const std::string& filePath, const std::unordered_map<std::string, RedAnimationBakeModel*>& datas);
- //read
- void readAnimationBakeModel(const ::RedSpineBakeProto::RedAnimationBakeModel& model_pb, RedAnimationBakeModel* model,const std::string& filePath);
- private:
- //write
- void _writeAnimationBakeModel(RedAnimationBakeModel* model, ::RedSpineBakeProto::RedAnimationBakeModel& model_pb);
- void _writeSlotBakeModel(RedSlotBakeModel* model, ::RedSpineBakeProto::RedSlotBakeModel& model_pb);
- //read
- void _readAnimationBakeModel(const ::RedSpineBakeProto::RedAnimationBakeModel& model_pb, RedAnimationBakeModel* model,const std::string& filePath);
- void _readSlotBakeModel(const ::RedSpineBakeProto::RedSlotBakeModel& model_pb, RedSlotBakeModel* model, const std::string& filePath, const std::function<void()>& finishCb = nullptr);
- };
-
- } //namespace
- #endif /* RedBakeSpineIO_h */
|