Struct me3_framework::overlay::RawInput
source · [−]pub struct RawInput {
pub screen_rect: Option<Rect>,
pub pixels_per_point: Option<f32>,
pub max_texture_side: Option<usize>,
pub time: Option<f64>,
pub predicted_dt: f32,
pub modifiers: Modifiers,
pub events: Vec<Event, Global>,
pub hovered_files: Vec<HoveredFile, Global>,
pub dropped_files: Vec<DroppedFile, Global>,
pub has_focus: 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.
Fields
screen_rect: Option<Rect>
Position and size of the area that egui should use. Usually you would set this to
Some(Rect::from_pos_size(Default::default(), screen_size))
.
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.
pixels_per_point: Option<f32>
Also known as device pixel ratio, > 1 for high resolution screens. If text looks blurry you probably forgot to set this. Set this the first frame, whenever it changes, or just on every frame.
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, Global>
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, Global>
Dragged files hovering over egui.
dropped_files: Vec<DroppedFile, Global>
Dragged files dropped into egui.
Note: when using eframe
on Windows you need to enable
drag-and-drop support using eframe::NativeOptions
.
has_focus: bool
The window has the keyboard focus (i.e. is receiving key presses).
Implementations
sourceimpl RawInput
impl RawInput
sourcepub fn take(&mut self) -> RawInput
pub fn take(&mut self) -> RawInput
Helper: move volatile (deltas and events), clone the rest.
Self::hovered_files
is cloned.Self::dropped_files
is moved.