From f1c8931181ab1a911ab2383520a3b9628235db83 Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 8 Jun 2022 17:23:56 +0800 Subject: ... --- include/cru/platform/graphics/cairo/CairoBrush.h | 4 +++- include/cru/platform/graphics/cairo/CairoPainter.h | 6 ++++-- include/cru/platform/graphics/cairo/PangoTextLayout.h | 2 ++ 3 files changed, 9 insertions(+), 3 deletions(-) (limited to 'include/cru') diff --git a/include/cru/platform/graphics/cairo/CairoBrush.h b/include/cru/platform/graphics/cairo/CairoBrush.h index 818295a3..f2a15e06 100644 --- a/include/cru/platform/graphics/cairo/CairoBrush.h +++ b/include/cru/platform/graphics/cairo/CairoBrush.h @@ -10,6 +10,8 @@ class CRU_PLATFORM_GRAPHICS_CAIRO_API CairoBrush : public CairoResource, public: explicit CairoBrush(CairoGraphicsFactory* factory); ~CairoBrush() override; + + virtual cairo_pattern_t* GetCairoPattern() = 0; }; class CRU_PLATFORM_GRAPHICS_CAIRO_API CairoSolidColorBrush @@ -23,7 +25,7 @@ class CRU_PLATFORM_GRAPHICS_CAIRO_API CairoSolidColorBrush Color GetColor() override; void SetColor(const Color& color) override; - cairo_pattern_t* GetCairoPattern() const { return pattern_; } + cairo_pattern_t* GetCairoPattern() override { return pattern_; } private: Color color_; diff --git a/include/cru/platform/graphics/cairo/CairoPainter.h b/include/cru/platform/graphics/cairo/CairoPainter.h index 95b09d2a..1b965cb4 100644 --- a/include/cru/platform/graphics/cairo/CairoPainter.h +++ b/include/cru/platform/graphics/cairo/CairoPainter.h @@ -2,6 +2,8 @@ #include "../Painter.h" #include "CairoResource.h" +#include + namespace cru::platform::graphics::cairo { class CairoPainter : public CairoResource, public virtual IPainter { public: @@ -35,11 +37,9 @@ class CairoPainter : public CairoResource, public virtual IPainter { void DrawImage(const Point& offset, IImage* image) override; void PushLayer(const Rect& bounds) override; - void PopLayer() override; void PushState() override; - void PopState() override; void EndDraw() override; @@ -51,5 +51,7 @@ class CairoPainter : public CairoResource, public virtual IPainter { cairo_t* cairo_; bool auto_release_; + + std::vector layer_stack_; }; } // namespace cru::platform::graphics::cairo diff --git a/include/cru/platform/graphics/cairo/PangoTextLayout.h b/include/cru/platform/graphics/cairo/PangoTextLayout.h index 7e2bb2a9..9b6d4791 100644 --- a/include/cru/platform/graphics/cairo/PangoTextLayout.h +++ b/include/cru/platform/graphics/cairo/PangoTextLayout.h @@ -35,6 +35,8 @@ class PangoTextLayout : public CairoResource, public virtual ITextLayout { Rect TextSinglePoint(Index position, bool trailing) override; TextHitTestResult HitTest(const Point& point) override; + PangoLayout* GetPangoLayout() { return pango_layout_; } + private: Index FromUtf8IndexToUtf16Index(Index index); Index FromUtf16IndexToUtf8Index(Index index); -- cgit v1.2.3