aboutsummaryrefslogtreecommitdiff
path: root/src/win/graph/direct/Geometry.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/win/graph/direct/Geometry.cpp')
-rw-r--r--src/win/graph/direct/Geometry.cpp62
1 files changed, 0 insertions, 62 deletions
diff --git a/src/win/graph/direct/Geometry.cpp b/src/win/graph/direct/Geometry.cpp
deleted file mode 100644
index e77b4749..00000000
--- a/src/win/graph/direct/Geometry.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-#include "cru/win/graph/direct/Geometry.hpp"
-
-#include "cru/win/graph/direct/ConvertUtil.hpp"
-#include "cru/win/graph/direct/Exception.hpp"
-#include "cru/win/graph/direct/Factory.hpp"
-
-namespace cru::platform::graph::win::direct {
-D2DGeometryBuilder::D2DGeometryBuilder(DirectGraphFactory* factory)
- : DirectGraphResource(factory) {
- ThrowIfFailed(factory->GetD2D1Factory()->CreatePathGeometry(&geometry_));
- ThrowIfFailed(geometry_->Open(&geometry_sink_));
-}
-
-void D2DGeometryBuilder::CheckValidation() {
- if (!IsValid())
- throw ReuseException("The geometry builder is already disposed.");
-}
-
-void D2DGeometryBuilder::BeginFigure(const Point& point) {
- CheckValidation();
- geometry_sink_->BeginFigure(Convert(point), D2D1_FIGURE_BEGIN_FILLED);
-}
-
-void D2DGeometryBuilder::LineTo(const Point& point) {
- CheckValidation();
- geometry_sink_->AddLine(Convert(point));
-}
-
-void D2DGeometryBuilder::QuadraticBezierTo(const Point& control_point,
- const Point& end_point) {
- CheckValidation();
- geometry_sink_->AddQuadraticBezier(
- D2D1::QuadraticBezierSegment(Convert(control_point), Convert(end_point)));
-}
-
-void D2DGeometryBuilder::CloseFigure(bool close) {
- CheckValidation();
- geometry_sink_->EndFigure(close ? D2D1_FIGURE_END_CLOSED
- : D2D1_FIGURE_END_OPEN);
-}
-
-std::unique_ptr<IGeometry> D2DGeometryBuilder::Build() {
- CheckValidation();
- ThrowIfFailed(geometry_sink_->Close());
- geometry_sink_ = nullptr;
- auto geometry =
- std::make_unique<D2DGeometry>(GetDirectFactory(), std::move(geometry_));
- geometry_ = nullptr;
- return geometry;
-}
-
-D2DGeometry::D2DGeometry(DirectGraphFactory* factory,
- Microsoft::WRL::ComPtr<ID2D1PathGeometry> geometry)
- : DirectGraphResource(factory), geometry_(std::move(geometry)) {}
-
-bool D2DGeometry::FillContains(const Point& point) {
- BOOL result;
- ThrowIfFailed(geometry_->FillContainsPoint(
- Convert(point), D2D1::Matrix3x2F::Identity(), &result));
- return result != 0;
-}
-} // namespace cru::platform::graph::win::direct