diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/cru/platform/graphics/cairo/CairoBrush.h | 4 | ||||
-rw-r--r-- | include/cru/platform/graphics/cairo/CairoPainter.h | 6 | ||||
-rw-r--r-- | include/cru/platform/graphics/cairo/PangoTextLayout.h | 2 |
3 files changed, 9 insertions, 3 deletions
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 <vector> + 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<Rect> 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); |