From 6795641779916e39e999ea28b51e159a9fade685 Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 8 Jun 2022 16:30:33 +0800 Subject: ... --- .../graphics/cairo/CairoGraphicsFactory.cpp | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/platform/graphics/cairo') diff --git a/src/platform/graphics/cairo/CairoGraphicsFactory.cpp b/src/platform/graphics/cairo/CairoGraphicsFactory.cpp index 1fea8979..8fb7d12e 100644 --- a/src/platform/graphics/cairo/CairoGraphicsFactory.cpp +++ b/src/platform/graphics/cairo/CairoGraphicsFactory.cpp @@ -1,5 +1,9 @@ #include "cru/platform/graphics/cairo/CairoGraphicsFactory.h" +#include "cru/platform/graphics/cairo/CairoBrush.h" +#include "cru/platform/graphics/cairo/CairoGeometry.h" #include "cru/platform/graphics/cairo/CairoResource.h" +#include "cru/platform/graphics/cairo/PangoFont.h" +#include "cru/platform/graphics/cairo/PangoTextLayout.h" namespace cru::platform::graphics::cairo { CairoGraphicsFactory::CairoGraphicsFactory() : CairoResource(this) { @@ -14,4 +18,28 @@ CairoGraphicsFactory::~CairoGraphicsFactory() { cairo_destroy(default_cairo_); cairo_surface_destroy(default_cairo_surface_); } + +std::unique_ptr +CairoGraphicsFactory::CreateSolidColorBrush() { + return std::make_unique(this); +} + +std::unique_ptr +CairoGraphicsFactory::CreateGeometryBuilder() { + return std::make_unique(this); +} + +std::unique_ptr CairoGraphicsFactory::CreateFont(String font_family, + float font_size) { + return std::make_unique(this, std::move(font_family), font_size); +} + +std::unique_ptr CairoGraphicsFactory::CreateTextLayout( + std::shared_ptr font, String text) { + auto text_layout = std::make_unique(this, std::move(font)); + text_layout->SetText(std::move(text)); + return text_layout; +} + +IImageFactory* CairoGraphicsFactory::GetImageFactory() { return nullptr; } } // namespace cru::platform::graphics::cairo -- cgit v1.2.3