mirror of
https://github.com/emilk/egui.git
synced 2026-08-30 05:10:03 -04:00
Add custom shader_version on glow renderer (#1993)
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
This commit is contained in:
@@ -311,6 +311,13 @@ pub struct NativeOptions {
|
||||
///
|
||||
/// Note: A [`NativeOptions`] clone will not include any `event_loop_builder` hook.
|
||||
pub event_loop_builder: Option<EventLoopBuilderHook>,
|
||||
|
||||
#[cfg(feature = "glow")]
|
||||
/// Needed for cross compiling for VirtualBox VMSVGA driver with OpenGL ES 2.0 and OpenGL 2.1 which doesn't support SRGB texture.
|
||||
/// See <https://github.com/emilk/egui/pull/1993>.
|
||||
///
|
||||
/// For OpenGL ES 2.0: set this to [`egui_glow::ShaderVersion::Es100`] to solve blank texture problem (by using the "fallback shader").
|
||||
pub shader_version: Option<egui_glow::ShaderVersion>,
|
||||
}
|
||||
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
@@ -350,6 +357,8 @@ impl Default for NativeOptions {
|
||||
default_theme: Theme::Dark,
|
||||
run_and_return: true,
|
||||
event_loop_builder: None,
|
||||
#[cfg(feature = "glow")]
|
||||
shader_version: None,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -337,8 +337,9 @@ mod glow_integration {
|
||||
);
|
||||
let gl = Arc::new(gl);
|
||||
|
||||
let painter = egui_glow::Painter::new(gl.clone(), None, "")
|
||||
.unwrap_or_else(|error| panic!("some OpenGL error occurred {}\n", error));
|
||||
let painter =
|
||||
egui_glow::Painter::new(gl.clone(), None, "", self.native_options.shader_version)
|
||||
.unwrap_or_else(|error| panic!("some OpenGL error occurred {}\n", error));
|
||||
|
||||
let system_theme = self.native_options.system_theme();
|
||||
let mut integration = epi_integration::EpiIntegration::new(
|
||||
|
||||
@@ -23,7 +23,7 @@ impl WebPainter {
|
||||
let gl = std::sync::Arc::new(gl);
|
||||
|
||||
let dimension = [canvas.width() as i32, canvas.height() as i32];
|
||||
let painter = egui_glow::Painter::new(gl, Some(dimension), shader_prefix)
|
||||
let painter = egui_glow::Painter::new(gl, Some(dimension), shader_prefix, None)
|
||||
.map_err(|error| format!("Error starting glow painter: {}", error))?;
|
||||
|
||||
Ok(Self {
|
||||
|
||||
Reference in New Issue
Block a user