blob: 9c8d6d9d79180fe259d4767a448a4efc85b60196 [file] [edit]
#include "rive/scripted/decoded_file.hpp"
#include "rive/bindable_artboard.hpp"
#include "rive/viewmodel/viewmodel_instance.hpp"
using namespace rive;
rcp<File> rive::importDecodedFile(
Span<const uint8_t> bytes,
Factory* factory,
ImportResult* result)
{
auto file = File::import(
bytes,
factory,
result,
nullptr,
nullptr,
/*requireSignedScripts*/ true);
#if defined(__EMSCRIPTEN__) && defined(WITH_RIVE_SCRIPTING_WASM)
// No host awaits a prepare step for a file a script decodes, so its
// modules instantiate inline here.
if (file != nullptr)
{
file->startScripts();
}
#endif
return file;
}
DecodedBindable rive::decodedBindable(const File& file, const char* name)
{
DecodedBindable bindable;
bindable.artboard = name != nullptr ? file.bindableArtboardNamed(name)
: file.bindableArtboardDefault();
if (bindable.artboard != nullptr)
{
bindable.viewModel = file.createDefaultViewModelInstance(
bindable.artboard->artboard());
}
return bindable;
}