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 | // from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git) |
4 | // DO NOT EDIT |
5 | |
6 | use crate::{ffi, GLContext, GLSLProfile, GLSLVersion}; |
7 | use glib::{prelude::*, translate::*}; |
8 | |
9 | glib::wrapper! { |
10 | #[doc (alias = "GstGLSLStage" )] |
11 | pub struct GLSLStage(Object<ffi::GstGLSLStage, ffi::GstGLSLStageClass>) @extends gst::Object; |
12 | |
13 | match fn { |
14 | type_ => || ffi::gst_glsl_stage_get_type(), |
15 | } |
16 | } |
17 | |
18 | impl GLSLStage { |
19 | #[doc (alias = "gst_glsl_stage_new" )] |
20 | pub fn new(context: &impl IsA<GLContext>, type_: u32) -> GLSLStage { |
21 | skip_assert_initialized!(); |
22 | unsafe { |
23 | from_glib_none(ffi::gst_glsl_stage_new( |
24 | context.as_ref().to_glib_none().0, |
25 | type_, |
26 | )) |
27 | } |
28 | } |
29 | |
30 | #[doc (alias = "gst_glsl_stage_new_default_fragment" )] |
31 | pub fn new_default_fragment(context: &impl IsA<GLContext>) -> GLSLStage { |
32 | skip_assert_initialized!(); |
33 | unsafe { |
34 | from_glib_none(ffi::gst_glsl_stage_new_default_fragment( |
35 | context.as_ref().to_glib_none().0, |
36 | )) |
37 | } |
38 | } |
39 | |
40 | #[doc (alias = "gst_glsl_stage_new_default_vertex" )] |
41 | pub fn new_default_vertex(context: &impl IsA<GLContext>) -> GLSLStage { |
42 | skip_assert_initialized!(); |
43 | unsafe { |
44 | from_glib_none(ffi::gst_glsl_stage_new_default_vertex( |
45 | context.as_ref().to_glib_none().0, |
46 | )) |
47 | } |
48 | } |
49 | |
50 | #[doc (alias = "gst_glsl_stage_new_with_string" )] |
51 | #[doc (alias = "new_with_string" )] |
52 | pub fn with_string( |
53 | context: &impl IsA<GLContext>, |
54 | type_: u32, |
55 | version: GLSLVersion, |
56 | profile: GLSLProfile, |
57 | str: &str, |
58 | ) -> GLSLStage { |
59 | skip_assert_initialized!(); |
60 | unsafe { |
61 | from_glib_none(ffi::gst_glsl_stage_new_with_string( |
62 | context.as_ref().to_glib_none().0, |
63 | type_, |
64 | version.into_glib(), |
65 | profile.into_glib(), |
66 | str.to_glib_none().0, |
67 | )) |
68 | } |
69 | } |
70 | |
71 | #[doc (alias = "gst_glsl_stage_new_with_strings" )] |
72 | #[doc (alias = "new_with_strings" )] |
73 | pub fn with_strings( |
74 | context: &impl IsA<GLContext>, |
75 | type_: u32, |
76 | version: GLSLVersion, |
77 | profile: GLSLProfile, |
78 | str: &[&str], |
79 | ) -> GLSLStage { |
80 | skip_assert_initialized!(); |
81 | let n_strings = str.len() as _; |
82 | unsafe { |
83 | from_glib_none(ffi::gst_glsl_stage_new_with_strings( |
84 | context.as_ref().to_glib_none().0, |
85 | type_, |
86 | version.into_glib(), |
87 | profile.into_glib(), |
88 | n_strings, |
89 | str.to_glib_none().0, |
90 | )) |
91 | } |
92 | } |
93 | |
94 | #[doc (alias = "gst_glsl_stage_compile" )] |
95 | pub fn compile(&self) -> Result<(), glib::Error> { |
96 | unsafe { |
97 | let mut error = std::ptr::null_mut(); |
98 | let is_ok = ffi::gst_glsl_stage_compile(self.to_glib_none().0, &mut error); |
99 | debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null()); |
100 | if error.is_null() { |
101 | Ok(()) |
102 | } else { |
103 | Err(from_glib_full(error)) |
104 | } |
105 | } |
106 | } |
107 | |
108 | #[doc (alias = "gst_glsl_stage_get_handle" )] |
109 | #[doc (alias = "get_handle" )] |
110 | pub fn handle(&self) -> u32 { |
111 | unsafe { ffi::gst_glsl_stage_get_handle(self.to_glib_none().0) } |
112 | } |
113 | |
114 | #[doc (alias = "gst_glsl_stage_get_profile" )] |
115 | #[doc (alias = "get_profile" )] |
116 | pub fn profile(&self) -> GLSLProfile { |
117 | unsafe { from_glib(ffi::gst_glsl_stage_get_profile(self.to_glib_none().0)) } |
118 | } |
119 | |
120 | #[doc (alias = "gst_glsl_stage_get_shader_type" )] |
121 | #[doc (alias = "get_shader_type" )] |
122 | pub fn shader_type(&self) -> u32 { |
123 | unsafe { ffi::gst_glsl_stage_get_shader_type(self.to_glib_none().0) } |
124 | } |
125 | |
126 | #[doc (alias = "gst_glsl_stage_get_version" )] |
127 | #[doc (alias = "get_version" )] |
128 | pub fn version(&self) -> GLSLVersion { |
129 | unsafe { from_glib(ffi::gst_glsl_stage_get_version(self.to_glib_none().0)) } |
130 | } |
131 | |
132 | #[doc (alias = "gst_glsl_stage_set_strings" )] |
133 | pub fn set_strings( |
134 | &self, |
135 | version: GLSLVersion, |
136 | profile: GLSLProfile, |
137 | str: &[&str], |
138 | ) -> Result<(), glib::error::BoolError> { |
139 | let n_strings = str.len() as _; |
140 | unsafe { |
141 | glib::result_from_gboolean!( |
142 | ffi::gst_glsl_stage_set_strings( |
143 | self.to_glib_none().0, |
144 | version.into_glib(), |
145 | profile.into_glib(), |
146 | n_strings, |
147 | str.to_glib_none().0 |
148 | ), |
149 | "Failed to attach stage to set strings" |
150 | ) |
151 | } |
152 | } |
153 | } |
154 | |
155 | unsafe impl Send for GLSLStage {} |
156 | unsafe impl Sync for GLSLStage {} |
157 | |