Etermal
Embeddable Terminal and shell for OpenGL
Etermal Documentation

What is it?

Etermal is an embedabble terminal (and shell) for OpenGL 3.3, although it might work for later versions.

Getting started

See this page.

Structure

The library is divided into the frontend and backend, being the terminal and shell respectively. The shell takes care of command processing, and the terminal handles the displaying of text and user input.

The front and back-end are abstracted so that you can easially swap in your own implementation, with ETerminal and EShell.

Performance

CPU

Pretty good. The benchmarks from here claim that on my dinky laptop the FPS ranges from 2000 to infinity... Long story short, it shouldn't be an issue.

Memory

There is a glyph cache that is used when rendering text (cleared when the screen is cleared via Terminal::clear()), but it's really quite small.

While it's implementation defined, the terminal takes up ~1.5 KB, making it rather stack-heavy. Should probably dynamically allocate.

What you should note is the usage from the line count, which no my machine ~25 bytes plus however much the strings allocate.

In investigating, I've found that it takes on its own no more than like 1MB, although I really have no idea because it's a little hard to measure.

TL;DR: Set the max line count to 500-1000 and you'll be fine.