From be5df0d92a49ea332fef06c024c4f779c82ec258 Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 9 Jun 2022 20:26:42 +0800 Subject: ... --- src/platform/graphics/cairo/CairoPainter.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/platform/graphics/cairo/CairoPainter.cpp') diff --git a/src/platform/graphics/cairo/CairoPainter.cpp b/src/platform/graphics/cairo/CairoPainter.cpp index fb5e0046..00c8187c 100644 --- a/src/platform/graphics/cairo/CairoPainter.cpp +++ b/src/platform/graphics/cairo/CairoPainter.cpp @@ -13,8 +13,11 @@ namespace cru::platform::graphics::cairo { CairoPainter::CairoPainter(CairoGraphicsFactory* factory, cairo_t* cairo, - bool auto_release) - : CairoResource(factory), cairo_(cairo), auto_release_(auto_release) {} + bool auto_release, cairo_surface_t* cairo_surface) + : CairoResource(factory), + cairo_(cairo), + auto_release_(auto_release), + cairo_surface_(cairo_surface) {} CairoPainter::~CairoPainter() { if (auto_release_) { @@ -230,7 +233,12 @@ void CairoPainter::PopState() { cairo_restore(cairo_); } -void CairoPainter::EndDraw() { valid_ = false; } +void CairoPainter::EndDraw() { + if (cairo_surface_ != nullptr) { + cairo_surface_flush(cairo_surface_); + } + valid_ = false; +} void CairoPainter::CheckValidation() { if (!valid_) { -- cgit v1.2.3