diff options
author | crupest <crupest@outlook.com> | 2022-01-12 21:35:08 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-01-12 21:35:08 +0800 |
commit | 7a42d92c10a4bc686244668dd0e3f903f30f2fae (patch) | |
tree | e48fc4a47afa5eadbdf54cec6d2b73110f500680 /include/cru/win/graphics | |
parent | 882d843083895f4905571dc273e801ee18fd5984 (diff) | |
download | cru-7a42d92c10a4bc686244668dd0e3f903f30f2fae.tar.gz cru-7a42d92c10a4bc686244668dd0e3f903f30f2fae.tar.bz2 cru-7a42d92c10a4bc686244668dd0e3f903f30f2fae.zip |
...
Diffstat (limited to 'include/cru/win/graphics')
-rw-r--r-- | include/cru/win/graphics/direct/Painter.hpp | 10 | ||||
-rw-r--r-- | include/cru/win/graphics/direct/TextLayout.hpp | 1 |
2 files changed, 10 insertions, 1 deletions
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<Microsoft::WRL::ComPtr<ID2D1Layer>> layers_; + std::vector<Microsoft::WRL::ComPtr<ID2D1DrawingStateBlock>> + 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<DWriteFont> font_; float max_width_ = std::numeric_limits<float>::max(); |