You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

2.9 KiB

Latest version Documentation MIT Apache

Egui

An immediate mode GUI library written in Rust. Works anywhere you can draw textured triangles.

Goals:

  • Lightweight
  • Short, conveniant syntax
  • Responsive (60 Hz without breaking a sweat)
  • Portable
  • Platform independent (the same code works on the web and as a native app)

How it works:

Loop:

  • Gather input: mouse, touches, screen size, ...
  • Run application code (Immediate Mode GUI)
  • Output is a triangle mesh
  • Render with e.g. OpenGL

Available backends:

Wherever you can render textured triangles you can use Egui.

The same application code can thus be compiled to either into a native app or a web app.

Demos

Egui feature demo, (partial) source: https://github.com/emilk/emigui/blob/master/egui/src/examples/app.rs

Hobogo: A small game using Egui, source: https://github.com/emilk/hobogo

State

Alpha state. It works, but is somewhat incomplete.

Features:

  • Labels
  • Buttons, checkboxes, radio buttons and sliders
  • Horizontal or vertical layout
  • Column layout
  • Collapsible headers (sections)
  • Windows
  • Resizable regions
  • Vertical scolling
  • Simple text input
  • Anti-aliased rendering of circles, rounded rectangles and lines.

Conventions

  • All coordinates are screen space coordinates, in locial "points" (which may consist of many physical pixels).
  • All colors have premultiplied alpha

Inspiration

The one and only Dear ImGui is a great Immediate Mode GUI for C++ which works with many backends. That library revolutionized how I think about GUI code from something I hated to do to something I now like to do.

Name

The name of the gui library is "Egui", written like that in text and as egui in code and pronounced as "e-gooey".

The library used to be called Emigui, which is why it is still hosted at github.com/emilk/emigui. If you like, emigui is the collection of helper crates that surrounds egui, while egui is the actual GUI library.

Credits / Licenses

Fonts:

  • Comfortaa: Open Font License, see OFT.txt
  • ProggyClean.ttf, Copyright (c) 2004, 2005 Tristan Grimmer. MIT License. http://www.proggyfonts.net/
  • Roboto-Regular.ttf: Apache License, Version 2.0