aboutsummaryrefslogtreecommitdiff
path: root/src/win/graph/direct/Geometry.cpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-03-24 19:14:19 +0800
committercrupest <crupest@outlook.com>2021-03-24 19:14:19 +0800
commit7f15a1ff9a2007e119798053083a0a87d042990a (patch)
treecb35c01a7eaee867376d959b96c9bbd15df939e5 /src/win/graph/direct/Geometry.cpp
parent74956951ee663012df0c3fe4ebe29799cb2f7732 (diff)
parent7703063a5816b089483e78ccd74bb9902ccfbea8 (diff)
downloadcru-7f15a1ff9a2007e119798053083a0a87d042990a.tar.gz
cru-7f15a1ff9a2007e119798053083a0a87d042990a.tar.bz2
cru-7f15a1ff9a2007e119798053083a0a87d042990a.zip
Merge branch 'master' of https://github.com/crupest/CruUI
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