blob: 46f7a15d46b1142d7b6379e861a0b9b71543064d (
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
77
78
79
80
|
# 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
Todo: we need to manipulate register of SSE so we disable subnormals (Flush to zero).
You should compile library and program with `UN_DOUBLE_PRECISION` if you want to make `real` type -- 64 bit float (aka don't define it in code).
Types, Strings, basic memory allocators (platform specific), and so on. Features:
+ Memory allocation;
+ Strings;
+ easing;
+ vecs;
+ splines (qubic);
Todo:
- 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;
|