gsk4/auto/vulkan_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 Vulkan.
10 ///
11 /// This renderer will fail to realize if Vulkan is not supported.
12 ///
13 /// # Implements
14 ///
15 /// [`GskRendererExt`][trait@crate::prelude::GskRendererExt]
16 #[doc(alias = "GskVulkanRenderer")]
17 pub struct VulkanRenderer(Object<ffi::GskVulkanRenderer, ffi::GskVulkanRendererClass>) @extends Renderer;
18
19 match fn {
20 type_ => || ffi::gsk_vulkan_renderer_get_type(),
21 }
22}
23
24impl VulkanRenderer {
25 /// Creates a new Vulkan renderer.
26 ///
27 /// The Vulkan renderer is a renderer that uses the Vulkan library for
28 /// rendering.
29 ///
30 /// This renderer will fail to realize when GTK was not compiled with
31 /// Vulkan support.
32 ///
33 /// # Returns
34 ///
35 /// a new Vulkan renderer
36 #[doc(alias = "gsk_vulkan_renderer_new")]
37 pub fn new() -> VulkanRenderer {
38 assert_initialized_main_thread!();
39 unsafe { Renderer::from_glib_full(ffi::gsk_vulkan_renderer_new()).unsafe_cast() }
40 }
41}
42
43impl Default for VulkanRenderer {
44 fn default() -> Self {
45 Self::new()
46 }
47}