| #include "rive/assets/image_asset.hpp" | |
| #include "rive/artboard.hpp" | |
| #include "rive/factory.hpp" | |
| #include "rive/assets/file_asset_referencer.hpp" | |
| using namespace rive; | |
| ImageAsset::~ImageAsset() | |
| { | |
| #if defined(__EMSCRIPTEN__) | |
| if (m_RenderImage != nullptr) | |
| { | |
| m_RenderImage->delegate(nullptr); | |
| } | |
| #endif | |
| } | |
| #if defined(__EMSCRIPTEN__) | |
| void ImageAsset::decodedAsync() | |
| { | |
| for (auto ref : fileAssetReferencers()) | |
| { | |
| ref->assetUpdated(); | |
| } | |
| } | |
| #endif | |
| bool ImageAsset::decode(SimpleArray<uint8_t>& data, Factory* factory) | |
| { | |
| #ifdef TESTING | |
| decodedByteSize = data.size(); | |
| #endif | |
| renderImage(factory->decodeImage(data)); | |
| return m_RenderImage != nullptr; | |
| } | |
| void ImageAsset::renderImage(rcp<RenderImage> renderImage) | |
| { | |
| m_RenderImage = std::move(renderImage); | |
| #if defined(__EMSCRIPTEN__) | |
| if (m_RenderImage != nullptr) | |
| { | |
| m_RenderImage->delegate(this); | |
| } | |
| #endif | |
| for (auto ref : fileAssetReferencers()) | |
| { | |
| ref->assetUpdated(); | |
| } | |
| } | |
| std::string ImageAsset::fileExtension() const { return "png"; } |