Crate egui_tetra[−][src]
Expand description
egui-tetra
egui-tetra is a library that helps integrate egui, an immediate mode GUI library, with Tetra, a 2D game framework.
Usage
The easiest way to use egui-tetra is to make your main state struct implement
egui-tetra’s State
trait instead of Tetra’s. This will
give you access to a ui
callback where you can do your GUI
rendering.
use std::error::Error; use egui_tetra::egui; struct MainState; impl egui_tetra::State<Box<dyn Error>> for MainState { fn ui( &mut self, ctx: &mut tetra::Context, egui_ctx: &egui::CtxRef, ) -> Result<(), Box<dyn Error>> { egui::Window::new("hi!").show(egui_ctx, |ui| { ui.label("Hello world!"); }); Ok(()) } fn update( &mut self, ctx: &mut tetra::Context, egui_ctx: &egui::CtxRef, ) -> Result<(), Box<dyn Error>> { /// Your update code here Ok(()) } fn draw( &mut self, ctx: &mut tetra::Context, egui_ctx: &egui::CtxRef, ) -> Result<(), Box<dyn Error>> { /// Your drawing code here Ok(()) } fn event( &mut self, ctx: &mut tetra::Context, egui_ctx: &egui::CtxRef, event: tetra::Event, ) -> Result<(), Box<dyn Error>> { /// Your event handling code here Ok(()) } }
When running the Tetra Context
, wrap your state
struct in a StateWrapper
to make it compatible with Tetra’s
State
trait.
fn main() -> Result<(), Box<dyn Error>> { tetra::ContextBuilder::new("example", 800, 600) .build()? .run(|_| Ok(egui_tetra::StateWrapper::new(MainState))) }
If you need more control, you can use EguiWrapper
and manually
hook up egui to Tetra’s callbacks.
Re-exports
pub use egui;
Structs
Wraps an egui context with features that are useful for integrating egui with Tetra.
An adaptor that implements tetra::State
for implementors of
State
.
Enums
An error that can occur when using egui-tetra.
An error that can occur when opening a URL or other path by clicking a hyperlink.
Traits
A trait analogous to tetra::State
, but with the addition of a
ui
callback and an egui_ctx
argument in the
other callbacks.