summaryrefslogtreecommitdiff
path: root/README
blob: 3c933a8abe818d442f1c0e3204c8959c6668dfd4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
femtokit
========

Femtokit is a graphical user interface toolkit. In other words, it provides an abstraction to the programmer in order to create graphical user interfaces without the need of manually manipulating the graphics primitives.

The name "Femtokit" is a wordplay between *femto* (a really small order of magnitude in the SI prefixes, 10^-15 to be exact) and *"tokit"*, an abbreviation of "toolkit".

Goals
-----

The main goal of Femtokit is providing a *comfortable level of abstraction* over the raw graphics programming primitives, while also not sacrificing *freedom* (what the user can achieve) or *minimal resource usage*.

Other goals of Femtokit include the following:

- Portability (being able to run on as many platforms as possible with little or no modification).
- Tying code as little as possible to third-party software or hardware. In other words, using mostly what's expected to be present in the end user's machine, both software-wise and hardware-wise.

Compilation and usage
---------------------

As I may have said somewhere else, you need **OpenGL** (development version, that with header files) and **freeGLUT** (development version for this one as well).

Using the make file in the repository's root:

- **`make`** builds all the translation units, skipping those which have been built already.
- **`make install`** moves all object files to the respective directories in the machine's file system.
- **`make uninstall`** removes all object files from the machine's file system.
- **`make clean`** removes all object files produced by `make` from the repository's directory.

The ultimate object file is a library called `libfemtokit`, which is 

Repository structure
--------------------

The repository's root directory contains almost everything, including the source code, a header file with definitions for all symbols, and a make file.

Sub-directories contain secondary files and directories like scripts, images, data files, documentation, manual pages, et cetera.

Aesthetics
----------

Follow the aesthetics.

License (or "Can I steal your code?")
--------------------------------------

Unlicense, see LICENSE. (Yes.)