aboutsummaryrefslogtreecommitdiff
path: root/include/cru/win/graphics/direct/Painter.hpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-01-12 23:13:10 +0800
committerGitHub <noreply@github.com>2022-01-12 23:13:10 +0800
commit276ae73fa444c16f34a379ae9d8f58c883056b4a (patch)
tree96f4d7103976836e918b4fa1db0fdbb80777986e /include/cru/win/graphics/direct/Painter.hpp
parent01f98ce88950cdb729f5db58bf26f2fffa1c326c (diff)
parent65c799c5339ba37bea2217b168e96b15aceaef85 (diff)
downloadcru-276ae73fa444c16f34a379ae9d8f58c883056b4a.tar.gz
cru-276ae73fa444c16f34a379ae9d8f58c883056b4a.tar.bz2
cru-276ae73fa444c16f34a379ae9d8f58c883056b4a.zip
Merge pull request #44 from crupest/dev
Windows development.
Diffstat (limited to 'include/cru/win/graphics/direct/Painter.hpp')
-rw-r--r--include/cru/win/graphics/direct/Painter.hpp10
1 files changed, 9 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;
};