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,
}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: ViewportIdThe 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: f32Should 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: ModifiersWhich 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: boolThe native window has the keyboard focus (i.e. is receiving key presses).
False when the user alt-tab away from the application, for instance.
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_filesis cloned.Self::dropped_filesis moved.