1.8 KiB
1.8 KiB
unigi
unigi (Universal Graphics & Input) is a collection of headers, that implement a cross-platform API for drawing to the screen (framebuffer or window), and taking inputs (keyboard, mouse, joypad).
This repository contains documentation, links and example applications.
Compatibility
- Highly compatible with compilers (C89, simple preprocessors)
- No
make
required, entirely configurable from your compiler, or header files - Supports wide range of hardware (16-bit+, little/big endian)
- Standardized 16-bit color format (AAAARRRRGGGGBBBB, effectively 12-bit on most platforms)
- Screen coordinates are standardized
- Decent performance (Though some performance is sacrificed for standardization)
Layers
A unigi app is built from different layers:
- Headers - The functions to be implemented by the Platform
- Platform - Implements the functions from Headers to work on a particular system (see below for a list)
- ... - Optionally, more layers
- App - Your code, uses other layers for input/output
Platforms
Platforms act as the translation layer for different systems. The idea is to minimize the amount of work it takes to port graphical applications.
Official platforms
- SDL1 - The highly compatible SDL 1.2, works on old Linux and Windows 95+
- SDL2 (soon) - SDL 2.x, works on somewhat recent Linux and Windows XP+
- DOS (soon) - DOS (Disk Operating System), compatible with FreeDOS and MS-DOS
- PSP (soon) - PlayStation Portable gaming console
- Null (soon) - A placeholder that does "nothing", good if you want to test basic compilation for an unsupported platform
Third party platforms
...