blob: d589ef3b24c6d6cd1c4a65a72ad814911c4c25a4 [file]
#include "rive/importers/file_asset_importer.hpp"
#include "rive/assets/file_asset_contents.hpp"
#include "rive/assets/file_asset.hpp"
#include "rive/file_asset_resolver.hpp"
using namespace rive;
FileAssetImporter::FileAssetImporter(FileAsset* fileAsset,
FileAssetResolver* assetResolver) :
m_FileAsset(fileAsset), m_FileAssetResolver(assetResolver)
{
}
void FileAssetImporter::loadContents(const FileAssetContents& contents)
{
const std::vector<uint8_t>& data = contents.bytes();
if (m_FileAsset->decode(&data[0], data.size()))
{
m_LoadedContents = true;
}
}
StatusCode FileAssetImporter::resolve()
{
if (!m_LoadedContents && m_FileAssetResolver != nullptr)
{
// Contents weren't available in-band, or they couldn't be decoded. Try
// to find them out of band.
m_FileAssetResolver->loadContents(*m_FileAsset);
}
// Note that it's ok for an asset to not resolve (or to resolve async).
return StatusCode::Ok;
}