aboutsummaryrefslogtreecommitdiff
path: root/src/win/graph/direct/geometry.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/win/graph/direct/geometry.cpp')
-rw-r--r--src/win/graph/direct/geometry.cpp53
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