blob: 5c703d9d40a0ef2e5355415332cc3bba6212680d [file] [log] [blame]
#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);
}
};