aboutsummaryrefslogtreecommitdiff
path: root/include/cru/win/graphics/direct/Geometry.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/cru/win/graphics/direct/Geometry.h')
-rw-r--r--include/cru/win/graphics/direct/Geometry.h71
1 files changed, 0 insertions, 71 deletions
diff --git a/include/cru/win/graphics/direct/Geometry.h b/include/cru/win/graphics/direct/Geometry.h
deleted file mode 100644
index 7c231d69..00000000
--- a/include/cru/win/graphics/direct/Geometry.h
+++ /dev/null
@@ -1,71 +0,0 @@
-#pragma once
-#include "ComResource.h"
-#include "Resource.h"
-
-#include "cru/platform/graphics/Geometry.h"
-
-namespace cru::platform::graphics::win::direct {
-class CRU_WIN_GRAPHICS_DIRECT_API D2DGeometryBuilder
- : public DirectGraphicsResource,
- public virtual IGeometryBuilder {
- public:
- explicit D2DGeometryBuilder(DirectGraphicsFactory* factory);
-
- CRU_DELETE_COPY(D2DGeometryBuilder)
- CRU_DELETE_MOVE(D2DGeometryBuilder)
-
- ~D2DGeometryBuilder() override = default;
-
- public:
- Point GetCurrentPosition() override;
-
- void MoveTo(const Point& point) override;
- void LineTo(const Point& point) override;
- void CubicBezierTo(const Point& start_control_point,
- const Point& end_control_point,
- const Point& end_point) override;
- void QuadraticBezierTo(const Point& control_point,
- const Point& end_point) override;
- void ArcTo(const Point& radius, float angle, bool is_large_arc,
- bool is_clockwise, const Point& end_point) override;
- void CloseFigure(bool close) override;
-
- std::unique_ptr<IGeometry> Build() override;
-
- private:
- bool IsValid() { return geometry_ != nullptr; }
- void CheckValidation();
-
- private:
- Microsoft::WRL::ComPtr<ID2D1PathGeometry> geometry_;
- Microsoft::WRL::ComPtr<ID2D1GeometrySink> geometry_sink_;
- Point start_point_;
- Point current_position_;
-};
-
-class CRU_WIN_GRAPHICS_DIRECT_API D2DGeometry
- : public DirectGraphicsResource,
- public virtual IGeometry,
- public IComResource<ID2D1Geometry> {
- public:
- D2DGeometry(DirectGraphicsFactory* factory,
- Microsoft::WRL::ComPtr<ID2D1Geometry> geometry);
-
- CRU_DELETE_COPY(D2DGeometry)
- CRU_DELETE_MOVE(D2DGeometry)
-
- ~D2DGeometry() override = default;
-
- public:
- ID2D1Geometry* GetComInterface() const override { return geometry_.Get(); }
-
- public:
- bool FillContains(const Point& point) override;
- Rect GetBounds() override;
- std::unique_ptr<IGeometry> Transform(const Matrix& matrix) override;
- std::unique_ptr<IGeometry> CreateStrokeGeometry(float width) override;
-
- private:
- Microsoft::WRL::ComPtr<ID2D1Geometry> geometry_;
-};
-} // namespace cru::platform::graphics::win::direct