gsk4/
ngl_renderer.rs

1// Take a look at the license at the top of the repository in the LICENSE file.
2
3use std::fmt;
4
5use glib::translate::*;
6
7use crate::{ffi, prelude::*, Renderer};
8
9glib::wrapper! {
10    /// A GL based renderer.
11    ///
12    /// See [`Renderer`][crate::Renderer].
13    ///
14    /// # Implements
15    ///
16    /// [`GskRendererExt`][trait@crate::prelude::GskRendererExt]
17    #[doc(alias = "GskNglRenderer")]
18    pub struct NglRenderer(Object<ffi::GskNglRenderer>) @extends Renderer;
19
20    match fn {
21        type_ => || ffi::gsk_ngl_renderer_get_type(),
22    }
23}
24
25impl NglRenderer {
26    /// Same as gsk_gl_renderer_new().
27    ///
28    /// # Deprecated since 4.18
29    ///
30    /// Use gsk_gl_renderer_new()
31    ///
32    /// # Returns
33    ///
34    /// a GL renderer
35    #[doc(alias = "gsk_ngl_renderer_new")]
36    pub fn new() -> NglRenderer {
37        assert_initialized_main_thread!();
38        unsafe { Renderer::from_glib_full(ffi::gsk_ngl_renderer_new()).unsafe_cast() }
39    }
40}
41
42impl Default for NglRenderer {
43    fn default() -> Self {
44        Self::new()
45    }
46}
47
48impl fmt::Display for NglRenderer {
49    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
50        f.write_str("NglRenderer")
51    }
52}