summaryrefslogtreecommitdiff
path: root/engine/src/rendering/backend
diff options
context:
space:
mode:
Diffstat (limited to 'engine/src/rendering/backend')
-rw-r--r--engine/src/rendering/backend/opengl/glutin_compat.rs90
1 files changed, 45 insertions, 45 deletions
diff --git a/engine/src/rendering/backend/opengl/glutin_compat.rs b/engine/src/rendering/backend/opengl/glutin_compat.rs
index cfd6ea7..4cdf18a 100644
--- a/engine/src/rendering/backend/opengl/glutin_compat.rs
+++ b/engine/src/rendering/backend/opengl/glutin_compat.rs
@@ -35,8 +35,8 @@
use glutin::config::{Config, ConfigTemplateBuilder};
use glutin::display::{Display, DisplayApiPreference};
use glutin::error::Error as GlutinError;
-#[cfg(x11_platform)]
-use glutin::platform::x11::X11GlConfigExt;
+// #[cfg(x11_platform)]
+// use glutin::platform::x11::X11GlConfigExt;
use glutin::prelude::*;
use raw_window_handle::{DisplayHandle, RawWindowHandle, WindowHandle};
@@ -131,8 +131,9 @@ impl DisplayBuilder
// XXX the native window must be passed to config picker when WGL is used
// otherwise very limited OpenGL features will be supported.
- #[cfg(wgl_backend)]
- let template_builder = if let Some(raw_window_handle) = raw_window_handle {
+ let template_builder = if let Some(raw_window_handle) =
+ raw_window_handle.filter(|_| cfg!(wgl_backend))
+ {
template_builder.compatible_with_native_window(raw_window_handle)
} else {
template_builder
@@ -150,12 +151,12 @@ impl DisplayBuilder
let picked_gl_config =
config_picker_fn(gl_configs).ok_or(Error::NoConfigPicked)?;
- #[cfg(not(wgl_backend))]
- let window_attrs =
- { finalize_window_creation_attrs(self.window_attributes, &picked_gl_config) };
-
- #[cfg(wgl_backend)]
- let window_attrs = self.window_attributes;
+ let window_attrs = cfg_select! {
+ wgl_backend => { self.window_attributes }
+ _ => {
+ finalize_window_creation_attrs(self.window_attributes, &picked_gl_config)
+ }
+ };
Ok((window_attrs, picked_gl_config))
}
@@ -183,40 +184,40 @@ fn create_display(
_raw_window_handle: Option<RawWindowHandle>,
) -> Result<Display, GlutinError>
{
- #[cfg(egl_backend)]
- let _preference = DisplayApiPreference::Egl;
-
- #[cfg(glx_backend)]
- let _preference = DisplayApiPreference::Glx(Box::new(
- crate::windowing::window::platform::x11::register_xlib_error_hook,
- ));
-
- #[cfg(cgl_backend)]
- let _preference = DisplayApiPreference::Cgl;
-
- #[cfg(wgl_backend)]
- let _preference = DisplayApiPreference::Wgl(_raw_window_handle);
-
- #[cfg(all(egl_backend, glx_backend))]
- let _preference = match _api_preference {
- ApiPreference::PreferEgl => DisplayApiPreference::EglThenGlx(Box::new(
- crate::windowing::window::platform::x11::register_xlib_error_hook,
- )),
- ApiPreference::FallbackEgl => DisplayApiPreference::GlxThenEgl(Box::new(
- crate::windowing::window::platform::x11::register_xlib_error_hook,
- )),
- };
-
- #[cfg(all(wgl_backend, egl_backend))]
- let _preference = match _api_preference {
- ApiPreference::PreferEgl => DisplayApiPreference::EglThenWgl(_raw_window_handle),
- ApiPreference::FallbackEgl => {
- DisplayApiPreference::WglThenEgl(_raw_window_handle)
+ let preference = cfg_select! {
+ all(wgl_backend, egl_backend) => {
+ match _api_preference {
+ ApiPreference::PreferEgl => {
+ DisplayApiPreference::EglThenWgl(_raw_window_handle)
+ }
+ ApiPreference::FallbackEgl => {
+ DisplayApiPreference::WglThenEgl(_raw_window_handle)
+ }
+ }
+ }
+ all(egl_backend, glx_backend) => {
+ match _api_preference {
+ ApiPreference::PreferEgl => DisplayApiPreference::EglThenGlx(Box::new(
+ crate::windowing::window::platform::x11::register_xlib_error_hook,
+ )),
+ ApiPreference::FallbackEgl => DisplayApiPreference::GlxThenEgl(Box::new(
+ crate::windowing::window::platform::x11::register_xlib_error_hook,
+ )),
+ }
}
+ wgl_backend => { DisplayApiPreference::Wgl(_raw_window_handle) }
+ cgl_backend => { DisplayApiPreference::Cgl }
+ glx_backend => {
+ DisplayApiPreference::Glx(Box::new(
+ crate::windowing::window::platform::x11::register_xlib_error_hook,
+ ))
+ }
+ egl_backend => { DisplayApiPreference::Egl }
};
let handle = display_handle.as_raw();
- unsafe { Ok(Display::new(handle, _preference)?) }
+
+ unsafe { Ok(Display::new(handle, preference)?) }
}
/// Finalize [`Window`] creation by applying the options from the [`Config`], be
@@ -237,11 +238,10 @@ fn finalize_window_creation_attrs(
}
#[cfg(x11_platform)]
- let attributes = if let Some(x11_visual) = gl_config.x11_visual() {
- attributes.with_x11_visual(x11_visual.visual_id() as _)
- } else {
- attributes
- };
+ if let Some(x11_visual) = glutin::platform::x11::X11GlConfigExt::x11_visual(gl_config)
+ {
+ return attributes.with_x11_visual(x11_visual.visual_id() as _);
+ }
attributes
}