aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-06-08 17:23:56 +0800
committercrupest <crupest@outlook.com>2022-06-08 17:23:56 +0800
commitf1c8931181ab1a911ab2383520a3b9628235db83 (patch)
tree303a9a0f51caf04a910bf9c9fc2c78b78245401c /include
parent0888ee514af093bcfa17de6efc4d3693a34de52d (diff)
downloadcru-f1c8931181ab1a911ab2383520a3b9628235db83.tar.gz
cru-f1c8931181ab1a911ab2383520a3b9628235db83.tar.bz2
cru-f1c8931181ab1a911ab2383520a3b9628235db83.zip
...
Diffstat (limited to 'include')
-rw-r--r--include/cru/platform/graphics/cairo/CairoBrush.h4
-rw-r--r--include/cru/platform/graphics/cairo/CairoPainter.h6
-rw-r--r--include/cru/platform/graphics/cairo/PangoTextLayout.h2
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);