pub struct Options {Show 17 fields
pub dark_style: Arc<Style>,
pub light_style: Arc<Style>,
pub theme_preference: ThemePreference,
pub fallback_theme: Theme,
pub(crate) system_theme: Option<Theme>,
pub zoom_factor: f32,
pub zoom_with_keyboard: bool,
pub tessellation_options: TessellationOptions,
pub repaint_on_widget_change: bool,
pub max_passes: NonZeroUsize,
pub screen_reader: bool,
pub preload_font_glyphs: bool,
pub warn_on_id_clash: bool,
pub line_scroll_speed: f32,
pub scroll_zoom_speed: f32,
pub input_options: InputOptions,
pub reduce_texture_memory: bool,
}
Expand description
Some global options that you can read and write.
See also crate::style::DebugOptions
.
Fields§
§dark_style: Arc<Style>
The default style for new Ui
:s in dark mode.
light_style: Arc<Style>
The default style for new Ui
:s in light mode.
theme_preference: ThemePreference
Preference for selection between dark and light crate::Context::style
as the active style used by all subsequent windows, panels, etc.
Default: ThemePreference::System
.
fallback_theme: Theme
Which theme to use in case Self::theme_preference
is ThemePreference::System
and egui fails to detect the system theme.
Default: crate::Theme::Dark
.
system_theme: Option<Theme>
The current system theme, used to choose between
dark and light style in case Self::theme_preference
is ThemePreference::System
.
zoom_factor: f32
Global zoom factor of the UI.
This is used to calculate the pixels_per_point
for the UI as pixels_per_point = zoom_fator * native_pixels_per_point
.
The default is 1.0. Increase it to make all UI elements larger.
You should call crate::Context::set_zoom_factor
instead of modifying this directly!
zoom_with_keyboard: bool
If true
, egui will change the scale of the ui (crate::Context::zoom_factor
) when the user
presses Cmd+Plus, Cmd+Minus or Cmd+0, just like in a browser.
This is true
by default.
On the web-backend of eframe
this is set to false by default,
so that the zoom shortcuts are handled exclusively by the browser,
which will change the native_pixels_per_point
(devicePixelRatio
).
You can still zoom egui independently by calling crate::Context::set_zoom_factor
,
which will be applied on top of the browsers global zoom.
tessellation_options: TessellationOptions
Controls the tessellator.
repaint_on_widget_change: bool
If any widget moves or changes id, repaint everything.
It is recommended you keep this OFF, as it may lead to endless repaints for an unknown reason. See (https://github.com/rerun-io/rerun/issues/5018).
max_passes: NonZeroUsize
Maximum number of passes to run in one frame.
Set to 1
for pure single-pass immediate mode.
Set to something larger than 1
to allow multi-pass when needed.
Default is 2
. This means sometimes a frame will cost twice as much,
but usually only rarely (e.g. when showing a new panel for the first time).
egui will usually only ever run one pass, even if max_passes
is large.
If this is 1
, crate::Context::request_discard
will be ignored.
Multi-pass is supported by crate::Context::run
.
See crate::Context::request_discard
for more.
screen_reader: bool
This is a signal to any backend that we want the crate::PlatformOutput::events
read out loud.
The only change to egui is that labels can be focused by pressing tab.
Screen readers are an experimental feature of egui, and not supported on all platforms.
eframe
only supports it on web.
Consider using AccessKit instead,
which is supported by eframe
.
preload_font_glyphs: bool
If true, the most common glyphs (ASCII) are pre-rendered to the texture atlas.
Only the fonts in Style::text_styles
will be pre-cached.
This can lead to fewer texture operations, but may use up the texture atlas quicker
if you are changing Style::text_styles
, or have a lot of text styles.
warn_on_id_clash: bool
Check reusing of Id
s, and show a visual warning on screen when one is found.
By default this is true
in debug builds.
line_scroll_speed: f32
Multiplier for the scroll speed when reported in crate::MouseWheelUnit::Line
s.
scroll_zoom_speed: f32
Controls the speed at which we zoom in when doing ctrl/cmd + scroll.
input_options: InputOptions
Options related to input state handling.
reduce_texture_memory: bool
If true
, egui
will discard the loaded image data after
the texture is loaded onto the GPU to reduce memory usage.
In modern GPU rendering, the texture data is not required after the texture is loaded.
This is beneficial when using a large number or resolution of images and there is no need to retain the image data, potentially saving a significant amount of memory.
The drawback is that it becomes impossible to serialize the loaded images or render in non-GPU systems.
Default is false
.
Implementations§
Trait Implementations§
impl StructuralPartialEq for Options
Auto Trait Implementations§
impl Freeze for Options
impl !RefUnwindSafe for Options
impl Send for Options
impl Sync for Options
impl Unpin for Options
impl !UnwindSafe for Options
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)