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}