Use ThorVG instead of NanoSVG for importing SVGs
ThorVG is a platform-independent portable library for drawing vector-based scene and animation. Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
This commit is contained in:
parent
9b3535a33a
commit
8d02759c72
99 changed files with 28702 additions and 4654 deletions
|
|
@ -32,38 +32,18 @@
|
|||
#define IMAGE_LOADER_SVG_H
|
||||
|
||||
#include "core/io/image_loader.h"
|
||||
#include "core/string/ustring.h"
|
||||
|
||||
// Forward declare and include thirdparty headers in .cpp.
|
||||
struct NSVGrasterizer;
|
||||
struct NSVGimage;
|
||||
|
||||
class SVGRasterizer {
|
||||
NSVGrasterizer *rasterizer;
|
||||
|
||||
public:
|
||||
void rasterize(NSVGimage *p_image, float p_tx, float p_ty, float p_scale, unsigned char *p_dst, int p_w, int p_h, int p_stride);
|
||||
|
||||
SVGRasterizer();
|
||||
~SVGRasterizer();
|
||||
};
|
||||
|
||||
class ImageLoaderSVG : public ImageFormatLoader {
|
||||
static struct ReplaceColors {
|
||||
List<uint32_t> old_colors;
|
||||
List<uint32_t> new_colors;
|
||||
} replace_colors;
|
||||
static SVGRasterizer rasterizer;
|
||||
static void _convert_colors(NSVGimage *p_svg_image);
|
||||
static Error _create_image(Ref<Image> p_image, const Vector<uint8_t> *p_data, float p_scale, bool upsample, bool convert_colors = false);
|
||||
Dictionary replace_colors;
|
||||
void _replace_color_property(const String &p_prefix, String &r_string);
|
||||
|
||||
public:
|
||||
static void set_convert_colors(Dictionary *p_replace_color = nullptr);
|
||||
static Error create_image_from_string(Ref<Image> p_image, const char *p_svg_str, float p_scale, bool upsample, bool convert_colors = false);
|
||||
// Called by the editor to handle theme icon colors.
|
||||
void set_replace_colors(Dictionary p_replace_colors) { replace_colors = p_replace_colors; }
|
||||
void create_image_from_string(Ref<Image> p_image, String p_string, float p_scale, bool p_upsample, bool p_convert_color);
|
||||
|
||||
virtual Error load_image(Ref<Image> p_image, FileAccess *f, bool p_force_linear, float p_scale);
|
||||
virtual void get_recognized_extensions(List<String> *p_extensions) const;
|
||||
ImageLoaderSVG();
|
||||
virtual Error load_image(Ref<Image> p_image, FileAccess *p_fileaccess, bool p_force_linear, float p_scale) override;
|
||||
virtual void get_recognized_extensions(List<String> *p_extensions) const override;
|
||||
};
|
||||
|
||||
#endif // IMAGE_LOADER_SVG_H
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue