bterm's Introduction
This distribution consists of a few different libraries (BOGL, BOML, BOWL), a Linux 2.2.x kernel patch, and a couple of test programs. BOGL stands for Ben's Own Graphics Library. It is a tiny graphics library for kernel 2.2.x framebuffers. It supports only very simple graphics. For instance, it lacks clipping, nonorthogonal lines, multiple brushes/pens, and so on. It does, however, support the following: - Horizontal and vertical lines - Rectangles - Solid rectangular fill - Proportional fonts - Pixmap drawing - Palette setting - Redraw notification on console switch Though meager, this is plenty to implement a simple graphical user interface, which is what BOWL (Ben's Own Window Library) does. BOWL supports the following: - A single, modal, fixed-width on-screen window - Text boxes contained auto-flowed proportional text - Command buttons - Input boxes - Menus - Check boxes - Completion bars BOML, Ben's Own Mouse Library, provides mouse support for BOGL. It is experimental; its mouse detection algorithms may be fragile. Please report success/failure. Somewhat unsurprisingly, this is exactly the list of features needed to install Debian GNU/Linux. Source files: Makefile: Makefile to compile the library and test programs. bdftobogl: A Perl program to translate any X Window System .bdf font file into a .c file that, when compiled and linked to a program using the BOGL library, can be used for text output. bogl-test.c: A simple test program for the BOGL library. Run it for a usage message. bogl-vga16.c, bogl-vga16.h: An implementation of BOGL device-specific functions for EGA/VGA 16-color modes, for use with the included 2.2 kernel framebuffer driver. bogl-cfb.h: private header, contains inline functions used by the packed-pixel drivers. bogl-pcfb.c, bogl-pcfb.h: BOGL driver for pseudocolor packed pixel modes. bogl-tcfb.c, bogl-tcfb.h: BOGL driver for true/directcolor packed pixel modes. bogl.c: BOGL main library implementation. bogl.h: BOGL public header. boglP.h: BOGL private header, for internal library use only. boml.h, boml.c: Ben's Own Mouse Library. bowl.h, bowl.c: Ben's Own Window Library. bowl-boxes.c: The beginnings of a compatible replacement for Debian boot-floppies boxes.c, using BOWL instead of newt. Currently a BOWL test program; see the source for details. boxes.c, boxes.h: From Debian boot-floppies. giftobogl.c: A program to translate any .gif pixmap with 16 colors or fewer into a .c run-length encoded format that, when compiled and linked to a program using the BOGL library, can be displayed by BOGL. kernel.patch: A patch against Linux kernel 2.2.x that adds a 16-color EGA/VGA framebuffer driver. By Ben Pfaff and Petr Vandrovec. *.bdf: Some fonts from the X Window System distribution for use with BOGL programs. *.gif: Some pixmaps for testing. Miscellaneous info: * Source files are written in GNU C, not ANSI C, using Linux- and gcc-specific features. Since BOGL targets Linux framebuffers, this should not be a problem. * There are no plans to support non-framebuffer graphics setups. It would be much more complicated since this effectively forces putting the kernel framebuffer driver into the program. Yuck. I'm writing a graphics and window library, not an X server :-) * All comments and suggestions are welcome. Local Variables: mode: text End:
bterm's People
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.