diff options
Diffstat (limited to 'src/win/graph/direct/geometry.cpp')
-rw-r--r-- | src/win/graph/direct/geometry.cpp | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/win/graph/direct/geometry.cpp b/src/win/graph/direct/geometry.cpp index 6b827906..470addee 100644 --- a/src/win/graph/direct/geometry.cpp +++ b/src/win/graph/direct/geometry.cpp @@ -12,37 +12,31 @@ D2DGeometryBuilder::D2DGeometryBuilder(IDirectFactory* factory) { ThrowIfFailed(geometry_->Open(&geometry_sink_)); } -D2DGeometryBuilder::~D2DGeometryBuilder() { - if (geometry_sink_) { - ThrowIfFailed(geometry_sink_->Close()); - } -} - void D2DGeometryBuilder::BeginFigure(const Point& point) { - assert(IsValid()); + CheckValidation(); geometry_sink_->BeginFigure(Convert(point), D2D1_FIGURE_BEGIN_FILLED); } void D2DGeometryBuilder::LineTo(const Point& point) { - assert(IsValid()); + CheckValidation(); geometry_sink_->AddLine(Convert(point)); } void D2DGeometryBuilder::QuadraticBezierTo(const Point& control_point, const Point& end_point) { - assert(IsValid()); + CheckValidation(); geometry_sink_->AddQuadraticBezier( D2D1::QuadraticBezierSegment(Convert(control_point), Convert(end_point))); } void D2DGeometryBuilder::CloseFigure(bool close) { - assert(IsValid()); + CheckValidation(); geometry_sink_->EndFigure(close ? D2D1_FIGURE_END_CLOSED : D2D1_FIGURE_END_OPEN); } Geometry* D2DGeometryBuilder::Build() { - assert(IsValid()); + CheckValidation(); ThrowIfFailed(geometry_sink_->Close()); geometry_sink_ = nullptr; const auto geometry = new D2DGeometry(std::move(geometry_)); |