mirror of
https://github.com/emilk/egui.git
synced 2026-08-31 13:50:04 -04:00
eframe: Introduce NativeOptions::prefer_gl_api to specify the preferred OpenGL API
This commit is contained in:
@@ -25,6 +25,10 @@ use static_assertions::assert_not_impl_any;
|
|||||||
#[cfg(any(feature = "glow", feature = "wgpu"))]
|
#[cfg(any(feature = "glow", feature = "wgpu"))]
|
||||||
pub use winit::{event_loop::EventLoopBuilder, window::WindowAttributes};
|
pub use winit::{event_loop::EventLoopBuilder, window::WindowAttributes};
|
||||||
|
|
||||||
|
#[cfg(not(target_arch = "wasm32"))]
|
||||||
|
#[cfg(feature = "glow")]
|
||||||
|
pub use glutin_winit::ApiPreference as GlApiPreference;
|
||||||
|
|
||||||
/// Hook into the building of an event loop before it is run
|
/// Hook into the building of an event loop before it is run
|
||||||
///
|
///
|
||||||
/// You can configure any platform specific details required on top of the default configuration
|
/// You can configure any platform specific details required on top of the default configuration
|
||||||
@@ -396,6 +400,13 @@ pub struct NativeOptions {
|
|||||||
/// [`with_android_app`]: winit::platform::android::EventLoopBuilderExtAndroid::with_android_app
|
/// [`with_android_app`]: winit::platform::android::EventLoopBuilderExtAndroid::with_android_app
|
||||||
#[cfg(target_os = "android")]
|
#[cfg(target_os = "android")]
|
||||||
pub android_app: Option<winit::platform::android::activity::AndroidApp>,
|
pub android_app: Option<winit::platform::android::activity::AndroidApp>,
|
||||||
|
|
||||||
|
/// Which OpenGL API to prefer when using [`Renderer::Glow`].
|
||||||
|
///
|
||||||
|
/// This is only used when the `glow` feature is enabled.
|
||||||
|
/// Default: [`GlApiPreference::FallbackEgl`].
|
||||||
|
#[cfg(feature = "glow")]
|
||||||
|
pub prefer_gl_api: GlApiPreference,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(not(target_arch = "wasm32"))]
|
#[cfg(not(target_arch = "wasm32"))]
|
||||||
@@ -462,6 +473,9 @@ impl Default for NativeOptions {
|
|||||||
|
|
||||||
#[cfg(target_os = "android")]
|
#[cfg(target_os = "android")]
|
||||||
android_app: None,
|
android_app: None,
|
||||||
|
|
||||||
|
#[cfg(feature = "glow")]
|
||||||
|
prefer_gl_api: GlApiPreference::FallbackEgl,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -953,10 +953,7 @@ impl GlutinWindowContext {
|
|||||||
|
|
||||||
// Create GL display. This may probably create a window too on most platforms. Definitely on `MS windows`. Never on Android.
|
// Create GL display. This may probably create a window too on most platforms. Definitely on `MS windows`. Never on Android.
|
||||||
let display_builder = glutin_winit::DisplayBuilder::new()
|
let display_builder = glutin_winit::DisplayBuilder::new()
|
||||||
// we might want to expose this option to users in the future. maybe using an env var or using native_options.
|
.with_preference(native_options.prefer_gl_api) // https://github.com/emilk/egui/issues/2520#issuecomment-1367841150
|
||||||
//
|
|
||||||
// The justification for FallbackEgl over PreferEgl is at https://github.com/emilk/egui/pull/2526#issuecomment-1400229576 .
|
|
||||||
.with_preference(glutin_winit::ApiPreference::FallbackEgl)
|
|
||||||
.with_window_attributes(Some(egui_winit::create_winit_window_attributes(
|
.with_window_attributes(Some(egui_winit::create_winit_window_attributes(
|
||||||
egui_ctx,
|
egui_ctx,
|
||||||
event_loop,
|
event_loop,
|
||||||
|
|||||||
Reference in New Issue
Block a user