Skip to content

Commit 1a75416

Browse files
committed
Add missing block elements (include all 0x2580-0x259F)
1 parent ca4c9c3 commit 1a75416

File tree

1 file changed

+38
-23
lines changed

1 file changed

+38
-23
lines changed

src/browser/renderer/CustomGlyphs.ts

Lines changed: 38 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,40 @@ interface IBlockVector {
1313
}
1414

1515
export const blockElementDefinitions: { [index: string]: IBlockVector[] | undefined } = {
16-
'▀': [{ x: 0, y: 0, w: 8, h: 4 }],
17-
'█': [{ x: 0, y: 0, w: 8, h: 8 }],
18-
'▇': [{ x: 0, y: 1, w: 8, h: 7 }],
19-
'▆': [{ x: 0, y: 2, w: 8, h: 6 }],
20-
'▅': [{ x: 0, y: 3, w: 8, h: 5 }],
21-
'▄': [{ x: 0, y: 4, w: 8, h: 4 }],
22-
'▃': [{ x: 0, y: 5, w: 8, h: 3 }],
23-
'▂': [{ x: 0, y: 6, w: 8, h: 2 }],
24-
'▁': [{ x: 0, y: 7, w: 8, h: 1 }],
25-
'▉': [{ x: 0, y: 0, w: 7, h: 8 }],
26-
'▊': [{ x: 0, y: 0, w: 6, h: 8 }],
27-
'▋': [{ x: 0, y: 0, w: 5, h: 8 }],
28-
'▌': [{ x: 0, y: 0, w: 4, h: 8 }],
29-
'▍': [{ x: 0, y: 0, w: 3, h: 8 }],
30-
'▎': [{ x: 0, y: 0, w: 2, h: 8 }],
31-
'▏': [{ x: 0, y: 0, w: 1, h: 8 }],
16+
// Block elements (0x2580-0x2590)
17+
'▀': [{ x: 0, y: 0, w: 8, h: 4 }], // UPPER HALF BLOCK
18+
'▁': [{ x: 0, y: 7, w: 8, h: 1 }], // LOWER ONE EIGHTH BLOCK
19+
'▂': [{ x: 0, y: 6, w: 8, h: 2 }], // LOWER ONE QUARTER BLOCK
20+
'▃': [{ x: 0, y: 5, w: 8, h: 3 }], // LOWER THREE EIGHTHS BLOCK
21+
'▄': [{ x: 0, y: 4, w: 8, h: 4 }], // LOWER HALF BLOCK
22+
'▅': [{ x: 0, y: 3, w: 8, h: 5 }], // LOWER FIVE EIGHTHS BLOCK
23+
'▆': [{ x: 0, y: 2, w: 8, h: 6 }], // LOWER THREE QUARTERS BLOCK
24+
'▇': [{ x: 0, y: 1, w: 8, h: 7 }], // LOWER SEVEN EIGHTHS BLOCK
25+
'█': [{ x: 0, y: 0, w: 8, h: 8 }], // FULL BLOCK
26+
'▉': [{ x: 0, y: 0, w: 7, h: 8 }], // LEFT SEVEN EIGHTHS BLOCK
27+
'▊': [{ x: 0, y: 0, w: 6, h: 8 }], // LEFT THREE QUARTERS BLOCK
28+
'▋': [{ x: 0, y: 0, w: 5, h: 8 }], // LEFT FIVE EIGHTHS BLOCK
29+
'▌': [{ x: 0, y: 0, w: 4, h: 8 }], // LEFT HALF BLOCK
30+
'▍': [{ x: 0, y: 0, w: 3, h: 8 }], // LEFT THREE EIGHTHS BLOCK
31+
'▎': [{ x: 0, y: 0, w: 2, h: 8 }], // LEFT ONE QUARTER BLOCK
32+
'▏': [{ x: 0, y: 0, w: 1, h: 8 }], // LEFT ONE EIGHTH BLOCK
33+
'▐': [{ x: 4, y: 0, w: 4, h: 8 }], // RIGHT HALF BLOCK
34+
35+
// Block elements (0x2594-0x2595)
36+
'▔': [{ x: 0, y: 0, w: 9, h: 1 }], // UPPER ONE EIGHTH BLOCK
37+
'▕': [{ x: 7, y: 0, w: 1, h: 8 }], // RIGHT ONE EIGHTH BLOCK
38+
39+
// Terminal graphic characters (0x2596-0x259F)
40+
'▖': [{ x: 0, y: 4, w: 4, h: 4 }], // QUADRANT LOWER LEFT
41+
'▗': [{ x: 4, y: 4, w: 4, h: 4 }], // QUADRANT LOWER RIGHT
42+
'▘': [{ x: 0, y: 0, w: 4, h: 4 }], // QUADRANT UPPER LEFT
43+
'▙': [{ x: 0, y: 0, w: 4, h: 8 }, { x: 0, y: 4, w: 8, h: 4 }], // QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT
44+
'▚': [{ x: 0, y: 0, w: 4, h: 4 }, { x: 4, y: 4, w: 4, h: 4 }], // QUADRANT UPPER LEFT AND LOWER RIGHT
45+
'▛': [{ x: 0, y: 0, w: 4, h: 8 }, { x: 0, y: 0, w: 4, h: 8 }], // QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT
46+
'▜': [{ x: 0, y: 0, w: 8, h: 4 }, { x: 4, y: 0, w: 4, h: 8 }], // QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT
47+
'▝': [{ x: 4, y: 0, w: 4, h: 4 }], // QUADRANT UPPER RIGHT
48+
'▞': [{ x: 4, y: 0, w: 4, h: 4 }, { x: 0, y: 4, w: 4, h: 4 }], // QUADRANT UPPER RIGHT AND LOWER LEFT
49+
'▟': [{ x: 4, y: 0, w: 4, h: 8 }, { x: 0, y: 4, w: 8, h: 4 }], // QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
3250

3351
// VERTICAL ONE EIGHTH BLOCK-2 through VERTICAL ONE EIGHTH BLOCK-7
3452
'\u{1FB70}': [{ x: 1, y: 0, w: 1, h: 8 }],
@@ -37,11 +55,7 @@ export const blockElementDefinitions: { [index: string]: IBlockVector[] | undefi
3755
'\u{1FB73}': [{ x: 4, y: 0, w: 1, h: 8 }],
3856
'\u{1FB74}': [{ x: 5, y: 0, w: 1, h: 8 }],
3957
'\u{1FB75}': [{ x: 6, y: 0, w: 1, h: 8 }],
40-
// RIGHT ONE EIGHTH BLOCK
41-
'▕': [{ x: 7, y: 0, w: 1, h: 8 }],
4258

43-
// UPPER ONE EIGHTH BLOCK
44-
'▔': [{ x: 0, y: 0, w: 8, h: 1 }],
4559
// HORIZONTAL ONE EIGHTH BLOCK-2 through HORIZONTAL ONE EIGHTH BLOCK-7
4660
'\u{1FB76}': [{ x: 0, y: 1, w: 8, h: 1 }],
4761
'\u{1FB77}': [{ x: 0, y: 2, w: 8, h: 1 }],
@@ -110,19 +124,20 @@ type PatternDefinition = number[][];
110124
* pixel values to be filled (1) or not filled (0).
111125
*/
112126
const patternCharacterDefinitions: { [key: string]: PatternDefinition | undefined } = {
113-
'░': [
127+
// Shade characters (0x2591-0x2593)
128+
'░': [ // LIGHT SHADE (25%)
114129
[1, 0, 0, 0],
115130
[0, 0, 0, 0],
116131
[0, 0, 1, 0],
117132
[0, 0, 0, 0]
118133
],
119-
'▒': [
134+
'▒': [ // MEDIUM SHADE (50%)
120135
[1, 0],
121136
[0, 0],
122137
[0, 1],
123138
[0, 0]
124139
],
125-
'▓': [
140+
'▓': [ // DARK SHADE (75%)
126141
[0, 1],
127142
[1, 1],
128143
[1, 0],

0 commit comments

Comments
 (0)