From 7a42d92c10a4bc686244668dd0e3f903f30f2fae Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 12 Jan 2022 21:35:08 +0800 Subject: ... --- include/cru/win/graphics/direct/Painter.hpp | 10 +++++++++- include/cru/win/graphics/direct/TextLayout.hpp | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'include/cru/win/graphics') diff --git a/include/cru/win/graphics/direct/Painter.hpp b/include/cru/win/graphics/direct/Painter.hpp index b34c1563..d7b90d19 100644 --- a/include/cru/win/graphics/direct/Painter.hpp +++ b/include/cru/win/graphics/direct/Painter.hpp @@ -24,6 +24,7 @@ class D2DPainter : public DirectResource, public: Matrix GetTransform() override; void SetTransform(const platform::Matrix& matrix) override; + void ConcatTransform(const Matrix& matrix) override; void Clear(const Color& color) override; @@ -32,6 +33,9 @@ class D2DPainter : public DirectResource, void StrokeRectangle(const Rect& rectangle, IBrush* brush, float width) override; void FillRectangle(const Rect& rectangle, IBrush* brush) override; + void StrokeEllipse(const Rect& outline_rect, IBrush* brush, + float width) override; + void FillEllipse(const Rect& outline_rect, IBrush* brush) override; void StrokeGeometry(IGeometry* geometry, IBrush* brush, float width) override; void FillGeometry(IGeometry* geometry, IBrush* brush) override; @@ -40,9 +44,11 @@ class D2DPainter : public DirectResource, IBrush* brush) override; void PushLayer(const Rect& bounds) override; - void PopLayer() override; + void PushState() override; + void PopState() override; + void EndDraw() override final; protected: @@ -56,6 +62,8 @@ class D2DPainter : public DirectResource, ID2D1RenderTarget* render_target_; std::vector> layers_; + std::vector> + drawing_state_stack_; bool is_drawing_ = true; }; diff --git a/include/cru/win/graphics/direct/TextLayout.hpp b/include/cru/win/graphics/direct/TextLayout.hpp index 1ac56a9d..b1843dd7 100644 --- a/include/cru/win/graphics/direct/TextLayout.hpp +++ b/include/cru/win/graphics/direct/TextLayout.hpp @@ -52,6 +52,7 @@ class DWriteTextLayout : public DirectGraphicsResource, TextHitTestResult HitTest(const Point& point) override; private: + bool edit_mode_ = false; String text_; std::shared_ptr font_; float max_width_ = std::numeric_limits::max(); -- cgit v1.2.3