aboutsummaryrefslogtreecommitdiff
path: root/src/platform/graphics
diff options
context:
space:
mode:
Diffstat (limited to 'src/platform/graphics')
-rw-r--r--src/platform/graphics/cairo/CairoGraphicsFactory.cpp7
-rw-r--r--src/platform/graphics/cairo/CairoImageFactory.cpp1
2 files changed, 7 insertions, 1 deletions
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<CairoImageFactory>(this);
}
CairoGraphicsFactory::~CairoGraphicsFactory() {
@@ -41,5 +44,7 @@ std::unique_ptr<ITextLayout> 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.");