Add simple wxBitmapBundle::FromSVG() implementation using NanoSVG

Add nanosvg submodule and use it in the generic implementation of this
function.

This is incomplete yet and, notably, doesn't cache the rasterized
images, but already shows that using SVG images works (at least in the
toolbar sample).
This commit is contained in:
Vadim Zeitlin
2021-09-28 18:03:55 +01:00
parent 5ebd76156d
commit ac02ae877f
17 changed files with 369 additions and 27 deletions

View File

@@ -2203,7 +2203,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_calctrlg.o \
$(OBJS)\monodll_creddlgg.o \
$(OBJS)\monodll_rowheightcache.o \
$(OBJS)\monodll_common_bmpbndl.o
$(OBJS)\monodll_common_bmpbndl.o \
$(OBJS)\monodll_bmpsvg.o
endif
endif
ifeq ($(USE_GUI),1)
@@ -2535,7 +2536,8 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_calctrlg.o \
$(OBJS)\monodll_creddlgg.o \
$(OBJS)\monodll_rowheightcache.o \
$(OBJS)\monodll_common_bmpbndl.o
$(OBJS)\monodll_common_bmpbndl.o \
$(OBJS)\monodll_bmpsvg.o
endif
endif
ifeq ($(USE_STC),1)
@@ -3049,7 +3051,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_calctrlg.o \
$(OBJS)\monolib_creddlgg.o \
$(OBJS)\monolib_rowheightcache.o \
$(OBJS)\monolib_common_bmpbndl.o
$(OBJS)\monolib_common_bmpbndl.o \
$(OBJS)\monolib_bmpsvg.o
endif
endif
ifeq ($(USE_GUI),1)
@@ -3381,7 +3384,8 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_calctrlg.o \
$(OBJS)\monolib_creddlgg.o \
$(OBJS)\monolib_rowheightcache.o \
$(OBJS)\monolib_common_bmpbndl.o
$(OBJS)\monolib_common_bmpbndl.o \
$(OBJS)\monolib_bmpsvg.o
endif
endif
ifeq ($(USE_STC),1)
@@ -3778,7 +3782,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_calctrlg.o \
$(OBJS)\coredll_creddlgg.o \
$(OBJS)\coredll_rowheightcache.o \
$(OBJS)\coredll_common_bmpbndl.o
$(OBJS)\coredll_common_bmpbndl.o \
$(OBJS)\coredll_bmpsvg.o
endif
endif
ifeq ($(USE_GUI),1)
@@ -4110,7 +4115,8 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_calctrlg.o \
$(OBJS)\coredll_creddlgg.o \
$(OBJS)\coredll_rowheightcache.o \
$(OBJS)\coredll_common_bmpbndl.o
$(OBJS)\coredll_common_bmpbndl.o \
$(OBJS)\coredll_bmpsvg.o
endif
endif
ifeq ($(MONOLITHIC),0)
@@ -4465,7 +4471,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_calctrlg.o \
$(OBJS)\corelib_creddlgg.o \
$(OBJS)\corelib_rowheightcache.o \
$(OBJS)\corelib_common_bmpbndl.o
$(OBJS)\corelib_common_bmpbndl.o \
$(OBJS)\corelib_bmpsvg.o
endif
endif
ifeq ($(USE_GUI),1)
@@ -4797,7 +4804,8 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_calctrlg.o \
$(OBJS)\corelib_creddlgg.o \
$(OBJS)\corelib_rowheightcache.o \
$(OBJS)\corelib_common_bmpbndl.o
$(OBJS)\corelib_common_bmpbndl.o \
$(OBJS)\corelib_bmpsvg.o
endif
endif
ifeq ($(SHARED),1)
@@ -9482,6 +9490,11 @@ $(OBJS)\monodll_common_bmpbndl.o: ../../src/common/bmpbndl.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monodll_bmpsvg.o: ../../src/generic/bmpsvg.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
$(OBJS)\monodll_version_rc.o: ../../src/msw/version.rc
$(WINDRES) -i$< -o$@ --include-dir ../../src/tiff/libtiff --include-dir ../../src/jpeg --include-dir ../../src/png --include-dir ../../src/zlib --include-dir ../../3rdparty/pcre/src/wx --include-dir ../../src/expat/expat/lib --define __WXMSW__ $(__WXUNIV_DEFINE_p_66) $(__DEBUG_DEFINE_p_66) $(__NDEBUG_DEFINE_p_65) $(__EXCEPTIONS_DEFINE_p_65) $(__RTTI_DEFINE_p_65) $(__THREAD_DEFINE_p_65) $(__UNICODE_DEFINE_p_67) --include-dir $(SETUPHDIR) --include-dir ../../include $(__CAIRO_INCLUDEDIR_p) --define WXBUILDING --define WXDLLNAME=wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)$(WXCOMPILER)$(VENDORTAG) --include-dir ../../src/stc/scintilla/include --include-dir ../../src/stc/scintilla/lexlib --include-dir ../../src/stc/scintilla/src --define __WX__ --define SCI_LEXER --define NO_CXX11_REGEX --define LINK_LEXERS --define wxUSE_BASE=1 --define WXMAKINGDLL
@@ -12066,6 +12079,11 @@ $(OBJS)\monolib_common_bmpbndl.o: ../../src/common/bmpbndl.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_bmpsvg.o: ../../src/generic/bmpsvg.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
$(OBJS)\basedll_dummy.o: ../../src/common/dummy.cpp
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
@@ -14623,6 +14641,11 @@ $(OBJS)\coredll_common_bmpbndl.o: ../../src/common/bmpbndl.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\coredll_bmpsvg.o: ../../src/generic/bmpsvg.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
endif
$(OBJS)\corelib_dummy.o: ../../src/common/dummy.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
@@ -16373,6 +16396,11 @@ $(OBJS)\corelib_common_bmpbndl.o: ../../src/common/bmpbndl.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\corelib_bmpsvg.o: ../../src/generic/bmpsvg.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
endif
$(OBJS)\advdll_dummy.o: ../../src/common/dummy.cpp
$(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<