pub struct RawInput {
pub viewport_id: ViewportId,
pub viewports: ViewportIdMap<ViewportInfo>,
pub screen_rect: Option<Rect>,
pub max_texture_side: Option<usize>,
pub time: Option<f64>,
pub predicted_dt: f32,
pub modifiers: Modifiers,
pub events: Vec<Event>,
pub hovered_files: Vec<HoveredFile>,
pub dropped_files: Vec<DroppedFile>,
pub focused: bool,
pub system_theme: Option<Theme>,
}
Expand description
What the integrations provides to egui at the start of each frame.
Set the values that make sense, leave the rest at their Default::default()
.
You can check if egui
is using the inputs using
crate::Context::wants_pointer_input
and crate::Context::wants_keyboard_input
.
All coordinates are in points (logical pixels) with origin (0, 0) in the top left .corner.
Ii “points” can be calculated from native physical pixels
using pixels_per_point
= crate::Context::zoom_factor
* native_pixels_per_point
;
Fields§
§viewport_id: ViewportId
The id of the active viewport.
viewports: ViewportIdMap<ViewportInfo>
Information about all egui viewports.
screen_rect: Option<Rect>
Position and size of the area that egui should use, in points. Usually you would set this to
Some(Rect::from_min_size(Default::default(), screen_size_in_points))
.
but you could also constrain egui to some smaller portion of your window if you like.
None
will be treated as “same as last frame”, with the default being a very big area.
max_texture_side: Option<usize>
Maximum size of one side of the font texture.
Ask your graphics drivers about this. This corresponds to GL_MAX_TEXTURE_SIZE
.
The default is a very small (but very portable) 2048.
time: Option<f64>
Monotonically increasing time, in seconds. Relative to whatever. Used for animations.
If None
is provided, egui will assume a time delta of predicted_dt
(default 1/60 seconds).
predicted_dt: f32
Should be set to the expected time between frames when painting at vsync speeds. The default for this is 1/60. Can safely be left at its default value.
modifiers: Modifiers
Which modifier keys are down at the start of the frame?
events: Vec<Event>
In-order events received this frame.
There is currently no way to know if egui handles a particular event,
but you can check if egui is using the keyboard with crate::Context::wants_keyboard_input
and/or the pointer (mouse/touch) with crate::Context::is_using_pointer
.
hovered_files: Vec<HoveredFile>
Dragged files hovering over egui.
dropped_files: Vec<DroppedFile>
Dragged files dropped into egui.
Note: when using eframe
on Windows you need to enable
drag-and-drop support using eframe::NativeOptions
.
focused: bool
The native window has the keyboard focus (i.e. is receiving key presses).
False when the user alt-tab away from the application, for instance.
system_theme: Option<Theme>
Does the OS use dark or light mode?
None
means “don’t know”.
Implementations§
Source§impl RawInput
impl RawInput
Sourcepub fn viewport(&self) -> &ViewportInfo
pub fn viewport(&self) -> &ViewportInfo
Info about the active viewport
Sourcepub fn take(&mut self) -> Self
pub fn take(&mut self) -> Self
Helper: move volatile (deltas and events), clone the rest.
Self::hovered_files
is cloned.Self::dropped_files
is moved.