diff options
Diffstat (limited to 'include/cru/platform')
-rw-r--r-- | include/cru/platform/GraphicsBase.h | 4 | ||||
-rw-r--r-- | include/cru/platform/graphics/Geometry.h | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/include/cru/platform/GraphicsBase.h b/include/cru/platform/GraphicsBase.h index 8fb9a3af..62a8bf29 100644 --- a/include/cru/platform/GraphicsBase.h +++ b/include/cru/platform/GraphicsBase.h @@ -1,9 +1,9 @@ #pragma once #include "cru/common/Base.h" +#include "cru/common/Format.h" #include "cru/common/Range.h" #include "cru/common/String.h" -#include "cru/common/Format.h" #include <cstdint> #include <limits> @@ -25,6 +25,8 @@ struct Point final { return *this; } + constexpr Point Negate() const { return Point(-x, -y); } + float x = 0; float y = 0; }; diff --git a/include/cru/platform/graphics/Geometry.h b/include/cru/platform/graphics/Geometry.h index 1c2bd1f7..19620789 100644 --- a/include/cru/platform/graphics/Geometry.h +++ b/include/cru/platform/graphics/Geometry.h @@ -1,6 +1,8 @@ #pragma once #include "Resource.h" +#include <memory> + namespace cru::platform::graphics { struct CRU_PLATFORM_GRAPHICS_API IGeometry : virtual IGraphicsResource { virtual bool FillContains(const Point& point) = 0; @@ -59,4 +61,7 @@ struct CRU_PLATFORM_GRAPHICS_API IGeometryBuilder : virtual IGraphicsResource { void ParseAndApplySvgPathData(StringView path_d); }; + +std::unique_ptr<IGeometry> CRU_PLATFORM_GRAPHICS_API +CreateGeometryFromSvgPathData(IGraphicsFactory* factory, StringView path_d); } // namespace cru::platform::graphics |