diff --git a/include/wx/bmpbndl.h b/include/wx/bmpbndl.h index 5f2b414c7b..a77a6cc791 100644 --- a/include/wx/bmpbndl.h +++ b/include/wx/bmpbndl.h @@ -18,13 +18,6 @@ class wxBitmapBundleImpl; class WXDLLIMPEXP_FWD_CORE wxImageList; class WXDLLIMPEXP_FWD_CORE wxWindow; -// It should be possible to implement SVG rasterizing without raw bitmap -// support using wxDC::DrawSpline(), but currently we don't do it and so -// FromSVG() is only available in the ports providing raw bitmap access. -#ifdef wxHAS_RAW_BITMAP - #define wxHAS_SVG -#endif - // ---------------------------------------------------------------------------- // wxBitmapBundle provides 1 or more versions of a bitmap, all bundled together // ---------------------------------------------------------------------------- diff --git a/include/wx/features.h b/include/wx/features.h index c40265ca73..7f28d4915e 100644 --- a/include/wx/features.h +++ b/include/wx/features.h @@ -95,6 +95,15 @@ #define wxHAVE_RAW_BITMAP #endif +/* + While it should be possible to implement SVG rasterizing without raw bitmap + support using wxDC::DrawSpline(), currently we don't do it and so FromSVG() + is only available in the ports providing raw bitmap access. + */ +#ifdef wxHAS_RAW_BITMAP + #define wxHAS_SVG +#endif + // Previously this symbol wasn't defined for all compilers as Bind() couldn't // be implemented for some of them (notably MSVC 6), but this is not the case diff --git a/src/generic/bmpsvg.cpp b/src/generic/bmpsvg.cpp index 8517508896..0e70d164af 100644 --- a/src/generic/bmpsvg.cpp +++ b/src/generic/bmpsvg.cpp @@ -19,8 +19,6 @@ // for compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" -#include "wx/bmpbndl.h" - #ifdef wxHAS_SVG // Try to help people updating their sources from Git and forgetting to @@ -38,20 +36,13 @@ #ifdef wxHAS_SVG -#ifndef WX_PRECOMP - #include "wx/utils.h" // Only for wxMin() -#endif // WX_PRECOMP +// Note that we have to include NanoSVG headers before including any of wx +// headers, notably wx/unichar.h which defines global operator==() overloads +// for wxUniChar that confuse OpenVMS C++ compiler and break compilation of +// these headers with errors about ambiguous operator==(char,enum). -#ifdef wxUSE_FFILE - #include "wx/ffile.h" -#elif wxUSE_FILE - #include "wx/file.h" -#else - #define wxNO_SVG_FILE -#endif -#include "wx/rawbmp.h" - -#include "wx/private/bmpbndl.h" +// This is required by NanoSVG headers, but not included by them. +#include // Disable some warnings inside NanoSVG code that we're not interested in. #ifdef __VISUALC__ @@ -75,6 +66,22 @@ #pragma warning(pop) #endif +#ifndef WX_PRECOMP + #include "wx/utils.h" // Only for wxMin() +#endif // WX_PRECOMP + +#include "wx/bmpbndl.h" +#ifdef wxUSE_FFILE + #include "wx/ffile.h" +#elif wxUSE_FILE + #include "wx/file.h" +#else + #define wxNO_SVG_FILE +#endif +#include "wx/rawbmp.h" + +#include "wx/private/bmpbndl.h" + // ---------------------------------------------------------------------------- // private helpers // ----------------------------------------------------------------------------