| #include "rive/assets/file_asset_referencer.hpp" | |
| #include "rive/backboard.hpp" | |
| #include "rive/assets/file_asset.hpp" | |
| #include "rive/importers/backboard_importer.hpp" | |
| using namespace rive; | |
| FileAssetReferencer::~FileAssetReferencer() | |
| { | |
| if (m_fileAsset != nullptr) | |
| { | |
| m_fileAsset->removeFileAssetReferencer(this); | |
| } | |
| } | |
| StatusCode FileAssetReferencer::registerReferencer(ImportStack& importStack) | |
| { | |
| auto backboardImporter = importStack.latest<BackboardImporter>(Backboard::typeKey); | |
| if (backboardImporter == nullptr) | |
| { | |
| return StatusCode::MissingObject; | |
| } | |
| backboardImporter->addFileAssetReferencer(this); | |
| return StatusCode::Ok; | |
| } | |
| void FileAssetReferencer::setAsset(FileAsset* asset) | |
| { | |
| if (m_fileAsset != nullptr) | |
| { | |
| m_fileAsset->removeFileAssetReferencer(this); | |
| } | |
| m_fileAsset = asset; | |
| if (asset != nullptr) | |
| { | |
| asset->addFileAssetReferencer(this); | |
| } | |
| }; |