1
0
mirror of https://github.com/emilk/egui.git synced 2026-09-03 23:30:04 -04:00

Add HarnessBuilder::with_render_options() (closes #7630) (#8060)

Allows to override the default `PREDICTABLE` render options, e.g. if
it's desired to create snapshots with the exact texture options used by
the app.

See #7630 for details / examples.
This commit is contained in:
Michael Grupp
2026-04-04 12:09:56 +02:00
committed by GitHub
parent c2b482ff7e
commit 0435d2a9a1
3 changed files with 40 additions and 5 deletions

View File

@@ -58,7 +58,10 @@ pub fn default_wgpu_setup() -> egui_wgpu::WgpuSetup {
egui_wgpu::WgpuSetup::CreateNew(setup)
}
pub fn create_render_state(setup: WgpuSetup) -> egui_wgpu::RenderState {
pub fn create_render_state(
setup: WgpuSetup,
options: egui_wgpu::RendererOptions,
) -> egui_wgpu::RenderState {
// No display handle needed for headless testing — we don't present to a window.
let instance = pollster::block_on(setup.new_instance());
@@ -69,7 +72,7 @@ pub fn create_render_state(setup: WgpuSetup) -> egui_wgpu::RenderState {
},
&instance,
None,
egui_wgpu::RendererOptions::PREDICTABLE,
options,
))
.expect("Failed to create render state")
}
@@ -89,14 +92,17 @@ impl WgpuTestRenderer {
/// Create a new [`WgpuTestRenderer`] with the default setup.
pub fn new() -> Self {
Self {
render_state: create_render_state(default_wgpu_setup()),
render_state: create_render_state(
default_wgpu_setup(),
egui_wgpu::RendererOptions::PREDICTABLE,
),
}
}
/// Create a new [`WgpuTestRenderer`] with the given setup.
pub fn from_setup(setup: WgpuSetup) -> Self {
Self {
render_state: create_render_state(setup),
render_state: create_render_state(setup, egui_wgpu::RendererOptions::PREDICTABLE),
}
}
@@ -115,6 +121,13 @@ impl WgpuTestRenderer {
);
Self { render_state }
}
/// Create a new [`WgpuTestRenderer`] with custom render options.
pub fn with_render_options(options: egui_wgpu::RendererOptions) -> Self {
Self {
render_state: create_render_state(default_wgpu_setup(), options),
}
}
}
impl crate::TestRenderer for WgpuTestRenderer {