From e076c0316b2c501fd1745a4c6bac909d3b2c9b1c Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 9 Jun 2022 20:26:09 +0800 Subject: ... --- src/platform/graphics/cairo/CairoGraphicsFactory.cpp | 7 ++++++- src/platform/graphics/cairo/CairoImageFactory.cpp | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/platform/graphics/cairo/CairoGraphicsFactory.cpp b/src/platform/graphics/cairo/CairoGraphicsFactory.cpp index 8fb7d12e..11d2e734 100644 --- a/src/platform/graphics/cairo/CairoGraphicsFactory.cpp +++ b/src/platform/graphics/cairo/CairoGraphicsFactory.cpp @@ -1,6 +1,7 @@ #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/CairoImageFactory.h" #include "cru/platform/graphics/cairo/CairoResource.h" #include "cru/platform/graphics/cairo/PangoFont.h" #include "cru/platform/graphics/cairo/PangoTextLayout.h" @@ -11,6 +12,8 @@ CairoGraphicsFactory::CairoGraphicsFactory() : CairoResource(this) { cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 100, 100); default_cairo_ = cairo_create(default_cairo_surface_); default_pango_context_ = pango_context_new(); + + image_factory_ = std::make_unique(this); } CairoGraphicsFactory::~CairoGraphicsFactory() { @@ -41,5 +44,7 @@ std::unique_ptr CairoGraphicsFactory::CreateTextLayout( return text_layout; } -IImageFactory* CairoGraphicsFactory::GetImageFactory() { return nullptr; } +IImageFactory* CairoGraphicsFactory::GetImageFactory() { + return image_factory_.get(); +} } // namespace cru::platform::graphics::cairo diff --git a/src/platform/graphics/cairo/CairoImageFactory.cpp b/src/platform/graphics/cairo/CairoImageFactory.cpp index 8377911f..18aed4a1 100644 --- a/src/platform/graphics/cairo/CairoImageFactory.cpp +++ b/src/platform/graphics/cairo/CairoImageFactory.cpp @@ -181,6 +181,7 @@ void CairoImageFactory::EncodeToStream(IImage* image, io::Stream* stream, if (format == ImageFormat::Png) { EncodePng(cairo_image->GetCairoSurface(), stream); + return; } throw Exception(u"Not implemented. Currently only support png."); -- cgit v1.2.3