aboutsummaryrefslogtreecommitdiff
path: root/src/win/graph/win_geometry.cpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2019-06-27 00:18:48 +0800
committercrupest <crupest@outlook.com>2019-06-27 00:18:48 +0800
commitbaa7cf141b8121473edceae16c1a20a6d47bd202 (patch)
tree9349633a9d0bc286fe29f480bd70e4c2ad1f3075 /src/win/graph/win_geometry.cpp
parentf404a3b2eb7bb9865d0c6f938538899996a53d8c (diff)
downloadcru-baa7cf141b8121473edceae16c1a20a6d47bd202.tar.gz
cru-baa7cf141b8121473edceae16c1a20a6d47bd202.tar.bz2
cru-baa7cf141b8121473edceae16c1a20a6d47bd202.zip
......
Diffstat (limited to 'src/win/graph/win_geometry.cpp')
-rw-r--r--src/win/graph/win_geometry.cpp65
1 files changed, 0 insertions, 65 deletions
diff --git a/src/win/graph/win_geometry.cpp b/src/win/graph/win_geometry.cpp
deleted file mode 100644
index a725eff6..00000000
--- a/src/win/graph/win_geometry.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-#include "cru/win/graph/win_geometry.hpp"
-
-#include "cru/win/exception.hpp"
-#include "cru/win/graph/util/convert_util.hpp"
-#include "cru/win/graph/win_native_factory.hpp"
-
-#include <cassert>
-
-namespace cru::win::graph {
-WinGeometryBuilder::WinGeometryBuilder(IWinNativeFactory* factory) {
- assert(factory);
- ThrowIfFailed(factory->GetD2D1Factory()->CreatePathGeometry(&geometry_));
- ThrowIfFailed(geometry_->Open(&geometry_sink_));
-}
-
-WinGeometryBuilder::~WinGeometryBuilder() {
- if (geometry_sink_) {
- ThrowIfFailed(geometry_sink_->Close());
- }
-}
-
-void WinGeometryBuilder::BeginFigure(const ui::Point& point) {
- assert(IsEnded());
- geometry_sink_->BeginFigure(util::Convert(point), D2D1_FIGURE_BEGIN_FILLED);
-}
-
-void WinGeometryBuilder::LineTo(const ui::Point& point) {
- assert(IsEnded());
- geometry_sink_->AddLine(util::Convert(point));
-}
-
-void WinGeometryBuilder::QuadraticBezierTo(const ui::Point& control_point,
- const ui::Point& end_point) {
- assert(IsEnded());
- geometry_sink_->AddQuadraticBezier(D2D1::QuadraticBezierSegment(
- util::Convert(control_point), util::Convert(end_point)));
-}
-
-void WinGeometryBuilder::CloseFigure(bool close) {
- assert(IsEnded());
- geometry_sink_->EndFigure(close ? D2D1_FIGURE_END_CLOSED
- : D2D1_FIGURE_END_OPEN);
-}
-
-platform::graph::IGeometry* WinGeometryBuilder::End() {
- assert(IsEnded());
- ThrowIfFailed(geometry_sink_->Close());
- geometry_sink_ = nullptr;
- const auto geometry = new WinGeometry(std::move(geometry_));
- geometry_ = nullptr;
- return geometry;
-}
-
-WinGeometry::WinGeometry(Microsoft::WRL::ComPtr<ID2D1PathGeometry> geometry) {
- assert(geometry);
- geometry_ = std::move(geometry);
-}
-
-bool WinGeometry::FillContains(const ui::Point& point) {
- BOOL result;
- ThrowIfFailed(geometry_->FillContainsPoint(
- util::Convert(point), D2D1::Matrix3x2F::Identity(), &result));
- return result != 0;
-}
-} // namespace cru::win::graph