aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2019-06-30 18:16:56 +0800
committercrupest <crupest@outlook.com>2019-06-30 18:16:56 +0800
commit9c8b55ce438869b2070ef9dbe115466cb47a528a (patch)
treee195cbd245ec41ac75cd7ed29daa2a8c4b656b68 /src
parent7b17e8045bde2d36dc6af5f66e75e44593564086 (diff)
downloadcru-9c8b55ce438869b2070ef9dbe115466cb47a528a.tar.gz
cru-9c8b55ce438869b2070ef9dbe115466cb47a528a.tar.bz2
cru-9c8b55ce438869b2070ef9dbe115466cb47a528a.zip
...
Diffstat (limited to 'src')
-rw-r--r--src/win/graph/direct/geometry.cpp16
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_));