diff options
author | crupest <crupest@outlook.com> | 2019-04-10 19:42:46 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2019-04-10 19:42:46 +0800 |
commit | 7351020a582d70a1495249fba87d342c8a1fb634 (patch) | |
tree | e80f225041dc3816b3dce21c7e15aadbb211602e /src/platform_win/win_geometry.cpp | |
parent | a94a806f69586e08a30fff0cdb3e52b0ce7acfa5 (diff) | |
download | cru-7351020a582d70a1495249fba87d342c8a1fb634.tar.gz cru-7351020a582d70a1495249fba87d342c8a1fb634.tar.bz2 cru-7351020a582d70a1495249fba87d342c8a1fb634.zip |
Refactor.
Diffstat (limited to 'src/platform_win/win_geometry.cpp')
-rw-r--r-- | src/platform_win/win_geometry.cpp | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/src/platform_win/win_geometry.cpp b/src/platform_win/win_geometry.cpp deleted file mode 100644 index 1078700b..00000000 --- a/src/platform_win/win_geometry.cpp +++ /dev/null @@ -1,65 +0,0 @@ -#include "cru/platform/win/win_geometry.hpp" - -#include "cru/platform/win/d2d_util.hpp" -#include "cru/platform/win/exception.hpp" - -#include <cassert> - -namespace cru::platform::win { -WinGeometryBuilder::WinGeometryBuilder( - Microsoft::WRL::ComPtr<ID2D1PathGeometry> geometry) { - assert(geometry); - ThrowIfFailed(geometry->Open(&geometry_sink_)); - geometry_ = std::move(geometry); -} - -WinGeometryBuilder::~WinGeometryBuilder() { - if (geometry_sink_) { - ThrowIfFailed(geometry_sink_->Close()); - } -} - -void WinGeometryBuilder::BeginFigure(const ui::Point& point) { - assert(IsValid()); - geometry_sink_->BeginFigure(util::Convert(point), D2D1_FIGURE_BEGIN_FILLED); -} - -void WinGeometryBuilder::LineTo(const ui::Point& point) { - assert(IsValid()); - geometry_sink_->AddLine(util::Convert(point)); -} - -void WinGeometryBuilder::QuadraticBezierTo(const ui::Point& control_point, - const ui::Point& end_point) { - assert(IsValid()); - geometry_sink_->AddQuadraticBezier(D2D1::QuadraticBezierSegment( - util::Convert(control_point), util::Convert(end_point))); -} - -void WinGeometryBuilder::CloseFigure(bool close) { - assert(IsValid()); - geometry_sink_->EndFigure(close ? D2D1_FIGURE_END_CLOSED - : D2D1_FIGURE_END_OPEN); -} - -Geometry* WinGeometryBuilder::Build() { - assert(IsValid()); - ThrowIfFailed(geometry_sink_->Close()); - geometry_sink_ = nullptr; - const auto geometry = new WinGeometry(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::platform::win |