Skip to content

Commit d0914a6

Browse files
committed
Update documentation
1 parent 9f79a26 commit d0914a6

3 files changed

Lines changed: 88 additions & 70 deletions

File tree

README.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,20 @@ This program is designed for programming video production purposes.
4040
To install these dependencies in Debian GNU/Linux, you can use this command:
4141
`apt-get install build-essential libsdl2-dev pkg-config libx11-dev googletest-tools lcov g++-12` (instead of 12, use what your system has available)
4242

43-
After checking out the code from Git, remember to do `git submodule update --init --recursive`.
43+
Check out the code from Git:
4444

45-
To compile, type `make`. To run, type `./term` after compiling.
45+
git clone https://github.com/bisqwit/that_terminal
46+
cd that_terminal
47+
git submodule update --init --recursive # Do not forget this step!
48+
49+
To compile, type `make -j4`. To run, type `./term` after compiling.
4650
Note that on the first start, the terminal may be slow to start,
4751
because it rebuilds the cache for fonts.
4852

49-
To build a debugging version, do `make term_debug`.
50-
To build a profiling version, do `make term_gprof`.
51-
To build a coverage testing version, do `make term_gcov`.
52-
To run unit tests, do `make test`.
53+
To build a debugging version, do `make term_debug`.
54+
To build a profiling version, do `make term_gprof`.
55+
To run unit+coverage tests, do `make test`.
56+
To build a manual coverage testing version, do `make term_gcov`.
5357

5458
__NOTE__: When compiling, you may get a “\__cur could be NULL” warning from
5559
the static analyzer of the compiler with reference to a vector<Cell>.

doc/architecture.md

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,17 @@
22

33
## Structure
44

5+
The structure of the program is divided into these primary components:
6+
* Main program
7+
* Terminal emulation
8+
* Graphics generation
9+
* File handling
10+
11+
Main program comprises the GUI and interface logic.
12+
Terminal emulation consists of processing a text-stream that contains special codes.
13+
Graphics generation consists of rendering text with various properties.
14+
File handling manages the different types of files that the program accesses.
15+
516
## User interface
617

718
The user interface of *that terminal* is comprised of a single graphical window.
@@ -35,7 +46,8 @@ and [Window](../src/rendering/window.cc).
3546
position, and provides a facility to render this state into a pixel-based
3647
buffer.
3748

38-
The [UI](../src/ui.cc) these these components together as follows:
49+
The [UI](../src/ui.cc) ties these components together as follows:
50+
3951
* Keyboard input is received by `UI` from the GUI, and `UI` sends it to the underlying process through `ForkPTY`.
4052
* `ForkPTY`'s output is sent to `TerminalWindow` for processing.
4153
* `TerminalWindow` updates the state of `Window`.
@@ -44,10 +56,10 @@ The [UI](../src/ui.cc) these these components together as follows:
4456
For rendering, `Window` needs fonts. For that it uses a `FontPlan`,
4557
which follows the following hierarchy:
4658

47-
[FontPlan](../src/rendering/fonts/font_planner.cc],
48-
[FontsInfo and ReadFonts](../src/rendering/fonts/read_fonts.cc],
49-
[GlyphList and ReadFont](../src/rendering/fonts/read_font.cc],
50-
[ParseSimilarities](../src/rendering/fonts/make_similarities.cc].
59+
[FontPlan](../src/rendering/fonts/font_planner.cc),
60+
[FontsInfo and ReadFonts](../src/rendering/fonts/read_fonts.cc),
61+
[GlyphList and ReadFont](../src/rendering/fonts/read_font.cc),
62+
[ParseSimilarities](../src/rendering/fonts/make_similarities.cc).
5163

5264
* `FontPlan` provides facilities for mapping every unicode codepoint into
5365
a bitmap. If font of the exact size cannot be found, it creates a bitmap
@@ -91,7 +103,7 @@ At runtime, *that terminal* looks for these files in the following paths:
91103

92104
Additionally, some files such as
93105
[UnicodeData.txt](../share/unicode/UnicodeData.txt)
94-
also looked for in:
106+
are also looked for in:
95107
* /usr/local/share/unicode/
96108
* /usr/share/unicode/
97109
as it is common for it to be found there.
@@ -102,8 +114,8 @@ The files that the terminal generates are saved in a user-specific local
102114
directory. *That terminal* attempts to use the following locations,
103115
whichever first turns out writable.
104116

105-
* $HOME/.cache/that_terminal/
106-
* /home/$USER/.cache/that_terminal/
107-
* /run/user/$UID/
108-
* /run/$UID/
109-
* $TEMP/that_terminal-$UID/
117+
* $HOME/.cache/that_terminal/
118+
* /home/$USER/.cache/that_terminal/
119+
* /run/user/$UID/
120+
* /run/$UID/
121+
* $TEMP/that_terminal-$UID/

doc/timeusage.md

Lines changed: 55 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,59 @@
1+
# Time used
2+
13
Approximate time tracking (based on Git logs, made because of Helsinki University requirements):
24

3-
* 2022-06-14 5h improving coverage, some refactoring
4-
* 2022-06-13 10h unit tests, to satisfy HY requirements
5-
* 2022-06-12 14h refactoring, documentation, to satisfy HY requirements
6-
* 2021-12-25 1h bugfixes
7-
* 2021-10-26 1h documentation
8-
* 2021-04-07 4h documentation
9-
* 2021-04-06 10h optimizations
10-
* 2021-04-04 7h improved SGR support, refactoring
11-
* 2021-04-02 16h optimizations
12-
* 2020-09-16 2h refactoring
13-
* 2020-09-01 1h bugfixes
14-
* 2020-07-11 2h autoinput features
15-
* 2020-04-25 1h font features
16-
* 2020-04-24 2h font features
17-
* 2020-04-22 1h bugfixes
18-
* 2020-04-21 1h bugfixes
19-
* 2020-04-20 1h bugfixes
20-
* 2020-04-19 3h font features
21-
* 2020-04-18 6h features, bugfixes
22-
* 2020-03-30 8h documentation on fonts, bugfixes
23-
* 2020-03-29 4h features, improvements on font usage
24-
* 2020-03-28 4h features, improvements on font usage
25-
* 2020-03-28 5h documentation on fonts
26-
* 2020-03-27 4h documentation on fonts
27-
* 2020-03-26 6h features, new fonts
28-
* 2020-03-25 7h features, new fonts
29-
* 2020-02-27 1h features
30-
* 2019-12-23 1h features
31-
* 2019-09-08 1h bugfixes
32-
* 2019-06-04 4h video recording support updates
33-
* 2019-05-06 3h scrollbar render hack
34-
* 2019-05-04 1h bugfixes
35-
* 2019-05-01 3h documentation, bugfixes
36-
* 2019-04-29 2h design / implementation, livestreamed on YouTube (part 6)
37-
* 2019-04-26 3h documentation, more complete vt support
38-
* 2019-04-25 2h documentation, bugfixes
39-
* 2019-04-24 12h documentation, improved SGR support
40-
* 2019-04-23 7h documentation
41-
* 2019-04-22 11h coding (fonts and encodings)
42-
* 2019-04-18 1h coding
43-
* 2019-04-17 5h coding
44-
* 2019-04-16 2h coding (OSC & DCS commands)
45-
* 2019-04-15 1h documentation (Sixel support)
46-
* 2019-04-14 4h documentation & coding
47-
* 2019-04-13 10h design / implementation
48-
* 2019-04-13 3h design / implementation, livestreamed on YouTube (part 5)
49-
* 2019-04-11 5h design / implementation
50-
* 2019-04-10 3h design / implementation, livestreamed on YouTube (part 4)
51-
* 2019-04-07 3h design / implementation, livestreamed on YouTube (part 3)
52-
* 2019-04-02 2h design / implementation, livestreamed on YouTube (prat 2)
53-
* 2019-03-31 3h design / implementation, livestreamed on YouTube (part 1)
5+
total: 220h
546

55-
(grep '^[*]' doc/timeusage.md|cut -c13-15|tr -d ' '|tr '\012' +;echo 0)|bc -l
7+
(grep '^ 2' doc/timeusage.md|cut -c15-17|tr -d ' '|tr '\012' +;echo 0)|bc -l
568

57-
total: 214h
9+
2022-06-14 6h improving coverage, some refactoring
10+
2022-06-13 10h unit tests, to satisfy HY requirements
11+
2022-06-12 14h refactoring, documentation, to satisfy HY requirements
12+
2021-12-25 1h bugfixes
13+
2021-10-26 1h documentation
14+
2021-04-07 4h documentation
15+
2021-04-06 10h optimizations
16+
2021-04-04 7h improved SGR support, refactoring
17+
2021-04-02 16h optimizations
18+
2020-09-16 2h refactoring
19+
2020-09-01 1h bugfixes
20+
2020-07-11 2h autoinput features
21+
2020-04-25 1h font features
22+
2020-04-24 2h font features
23+
2020-04-22 1h bugfixes
24+
2020-04-21 1h bugfixes
25+
2020-04-20 1h bugfixes
26+
2020-04-19 3h font features
27+
2020-04-18 6h features, bugfixes
28+
2020-03-30 8h documentation on fonts, bugfixes
29+
2020-03-29 4h features, improvements on font usage
30+
2020-03-28 4h features, improvements on font usage
31+
2020-03-28 5h documentation on fonts
32+
2020-03-27 4h documentation on fonts
33+
2020-03-26 6h features, new fonts
34+
2020-03-25 7h features, new fonts
35+
2020-02-27 1h features
36+
2019-12-23 1h features
37+
2019-09-08 1h bugfixes
38+
2019-06-04 4h video recording support updates
39+
2019-05-06 3h scrollbar render hack
40+
2019-05-04 1h bugfixes
41+
2019-05-01 3h documentation, bugfixes
42+
2019-04-29 2h design / implementation, livestreamed on YouTube (part 6)
43+
2019-04-26 3h documentation, more complete vt support
44+
2019-04-25 2h documentation, bugfixes
45+
2019-04-24 12h documentation, improved SGR support
46+
2019-04-23 7h documentation
47+
2019-04-22 11h coding (fonts and encodings)
48+
2019-04-18 1h coding
49+
2019-04-17 5h coding
50+
2019-04-16 2h coding (OSC & DCS commands)
51+
2019-04-15 1h documentation (Sixel support)
52+
2019-04-14 4h documentation & coding
53+
2019-04-13 10h design / implementation
54+
2019-04-13 3h design / implementation, livestreamed on YouTube (part 5)
55+
2019-04-11 5h design / implementation
56+
2019-04-10 3h design / implementation, livestreamed on YouTube (part 4)
57+
2019-04-07 3h design / implementation, livestreamed on YouTube (part 3)
58+
2019-04-02 2h design / implementation, livestreamed on YouTube (prat 2)
59+
2019-03-31 3h design / implementation, livestreamed on YouTube (part 1)

0 commit comments

Comments
 (0)