gdk/auto/
gl_context.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 gdk_sys;
6use glib::translate::*;
7use std::fmt;
8#[cfg(any(feature = "v3_16", feature = "dox"))]
9use std::mem;
10#[cfg(any(feature = "v3_16", feature = "dox"))]
11use std::ptr;
12#[cfg(any(feature = "v3_16", feature = "dox"))]
13use Display;
14#[cfg(any(feature = "v3_16", feature = "dox"))]
15use Error;
16#[cfg(any(feature = "v3_16", feature = "dox"))]
17use Window;
18
19glib_wrapper! {
20    pub struct GLContext(Object<gdk_sys::GdkGLContext, GLContextClass>);
21
22    match fn {
23        get_type => || gdk_sys::gdk_gl_context_get_type(),
24    }
25}
26
27impl GLContext {
28    #[cfg(any(feature = "v3_16", feature = "dox"))]
29    pub fn get_debug_enabled(&self) -> bool {
30        unsafe {
31            from_glib(gdk_sys::gdk_gl_context_get_debug_enabled(
32                self.to_glib_none().0,
33            ))
34        }
35    }
36
37    #[cfg(any(feature = "v3_16", feature = "dox"))]
38    pub fn get_display(&self) -> Option<Display> {
39        unsafe { from_glib_none(gdk_sys::gdk_gl_context_get_display(self.to_glib_none().0)) }
40    }
41
42    #[cfg(any(feature = "v3_16", feature = "dox"))]
43    pub fn get_forward_compatible(&self) -> bool {
44        unsafe {
45            from_glib(gdk_sys::gdk_gl_context_get_forward_compatible(
46                self.to_glib_none().0,
47            ))
48        }
49    }
50
51    #[cfg(any(feature = "v3_16", feature = "dox"))]
52    pub fn get_required_version(&self) -> (i32, i32) {
53        unsafe {
54            let mut major = mem::uninitialized();
55            let mut minor = mem::uninitialized();
56            gdk_sys::gdk_gl_context_get_required_version(
57                self.to_glib_none().0,
58                &mut major,
59                &mut minor,
60            );
61            (major, minor)
62        }
63    }
64
65    #[cfg(any(feature = "v3_16", feature = "dox"))]
66    pub fn get_shared_context(&self) -> Option<GLContext> {
67        unsafe {
68            from_glib_none(gdk_sys::gdk_gl_context_get_shared_context(
69                self.to_glib_none().0,
70            ))
71        }
72    }
73
74    #[cfg(any(feature = "v3_22", feature = "dox"))]
75    pub fn get_use_es(&self) -> bool {
76        unsafe { from_glib(gdk_sys::gdk_gl_context_get_use_es(self.to_glib_none().0)) }
77    }
78
79    #[cfg(any(feature = "v3_16", feature = "dox"))]
80    pub fn get_version(&self) -> (i32, i32) {
81        unsafe {
82            let mut major = mem::uninitialized();
83            let mut minor = mem::uninitialized();
84            gdk_sys::gdk_gl_context_get_version(self.to_glib_none().0, &mut major, &mut minor);
85            (major, minor)
86        }
87    }
88
89    #[cfg(any(feature = "v3_16", feature = "dox"))]
90    pub fn get_window(&self) -> Option<Window> {
91        unsafe { from_glib_none(gdk_sys::gdk_gl_context_get_window(self.to_glib_none().0)) }
92    }
93
94    #[cfg(any(feature = "v3_20", feature = "dox"))]
95    pub fn is_legacy(&self) -> bool {
96        unsafe { from_glib(gdk_sys::gdk_gl_context_is_legacy(self.to_glib_none().0)) }
97    }
98
99    #[cfg(any(feature = "v3_16", feature = "dox"))]
100    pub fn make_current(&self) {
101        unsafe {
102            gdk_sys::gdk_gl_context_make_current(self.to_glib_none().0);
103        }
104    }
105
106    #[cfg(any(feature = "v3_16", feature = "dox"))]
107    pub fn realize(&self) -> Result<(), Error> {
108        unsafe {
109            let mut error = ptr::null_mut();
110            let _ = gdk_sys::gdk_gl_context_realize(self.to_glib_none().0, &mut error);
111            if error.is_null() {
112                Ok(())
113            } else {
114                Err(from_glib_full(error))
115            }
116        }
117    }
118
119    #[cfg(any(feature = "v3_16", feature = "dox"))]
120    pub fn set_debug_enabled(&self, enabled: bool) {
121        unsafe {
122            gdk_sys::gdk_gl_context_set_debug_enabled(self.to_glib_none().0, enabled.to_glib());
123        }
124    }
125
126    #[cfg(any(feature = "v3_16", feature = "dox"))]
127    pub fn set_forward_compatible(&self, compatible: bool) {
128        unsafe {
129            gdk_sys::gdk_gl_context_set_forward_compatible(
130                self.to_glib_none().0,
131                compatible.to_glib(),
132            );
133        }
134    }
135
136    #[cfg(any(feature = "v3_16", feature = "dox"))]
137    pub fn set_required_version(&self, major: i32, minor: i32) {
138        unsafe {
139            gdk_sys::gdk_gl_context_set_required_version(self.to_glib_none().0, major, minor);
140        }
141    }
142
143    #[cfg(any(feature = "v3_22", feature = "dox"))]
144    pub fn set_use_es(&self, use_es: i32) {
145        unsafe {
146            gdk_sys::gdk_gl_context_set_use_es(self.to_glib_none().0, use_es);
147        }
148    }
149
150    #[cfg(any(feature = "v3_16", feature = "dox"))]
151    pub fn clear_current() {
152        assert_initialized_main_thread!();
153        unsafe {
154            gdk_sys::gdk_gl_context_clear_current();
155        }
156    }
157
158    #[cfg(any(feature = "v3_16", feature = "dox"))]
159    pub fn get_current() -> Option<GLContext> {
160        assert_initialized_main_thread!();
161        unsafe { from_glib_none(gdk_sys::gdk_gl_context_get_current()) }
162    }
163}
164
165impl fmt::Display for GLContext {
166    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
167        write!(f, "GLContext")
168    }
169}