aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 728a63728d9bda744c8ad5048220871ecb59ef1f (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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# C99 libraries for gamedev and high quality programs.

# Ungrateful


# Note:

Only core features of C99 were used:

- stdint;
- normal comments;
- no implicit function declarations and int;
- long long;
- restrict keyword;

# Compile flags

```
# clang gcc
-std=c99 -lm -ffast-math

# cl (i guess right now)

/std:c99 /fp:fast
```

# Ungrateful

Note: we need to manipulate register of SSE so we disable subnormals (Flush to zero).

Types, Strings, basic memory allocators (platform specific), and so on. Features:

+ Memory allocation;
+ Strings;
+ easing;
- splines (qubic);
- vecs/ivec;
- matrix;
- Quaternions;
- raycasting;
- Random;
- Noises;
- Compression;
- Wide strings, u16/u32;
- Sorting;
- Memory debugging;

# Cynic

Platform layer for abstracting basic functionality, like loading libraries or threading. Features:

- Library loading;
- Threading;
- non-blocking logging;
- Clocks;
- File IO;
- Configurations;
- Internal compressable filesystem for speeding up IO work;

# Visage

Plugin based Input-Output layer (Audio, Keyboard, Video):

- Plugin API for audio and video;
- OpenGL;
- OpenGLES;
- DirectX;
- Vulkan;

# Disgrace

Networking library:

- TCP;
- UDP;
- Packing;