#pragma once #include #include #include #include "JsiSkHostObjects.h" #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdocumentation" #include #pragma clang diagnostic pop namespace RNSkia { namespace jsi = facebook::jsi; class JsiSkSVG : public JsiSkWrappingSkPtrHostObject { public: JsiSkSVG(std::shared_ptr context, sk_sp svgdom) : JsiSkWrappingSkPtrHostObject(std::move(context), std::move(svgdom)) {} EXPORT_JSI_API_TYPENAME(JsiSkSVG, "SVG") JSI_HOST_FUNCTION(width) { return static_cast(getObject()->containerSize().width()); } JSI_HOST_FUNCTION(height) { return static_cast(getObject()->containerSize().height()); } JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkSVG, width), JSI_EXPORT_FUNC(JsiSkSVG, height), JSI_EXPORT_FUNC(JsiSkSVG, dispose)) /** Returns the underlying object from a host object of this type */ static sk_sp fromValue(jsi::Runtime &runtime, const jsi::Value &obj) { return obj.asObject(runtime).asHostObject(runtime)->getObject(); } }; } // namespace RNSkia