// // 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&)> aCallback ): filename(aFilaName), filePath(aFilePath), callback(aCallback){} std::string filename; std::string filePath; std::function&)> callback; }; RedBakeSpineIO(); ~RedBakeSpineIO(); static RedBakeSpineIO* getInstance(); /// 把spine的烘焙数据写入到指定路径 /// @param filePath 烘焙文件路径 /// @param bakeModelList 烘焙的数据列表 void write(const std::string& filePath, const std::unordered_map& 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& finishCb = nullptr); }; } //namespace #endif /* RedBakeSpineIO_h */