From 9758e86cd94acbd1e7db79c7d99630a002108e73 Mon Sep 17 00:00:00 2001 From: sammycage Date: Fri, 24 May 2024 11:12:37 +0100 Subject: [PATCH] Add Canvas::flush and Canvas::finish --- include/plutobook.h | 2 ++ include/plutobook.hpp | 10 ++++++++++ source/plutobook.cc | 14 ++++++++++++++ source/plutobook.cpp | 10 ++++++++++ 4 files changed, 36 insertions(+) diff --git a/include/plutobook.h b/include/plutobook.h index 6d37136..bdab2aa 100644 --- a/include/plutobook.h +++ b/include/plutobook.h @@ -187,6 +187,8 @@ typedef struct _cairo_surface cairo_surface_t; typedef struct _cairo cairo_t; PLUTOBOOK_API void plutobook_canvas_destroy(plutobook_canvas_t* canvas); +PLUTOBOOK_API void plutobook_canvas_flush(plutobook_canvas_t* canvas); +PLUTOBOOK_API void plutobook_canvas_finish(plutobook_canvas_t* canvas); PLUTOBOOK_API void plutobook_canvas_translate(plutobook_canvas_t* canvas, float tx, float ty); PLUTOBOOK_API void plutobook_canvas_scale(plutobook_canvas_t* canvas, float sx, float sy); PLUTOBOOK_API void plutobook_canvas_rotate(plutobook_canvas_t* canvas, float angle); diff --git a/include/plutobook.hpp b/include/plutobook.hpp index 9d4ea8d..7e452bd 100644 --- a/include/plutobook.hpp +++ b/include/plutobook.hpp @@ -231,6 +231,16 @@ class PLUTOBOOK_API Canvas { */ virtual ~Canvas(); + /** + * @brief flush + */ + void flush(); + + /** + * @brief finish + */ + void finish(); + /** * @brief Translates the origin of the coordinate system. * @param tx The horizontal translation distance. diff --git a/source/plutobook.cc b/source/plutobook.cc index 108e1ac..51dbe74 100644 --- a/source/plutobook.cc +++ b/source/plutobook.cc @@ -49,6 +49,20 @@ void plutobook_canvas_destroy(plutobook_canvas_t* canvas) std::free(canvas); } +void plutobook_canvas_flush(plutobook_canvas_t* canvas) +{ + if(canvas == NULL) + return; + cairo_surface_flush(canvas->surface); +} + +void plutobook_canvas_finish(plutobook_canvas_t* canvas) +{ + if(canvas == NULL) + return; + cairo_surface_finish(canvas->surface); +} + void plutobook_canvas_translate(plutobook_canvas_t* canvas, float tx, float ty) { if(canvas == nullptr) diff --git a/source/plutobook.cpp b/source/plutobook.cpp index 874c586..18a3c1d 100644 --- a/source/plutobook.cpp +++ b/source/plutobook.cpp @@ -44,6 +44,16 @@ Canvas::~Canvas() plutobook_canvas_destroy(m_canvas); } +void Canvas::flush() +{ + plutobook_canvas_flush(m_canvas); +} + +void Canvas::finish() +{ + plutobook_canvas_finish(m_canvas); +} + void Canvas::translate(float tx, float ty) { plutobook_canvas_translate(m_canvas, tx, ty);