[−][src]Crate egui
egui core library
To quickly get started with egui, you can take a look at egui_template
which uses eframe
.
To create a GUI using egui you first need a CtxRef
(by convention referred to by ctx
).
Use one of SidePanel
, TopPanel
, CentralPanel
, Window
or Area
to
get access to an Ui
where you can put widgets. For example:
egui::CentralPanel::default().show(&ctx, |ui| { ui.label("Hello"); });
To write your own integration for egui you need to do this:
let mut egui_ctx = egui::CtxRef::default(); // Game loop: loop { let raw_input: egui::RawInput = my_integration.gather_input(); egui_ctx.begin_frame(raw_input); my_app.ui(&egui_ctx); // add panels, windows and widgets to `egui_ctx` here let (output, shapes) = egui_ctx.end_frame(); let paint_jobs = egui_ctx.tessellate(shapes); // create triangles to paint my_integration.paint(paint_jobs); my_integration.set_cursor_icon(output.cursor_icon); // Also see `egui::Output` for more }
Re-exports
pub use emath as math; |
pub use epaint as paint; |
pub use epaint::emath; |
pub use containers::*; |
pub use layers::LayerId; |
pub use layers::Order; |
pub use style::Style; |
pub use widgets::*; |
Modules
color | Color conversions and types. |
containers | Containers are pieces of the UI which wraps other pieces of UI. Examples: |
layers | Handles paint layers, i.e. how things are sometimes painted behind or in front of other things. |
menu | Menu bar functionality (very basic so far). |
mutex | Helper module that wraps some Mutex types with different implementations. |
style | egui theme (spacing, colors, etc). |
util | Miscellaneous tools used by the rest of egui. |
widgets | Widgets are pieces of GUI such as |
Macros
github_link_file | |
github_link_file_line | Create a |
Structs
Align2 | Two-dimension alignment, e.g. |
Color32 | This format is used for space-efficient color representation (32 bits). |
Context | This is the first thing you need when working with egui. Create using |
CtxRef | A wrapper around |
FontDefinitions | Describes the font data and the sizes to use. |
Grid | A simple grid layout. |
Id | egui tracks widgets frame-to-frame using |
InputState | Input state that egui updates each frame. |
Layout | The layout of a |
Memory | The data that egui persists between frames. |
Modifiers | State of the modifier keys. These must be fed to egui. |
Output | What egui emits each frame. The backend should use this. |
Painter | Helper to paint shapes and text to a specific region on a specific layer. |
Pos2 | A position on screen. |
RawInput | What the integrations provides to egui at the start of each frame. |
Rect | A rectangular region of space. |
Response | The result of adding a widget to a |
Rgba | 0-1 linear space |
Sense | What sort of interaction is a widget sensitive to? |
Stroke | Describes the width and color of a line. |
Texture | An 8-bit texture containing font data. |
Ui | This is what you use to place widgets. |
Vec2 | A vector has a direction and length.
A |
Enums
Align | left/center/right or top/center/bottom alignment for e.g. anchors and layouts. |
CursorIcon | A mouse cursor icon. |
Direction | Layout direction, one of |
Event | An input event generated by the integration. |
FontFamily | Which style of font: |
Key | Keyboard keys. |
Shape | A paint primitive such as a circle or a piece of text. Coordinates are all screen space points (not physical pixels). |
TextStyle | One of a few categories of styles of text, e.g. body, button or heading. |
TextureId | What texture to use in a |
Traits
NumExt | Extends |
Functions
clamp | Returns |
lerp | Linear interpolation. |
pos2 |
|
remap | Linearly remap a value from one range to another,
so that when |
remap_clamp | Like |
vec2 |
|
warn_if_debug_build | Helper function that adds a label when compiling with debug assertions enabled. |
Type Definitions
PaintJobs | Grouped by clip rectangles, in points (logical pixels). |