AnsiGL Code
A modern "graphics" API for text-based applications
Status: Pre-Alpha
Brought to you by:
nicrohobak
File | Date | Author | Commit |
---|---|---|---|
AnsiGL_test | 2013-12-04 |
![]() |
[8e9365] Code Cleanup |
m4 | 2012-01-13 |
![]() |
[3c6567] AnsiGL initial commit. |
src | 2014-03-21 |
![]() |
[e8deed] New functionality: String<> types can now strea... |
AUTHORS | 2012-01-13 |
![]() |
[3c6567] AnsiGL initial commit. |
COPYING | 2012-01-13 |
![]() |
[3c6567] AnsiGL initial commit. |
ChangeLog | 2012-01-13 |
![]() |
[3c6567] AnsiGL initial commit. |
INSTALL | 2012-01-13 |
![]() |
[3c6567] AnsiGL initial commit. |
Makefile.am | 2012-01-13 |
![]() |
[3c6567] AnsiGL initial commit. |
NEWS | 2012-01-13 |
![]() |
[3c6567] AnsiGL initial commit. |
README | 2012-09-03 |
![]() |
[05dfdd] README update. |
ansigl_icon.png | 2012-01-13 |
![]() |
[91c182] Added a placeholder icon to the project. It's ... |
configure.ac | 2012-01-27 |
![]() |
[1a9eb0] New additions: |
AnsiGL -- A string "graphics" library TODO: Create proper documentation! Things that work: uchar - A unicode-aware 'char', effectively ustring - A std::string-like implementation based on uchar instead of char achar - An ANSI-enabled 'uchar' astring - A std::string-like implementation based on achar instead of char or uchar Point2D - A simple (x,y) coordinate class Area2D - Effectively identical to point in that its just 2 integers, only these are Width and Height instead of coordinates FixedArea2D - An Area2D with a Point2D "fixing" it to a location in space Point3D - A simple (x,y,z) coordinate class Area3D - Effectively identical to point in that its just 3 integers, only these are Width, Height and Depth instead of coordinates FixedArea3D - An Area3D with a Point3D "fixing" it to a location in space Pixel - A specialized achar that serves as the basis for a Surface Surface - The most-basic (meaningful) rendering context of AnsiGL Content - An interface for being placed within a Context Context - A collection of content within a specific space; based upon Content so rendering contexts can be nested Image - A content-based surface Window - A context with a decorated viewport (Note: This is the only "violation" of the 'Things that work' label... Coming with the next update though...) ansigl_ncurses - A separate (optional) extension library to provide better ncurses integration (AnsiGL should probably not ever implement input handling/etc.) - Mostly a simple collection of functions for ncurses compatibility - The most notable is RenderToNcurses() to render a Surface out to an ncurses WINDOW (usually stdscr). - It is recommended to use ncurses with wide character support in order to display unicode - Note: AnsiGL supports more ANSI codes than ncurses (and most terminals). In addition, nearly every terminal tested without ncurses has performed very differently in terms of which ANSI codes are supported. This is probably why the ncurses team didn't bother, but since they have already been added, there's no real need to remove them since they do function appropriately. Known issues: - None currently (worth noting here, at least) Things that are planned: TextWindow - A Window with alignment/word-wrap/formatting options for text InputWindow - A specialized TextWindow for echoing input ChatWindow - A TextWindow with an InputWindow attached under it, essentially Desktop - A specialized Window for managing multiple Windows within it Something akin to the Panel library of ncurses Other misc. plans: - Animations; probably something like vector< Sprite > with functions to set the current frame, advance frames, etc. Nearly everything but timing. - Some sort of an optionally stand-alone or integrated timing mechanism for animations? - More "drawing" functions - Menus and other useful "widgets" For the time being, until proper documentation can be created, the recomendation is to use the header files for guidance. This file, along with the other "standard" GNU documentation and "official" documentation are on the todo list. They will be started soon and standard practice will be to update documentation at the time of changes that cause any documents to be out of date.