diff options
| author | crupest <crupest@outlook.com> | 2019-05-24 23:45:58 +0800 |
|---|---|---|
| committer | crupest <crupest@outlook.com> | 2019-05-24 23:45:58 +0800 |
| commit | b6db663269201fa14a6a4aa1b9042645a9e8f859 (patch) | |
| tree | 1984e2c2784fb9623d4c20fbdd6fc650792e133c /src/win/graph/win_geometry.cpp | |
| parent | b9df1bcaea0c19b2e29479cdb1ad5a39e23c4ee7 (diff) | |
| download | cru-b6db663269201fa14a6a4aa1b9042645a9e8f859.tar.gz cru-b6db663269201fa14a6a4aa1b9042645a9e8f859.tar.bz2 cru-b6db663269201fa14a6a4aa1b9042645a9e8f859.zip | |
...
Diffstat (limited to 'src/win/graph/win_geometry.cpp')
| -rw-r--r-- | src/win/graph/win_geometry.cpp | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/win/graph/win_geometry.cpp b/src/win/graph/win_geometry.cpp index 22c4b8a7..a725eff6 100644 --- a/src/win/graph/win_geometry.cpp +++ b/src/win/graph/win_geometry.cpp @@ -1,16 +1,15 @@ #include "cru/win/graph/win_geometry.hpp" #include "cru/win/exception.hpp" -#include "cru/win/graph/d2d_util.hpp" -#include "cru/win/graph/graph_manager.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(GraphManager* graph_manager) { - assert(graph_manager); - ThrowIfFailed( - graph_manager->GetD2D1Factory()->CreatePathGeometry(&geometry_)); +WinGeometryBuilder::WinGeometryBuilder(IWinNativeFactory* factory) { + assert(factory); + ThrowIfFailed(factory->GetD2D1Factory()->CreatePathGeometry(&geometry_)); ThrowIfFailed(geometry_->Open(&geometry_sink_)); } @@ -21,33 +20,33 @@ WinGeometryBuilder::~WinGeometryBuilder() { } void WinGeometryBuilder::BeginFigure(const ui::Point& point) { - assert(IsValid()); + assert(IsEnded()); geometry_sink_->BeginFigure(util::Convert(point), D2D1_FIGURE_BEGIN_FILLED); } void WinGeometryBuilder::LineTo(const ui::Point& point) { - assert(IsValid()); + assert(IsEnded()); geometry_sink_->AddLine(util::Convert(point)); } void WinGeometryBuilder::QuadraticBezierTo(const ui::Point& control_point, const ui::Point& end_point) { - assert(IsValid()); + assert(IsEnded()); geometry_sink_->AddQuadraticBezier(D2D1::QuadraticBezierSegment( util::Convert(control_point), util::Convert(end_point))); } void WinGeometryBuilder::CloseFigure(bool close) { - assert(IsValid()); + assert(IsEnded()); geometry_sink_->EndFigure(close ? D2D1_FIGURE_END_CLOSED : D2D1_FIGURE_END_OPEN); } -platform::graph::Geometry* WinGeometryBuilder::Build() { - assert(IsValid()); +platform::graph::IGeometry* WinGeometryBuilder::End() { + assert(IsEnded()); ThrowIfFailed(geometry_sink_->Close()); geometry_sink_ = nullptr; - const auto geometry = new WinGeometry(geometry_); + const auto geometry = new WinGeometry(std::move(geometry_)); geometry_ = nullptr; return geometry; } |
