Skip to content

essa-software/EssaGUI

Repository files navigation

EssaGUI & Utils

EssaGUI is a GUI framework focused on simulations. It is largely inspired by SerenityOS's LibGUI and Qt.

Features

Util

EssaUtil is a general-purpose supplement to C++ standard library (but still a bit biased to simulations):

  • Custom strings, streams, buffers
  • TRY() error handling - taken from Serenity and added some things like multiple errors from a single objects
  • Math utilities: vectors, matrices, some geometry
  • ThreadPool
  • JSON
  • Various other generally useful utilities - see the source code

GUI

GUI system, because of its simulational origins and purpose, runs continuously in a main loop.

We have a custom library, LLGL, built on top of SDL, OpenGL, GLX and a bit of direct X11.

Some features include:

  • Event loop (timers etc.)
  • Widget system, box layouts, multiple window support
  • Custom markup language ("EML")
  • Common widgets and dialogs
  • MDI (windows in windows)
  • Tiling "window manager" for dockable UI (in progress)
  • Theming
  • Basic rich text

Engine

EssaEngine implements some commonly used 3D utilities:

  • OBJ models loader
  • Shape renderers
  • Simple lighting shaders

Example apps

How to use this for your project

NOTE: EssaGUI is not stable or production ready. API may change at any time (and changes frequently, actually).

See the tutorial for more details.

Documentation

There is no full documentation of EssaGUI yet. What is done you can read here.

Releases

No releases published

Packages

 
 
 

Contributors

Languages