From ab86b2537a5681c52efee5f23de97b03d4ab8953 Mon Sep 17 00:00:00 2001 From: jtnunley Date: Mon, 27 Mar 2023 13:13:49 -0700 Subject: [PATCH] Fix windows --- glutin-winit/src/lib.rs | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/glutin-winit/src/lib.rs b/glutin-winit/src/lib.rs index 5c6adc1ab3..c61a6d9a92 100644 --- a/glutin-winit/src/lib.rs +++ b/glutin-winit/src/lib.rs @@ -106,24 +106,29 @@ impl DisplayBuilder { None }; - #[cfg(wgl_backend)] - let raw_window_handle = window.as_ref().map(|window| window.window_handle()).transpose()?; - #[cfg(not(wgl_backend))] - let raw_window_handle = None; - - let gl_display = create_display(window_target, self.preference, raw_window_handle.clone())?; - - // 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 { - template_builder.compatible_with_native_window(raw_window_handle) - } else { - template_builder + let (gl_display, template) = { + #[cfg(wgl_backend)] + let raw_window_handle = + window.as_ref().map(|window| window.window_handle()).transpose()?; + #[cfg(not(wgl_backend))] + let raw_window_handle = None; + + let gl_display = + create_display(window_target, self.preference, raw_window_handle.clone())?; + + // 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 { + template_builder.compatible_with_native_window(raw_window_handle) + } else { + template_builder + }; + + let template = template_builder.build(); + (gl_display, template) }; - let template = template_builder.build(); - let gl_config = { let configs = gl_display.find_configs(template)?; config_picker(configs) @@ -136,8 +141,6 @@ impl DisplayBuilder { None }; - drop(raw_window_handle); - Ok((window, gl_config)) } }