blob: 7d9510b757ba463789bf6856f6cf50f0ea9d4ce8 [file] [log] [blame]
#ifndef _RIVE_IMAGE_HPP_
#define _RIVE_IMAGE_HPP_
#include "rive/hit_info.hpp"
#include "rive/generated/shapes/image_base.hpp"
#include "rive/assets/file_asset_referencer.hpp"
namespace rive
{
class ImageAsset;
class Mesh;
class Image : public ImageBase, public FileAssetReferencer
{
private:
Mesh* m_Mesh = nullptr;
public:
Mesh* mesh() const;
void setMesh(Mesh* mesh);
ImageAsset* imageAsset() const { return (ImageAsset*)m_fileAsset; }
void draw(Renderer* renderer) override;
Core* hitTest(HitInfo*, const Mat2D&) override;
StatusCode import(ImportStack& importStack) override;
void setAsset(FileAsset*) override;
uint32_t assetId() override;
Core* clone() const override;
Vec2D measureLayout(float width,
LayoutMeasureMode widthMode,
float height,
LayoutMeasureMode heightMode) override;
void controlSize(Vec2D size) override;
float width() const;
float height() const;
};
} // namespace rive
#endif