All Projects → Teascade → Glerminal

Teascade / Glerminal

Licence: other
A lightweight terminal made with OpenGL

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Glerminal

Alacritty
Alacritty is a modern terminal emulator that comes with sensible defaults, but allows for extensive configuration. By integrating with other applications, rather than reimplementing their functionality, it manages to provide a flexible set of features with high performance. The supported platforms currently consist of BSD, Linux, macOS and Windows.
Stars: ✭ 36,273 (+151037.5%)
Mutual labels:  terminal, opengl
Galacritty
WIP GTK terminal emulator based on Alacritty
Stars: ✭ 136 (+466.67%)
Mutual labels:  terminal, opengl
Aminal
🌘 Darktile is a GPU rendered terminal emulator designed for tiling window managers.
Stars: ✭ 2,663 (+10995.83%)
Mutual labels:  terminal, opengl
Leaf3d
A lightweight 3D rendering engine based on modern OpenGL
Stars: ✭ 16 (-33.33%)
Mutual labels:  opengl
Atom One Dark Terminal
A Terminal theme that mimics the One Dark theme made by the Atom team.
Stars: ✭ 890 (+3608.33%)
Mutual labels:  terminal
Nau
Nau - OpenGL + Optix 3D Engine
Stars: ✭ 18 (-25%)
Mutual labels:  opengl
Ternimal
Simulate a lifeform in the terminal
Stars: ✭ 922 (+3741.67%)
Mutual labels:  terminal
Cglm
📽 Highly Optimized Graphics Math (glm) for C
Stars: ✭ 887 (+3595.83%)
Mutual labels:  opengl
Glbind
Single file OpenGL API loader.
Stars: ✭ 23 (-4.17%)
Mutual labels:  opengl
Fortran Sdl2
Fortran 2008 interface bindings to SDL 2.0
Stars: ✭ 18 (-25%)
Mutual labels:  opengl
Dotfiles
Configurations for the tools I use every day
Stars: ✭ 898 (+3641.67%)
Mutual labels:  terminal
Initior
A command line application that let's you initialize your new projects the right way, replaces npm and yarn's init 🎆
Stars: ✭ 17 (-29.17%)
Mutual labels:  terminal
Gors
go实现的终端录屏程序
Stars: ✭ 19 (-20.83%)
Mutual labels:  terminal
Gleri
Network protocol, service, and API for using OpenGL remotely.
Stars: ✭ 16 (-33.33%)
Mutual labels:  opengl
Viz Engine
Work in progress: a new visualization engine
Stars: ✭ 23 (-4.17%)
Mutual labels:  opengl
Nya
[WIP] Game Engine written in Crystal
Stars: ✭ 16 (-33.33%)
Mutual labels:  opengl
Fluddy
🤝 A dependency-free command line utility for managing, updating, creating and launching Flask Apps.
Stars: ✭ 23 (-4.17%)
Mutual labels:  terminal
Terminalview
Terminal inside Sublime Text 3 view
Stars: ✭ 897 (+3637.5%)
Mutual labels:  terminal
Term
Unix terminal drain and formatter for slog-rs
Stars: ✭ 17 (-29.17%)
Mutual labels:  terminal
Hyper Fileio
🚀 Ephemeral file sharing direct from Hyper
Stars: ✭ 18 (-25%)
Mutual labels:  terminal

GLerminal, an OpenGL terminal

Build Status Docs Crates.io

Read our Code of Conduct and join our Discord server if you want to chat!

A lightweight terminal made with OpenGL from the ground-up.
With this terminal, you're able to make the terminal applications or games you've always wanted, but with a terminal that looks the same for everyone, because it's made with OpenGL and doesn't use the computer's native terminal!

Currently supported features include:

  • Moving the cursor within the Terminal
  • Changing foreground and background colors to whatever you want!
  • Shaking text
  • A text-parser that will make it easy to write whatever you want and make it look cool!
    • Parseable text example: "Hello, [fg=red]this is red[/fg] and [shake=1.0]this is shaking[/shake]."
  • Drawing of multiple text buffers (grids of text) on top of eachother
  • A menu system that allows for easy creation and usage of menus for selecting and pressing stuff! (See docs for more)
    • Requires the menu_systems optional feature to be enabled
  • Write any characters up to 16-bits that your font supports

Note: Requires OpenGL 3.3+ support

Table of Contents

How to use

Extensive documentation can be found at: docs.rs.

Just add the following line to your Cargo.toml:

[dependencies]
glerminal = "0.3"

And then using this crate is quite simple:

extern crate glerminal; // Not required if running 2018 edition

use glerminal::terminal::TerminalBuilder;
use glerminal::text_buffer::TextBuffer;

fn main() {
    let terminal = TerminalBuilder::new()
        .with_title("Hello GLerminal!")
        .with_dimensions((1280, 720))
        .build();
    let mut text_buffer;
    match TextBuffer::create(&terminal, (80, 24)) {
        Ok(buffer) => text_buffer = buffer,
        Err(error) => panic!(format!("Failed to initialize text buffer: {}", error)),
    }

    text_buffer.write("Hello, GLerminal!");
    terminal.flush(&mut text_buffer);

    while terminal.refresh() {
        terminal.draw(&text_buffer);
    }
}

What the example looks like

Custom font?

The default font that comes with GLerminal is a render of Source Code Pro and only includes a few more popular unicode blocks, to save space on the end product (the default font is compiled into the library).
The following blocks are included in the default font:

To make a custom font, you have to use either the BMFont standard / .fnt, or .sfl, and software that can produce such files are BMFont (can produce only .fnt), or Fontbuilder (can produce both).
The font image needs to be RGBA PNG.

It is advised to use Fontbuilder, as (at least after some testing) the png font images generated by BMFont (and their antialiasing) are sub-par compared to Fontbuilder, though Fontbuilder might be difficult to build on windows devices (It is possible with MinGW though).

Note If using Fontbuilder, it is highly recommended to use this fork as it contains a critical fix for .sfl font exporting.

After that it is advisable to look at glerminal font documentation on how a custom font is then loaded to use.

Contributing & Code of Conduct

You are welcome to contribute to this project, but before do review the Contributing guidelines.

A Code of Conduct can also be found in the repository as CODE_OF_CONDUCT.md, please review it before interacting with the community.

License

This crate is distributed under the terms of the MIT License.
This crate also uses a font as a default font, called Source Code Pro, which is distributed under the terms of SIL OFL Version 1.1.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].