| /* | |
| * Copyright 2022 Rive | |
| */ | |
| #include "viewer/viewer_content.hpp" | |
| #include "rive/factory.hpp" | |
| #include "rive/renderer.hpp" | |
| class ImageContent : public ViewerContent | |
| { | |
| rive::rcp<rive::RenderImage> m_image; | |
| public: | |
| ImageContent(rive::rcp<rive::RenderImage> image) { m_image = std::move(image); } | |
| void handleDraw(rive::Renderer* renderer, double) override | |
| { | |
| renderer->drawImage(m_image.get(), rive::BlendMode::srcOver, 1); | |
| } | |
| void handleResize(int width, int height) override {} | |
| #ifndef RIVE_SKIP_IMGUI | |
| void handleImgui() override {} | |
| #endif | |
| }; | |
| std::unique_ptr<ViewerContent> ViewerContent::Image(const char filename[]) | |
| { | |
| auto bytes = LoadFile(filename); | |
| auto image = RiveFactory()->decodeImage(bytes); | |
| if (image) | |
| { | |
| return rivestd::make_unique<ImageContent>(std::move(image)); | |
| } | |
| return nullptr; | |
| } |