egui/README.md

56 lines
1.8 KiB
Markdown
Raw Normal View History

2019-03-10 20:01:07 +00:00
# Emigui
2019-03-12 07:54:17 +00:00
(Experimental, Modularized Immediate mode Graphical User Interface)
2019-03-12 21:59:55 +00:00
An immediate mode GUI library written in Rust. For web apps or native apps.
2019-03-12 07:54:17 +00:00
## Goals:
* Easy to use
2019-03-12 21:59:55 +00:00
* Platform independent (the same code works on the web and as a native app)
2019-03-12 07:54:17 +00:00
* Responsive
2019-03-12 07:54:17 +00:00
## How it works:
2019-03-10 20:01:07 +00:00
Loop:
* Gather input: mouse, touches, screen size, ...
2019-03-12 07:54:17 +00:00
* Run application code (Immediate Mode GUI)
2019-03-10 20:01:07 +00:00
* Output is a triangle mesh
2019-03-12 21:59:55 +00:00
* Render with e.g. OpenGL
## Available backends:
Wherever you can render textured triangles you can use Emigui.
Currently two backends have been tested:
* WebAssembly (emigui_wasm) for making a web app
* [Glium](https://github.com/glium/glium) for native apps (see example_glium).
The same application code can thus be compiled to either into a native app or a web app.
2019-03-10 20:01:07 +00:00
## Demos
2019-03-16 11:55:42 +00:00
[Emigui feature demo](https://emilk.github.io/emigui/index.html), source: https://github.com/emilk/emigui/blob/master/example_wasm/src/app.rs
2019-03-12 07:54:17 +00:00
[Hobogo: A small game using Emigui](https://emilk.github.io/hobogo/index.html), source: https://github.com/emilk/hobogo
2018-12-23 23:15:18 +00:00
2019-03-10 20:01:07 +00:00
## State
2019-03-12 07:54:17 +00:00
Mostly a tech demo at this point. I hope to find time to work more on this in the future.
Features:
2018-12-23 23:15:18 +00:00
2019-03-10 20:01:07 +00:00
* Text
2019-03-12 07:54:17 +00:00
* Buttons, checkboxes, radio buttons and sliders
2019-03-10 20:01:07 +00:00
* Horizontal or vertical layout
2019-03-12 07:54:17 +00:00
* Column layout
* Collapsible headers (sections)
* Anti-aliased rendering of circles, rounded rectangles and lines.
## Roadmap:
2019-03-12 21:59:55 +00:00
* Turn the [Glium](https://github.com/glium/glium) backend into a library
* Some examples and documentation
2019-03-12 07:54:17 +00:00
* Text input
2019-01-04 13:14:32 +00:00
2019-03-10 20:01:07 +00:00
## Inspiration
2019-03-12 07:54:17 +00:00
[Dear ImGui](https://github.com/ocornut/imgui) is a great Immediate Mode GUI for C++ which works with many backends.
2019-01-04 13:14:32 +00:00
2019-03-10 20:01:07 +00:00
## Credits / Licenses
2019-03-12 07:54:17 +00:00
Fonts:
* ProggyClean.ttf, Copyright (c) 2004, 2005 Tristan Grimmer. MIT License. http://www.proggyfonts.net/
* Roboto-Regular.ttf: Apache License, Version 2.0