blob: bfb86bc52499da744495e9f62bda2434c07d462a [file] [log] [blame]
#ifndef _RIVE_VIEW_MODEL_INSTANCE_ASSET_HPP_
#define _RIVE_VIEW_MODEL_INSTANCE_ASSET_HPP_
#include "rive/generated/viewmodel/viewmodel_instance_asset_base.hpp"
#include "rive/assets/file_asset.hpp"
#include "rive/refcnt.hpp"
#include <stdio.h>
namespace rive
{
#ifdef WITH_RIVE_TOOLS
class ViewModelInstanceAsset;
typedef void (*ViewModelAssetChanged)(ViewModelInstanceAsset* vmi,
uint32_t value);
#endif
class ViewModelInstanceAsset : public ViewModelInstanceAssetBase
{
public:
StatusCode import(ImportStack& importStack) override;
void addAsset(rcp<FileAsset> asset) { m_assets.push_back(asset); }
protected:
const std::vector<rcp<FileAsset>>& assets() const { return m_assets; }
private:
std::vector<rcp<FileAsset>> m_assets;
#ifdef WITH_RIVE_TOOLS
public:
void onChanged(ViewModelAssetChanged callback)
{
m_changedCallback = callback;
}
ViewModelAssetChanged m_changedCallback = nullptr;
#endif
};
} // namespace rive
#endif