#include #include namespace engineapi { class Asset { public: enum { ASSET_NONE, ASSET_SHARED_TYPE, ASSET_COPY_TYPE, ASSET_ASYNC_TYPE, ASSET_LOADED_TYPE, ASSET_NUM, }; protected: uint32_t mFlags; std::string mName; public: Asset(std::string& name, uint32_t flags):mName(name),mFlags(flags) {}; virtual void onLoadFinished() { mFlags |= ASSET_LOADED_TYPE; }; virtual void SyncLoad() {}; public: inline bool IsShared() { return mFlags & ASSET_SHARED_TYPE; } inline bool IsCopyed() { return mFlags & ASSET_COPY_TYPE; } inline bool IsAsync() { return mFlags & ASSET_ASYNC_TYPE; } }; }