gsk4/auto/
cairo_renderer.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4
5use crate::{ffi, Renderer};
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9    /// A GSK renderer that is using cairo.
10    ///
11    /// Since it is using cairo, this renderer cannot support
12    /// 3D transformations.
13    ///
14    /// # Implements
15    ///
16    /// [`GskRendererExt`][trait@crate::prelude::GskRendererExt]
17    #[doc(alias = "GskCairoRenderer")]
18    pub struct CairoRenderer(Object<ffi::GskCairoRenderer, ffi::GskCairoRendererClass>) @extends Renderer;
19
20    match fn {
21        type_ => || ffi::gsk_cairo_renderer_get_type(),
22    }
23}
24
25impl CairoRenderer {
26    /// Creates a new Cairo renderer.
27    ///
28    /// The Cairo renderer is the fallback renderer drawing in ways similar
29    /// to how GTK 3 drew its content. Its primary use is as comparison tool.
30    ///
31    /// The Cairo renderer is incomplete. It cannot render 3D transformed
32    /// content and will instead render an error marker. Its usage should be
33    /// avoided.
34    ///
35    /// # Returns
36    ///
37    /// a new Cairo renderer.
38    #[doc(alias = "gsk_cairo_renderer_new")]
39    pub fn new() -> CairoRenderer {
40        assert_initialized_main_thread!();
41        unsafe { Renderer::from_glib_full(ffi::gsk_cairo_renderer_new()).unsafe_cast() }
42    }
43}
44
45impl Default for CairoRenderer {
46    fn default() -> Self {
47        Self::new()
48    }
49}