diff options
Diffstat (limited to 'src/win/graph/direct/geometry.cpp')
-rw-r--r-- | src/win/graph/direct/geometry.cpp | 53 |
1 files changed, 26 insertions, 27 deletions
diff --git a/src/win/graph/direct/geometry.cpp b/src/win/graph/direct/geometry.cpp index a725eff6..6b827906 100644 --- a/src/win/graph/direct/geometry.cpp +++ b/src/win/graph/direct/geometry.cpp @@ -1,65 +1,64 @@ -#include "cru/win/graph/win_geometry.hpp" +#include "cru/win/graph/direct/geometry.hpp" -#include "cru/win/exception.hpp" -#include "cru/win/graph/util/convert_util.hpp" -#include "cru/win/graph/win_native_factory.hpp" +#include "cru/win/graph/direct/convert_util.hpp" +#include "cru/win/graph/direct/exception.hpp" #include <cassert> -namespace cru::win::graph { -WinGeometryBuilder::WinGeometryBuilder(IWinNativeFactory* factory) { +namespace cru::platform::graph::win::direct { +D2DGeometryBuilder::D2DGeometryBuilder(IDirectFactory* factory) { assert(factory); ThrowIfFailed(factory->GetD2D1Factory()->CreatePathGeometry(&geometry_)); ThrowIfFailed(geometry_->Open(&geometry_sink_)); } -WinGeometryBuilder::~WinGeometryBuilder() { +D2DGeometryBuilder::~D2DGeometryBuilder() { 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 D2DGeometryBuilder::BeginFigure(const Point& point) { + assert(IsValid()); + geometry_sink_->BeginFigure(Convert(point), D2D1_FIGURE_BEGIN_FILLED); } -void WinGeometryBuilder::LineTo(const ui::Point& point) { - assert(IsEnded()); - geometry_sink_->AddLine(util::Convert(point)); +void D2DGeometryBuilder::LineTo(const Point& point) { + assert(IsValid()); + geometry_sink_->AddLine(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 D2DGeometryBuilder::QuadraticBezierTo(const Point& control_point, + const Point& end_point) { + assert(IsValid()); + geometry_sink_->AddQuadraticBezier( + D2D1::QuadraticBezierSegment(Convert(control_point), Convert(end_point))); } -void WinGeometryBuilder::CloseFigure(bool close) { - assert(IsEnded()); +void D2DGeometryBuilder::CloseFigure(bool close) { + assert(IsValid()); geometry_sink_->EndFigure(close ? D2D1_FIGURE_END_CLOSED : D2D1_FIGURE_END_OPEN); } -platform::graph::IGeometry* WinGeometryBuilder::End() { - assert(IsEnded()); +Geometry* D2DGeometryBuilder::Build() { + assert(IsValid()); ThrowIfFailed(geometry_sink_->Close()); geometry_sink_ = nullptr; - const auto geometry = new WinGeometry(std::move(geometry_)); + const auto geometry = new D2DGeometry(std::move(geometry_)); geometry_ = nullptr; return geometry; } -WinGeometry::WinGeometry(Microsoft::WRL::ComPtr<ID2D1PathGeometry> geometry) { +D2DGeometry::D2DGeometry(Microsoft::WRL::ComPtr<ID2D1PathGeometry> geometry) { assert(geometry); geometry_ = std::move(geometry); } -bool WinGeometry::FillContains(const ui::Point& point) { +bool D2DGeometry::FillContains(const Point& point) { BOOL result; ThrowIfFailed(geometry_->FillContainsPoint( - util::Convert(point), D2D1::Matrix3x2F::Identity(), &result)); + Convert(point), D2D1::Matrix3x2F::Identity(), &result)); return result != 0; } -} // namespace cru::win::graph +} // namespace cru::platform::graph::win::direct |