diff options
author | crupest <crupest@outlook.com> | 2022-06-09 14:01:53 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-06-09 14:01:53 +0800 |
commit | 3df871ecaa95ab13a4fa154ab9ab17708fee6f9f (patch) | |
tree | ce8756f3d7803c875394979b7bdaf1f640343aa1 /src/platform | |
parent | 8fc2be2261f753eab1ff04a26bf7fbbcfb8977a0 (diff) | |
download | cru-3df871ecaa95ab13a4fa154ab9ab17708fee6f9f.tar.gz cru-3df871ecaa95ab13a4fa154ab9ab17708fee6f9f.tar.bz2 cru-3df871ecaa95ab13a4fa154ab9ab17708fee6f9f.zip |
...
Diffstat (limited to 'src/platform')
-rw-r--r-- | src/platform/graphics/cairo/CairoPainter.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/platform/graphics/cairo/CairoPainter.cpp b/src/platform/graphics/cairo/CairoPainter.cpp index 1d457b8f..fb5e0046 100644 --- a/src/platform/graphics/cairo/CairoPainter.cpp +++ b/src/platform/graphics/cairo/CairoPainter.cpp @@ -5,6 +5,7 @@ #include "cru/platform/graphics/cairo/Base.h" #include "cru/platform/graphics/cairo/CairoBrush.h" #include "cru/platform/graphics/cairo/CairoGeometry.h" +#include "cru/platform/graphics/cairo/CairoImage.h" #include "cru/platform/graphics/cairo/CairoResource.h" #include "cru/platform/graphics/cairo/PangoTextLayout.h" @@ -187,7 +188,15 @@ void CairoPainter::DrawText(const Point& offset, ITextLayout* text_layout, } void CairoPainter::DrawImage(const Point& offset, IImage* image) { - throw Exception(u"Not implemented."); + CheckValidation(); + auto cairo_image = CheckPlatform<CairoImage>(image, GetPlatformId()); + cairo_save(cairo_); + cairo_set_source_surface(cairo_, cairo_image->GetCairoSurface(), 0, 0); + cairo_new_path(cairo_); + cairo_rectangle(cairo_, offset.x, offset.y, image->GetWidth(), + image->GetHeight()); + cairo_fill(cairo_); + cairo_restore(cairo_); } void CairoPainter::PushLayer(const Rect& bounds) { |