diff options
author | crupest <crupest@outlook.com> | 2022-06-09 20:26:42 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-06-09 20:26:42 +0800 |
commit | be5df0d92a49ea332fef06c024c4f779c82ec258 (patch) | |
tree | 9d42b810b4b8b3b88c8fcbd1785b07f1a302d92a /src/platform/graphics/cairo/CairoPainter.cpp | |
parent | e076c0316b2c501fd1745a4c6bac909d3b2c9b1c (diff) | |
download | cru-be5df0d92a49ea332fef06c024c4f779c82ec258.tar.gz cru-be5df0d92a49ea332fef06c024c4f779c82ec258.tar.bz2 cru-be5df0d92a49ea332fef06c024c4f779c82ec258.zip |
...
Diffstat (limited to 'src/platform/graphics/cairo/CairoPainter.cpp')
-rw-r--r-- | src/platform/graphics/cairo/CairoPainter.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
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_) { |