Cube  Diff

Differences From Artifact [c20068be3f]:

To Artifact [d117eaf6b5]:


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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
// rendertext.cpp: based on Don's gl_text.cpp

#include "cube.h"

short char_coords[96][4] = {
    {0, 0, 25, 64},       //!
    {25, 0, 54, 64},      //"
    {54, 0, 107, 64},     // #
    {107, 0, 148, 64},    //$
    {148, 0, 217, 64},    //%
    {217, 0, 263, 64},    //&
    {263, 0, 280, 64},    //'
    {280, 0, 309, 64},    //(
    {309, 0, 338, 64},    //)
    {338, 0, 379, 64},    //*
    {379, 0, 432, 64},    //+
    {432, 0, 455, 64},    //,
    {455, 0, 484, 64},    //-
    {0, 64, 21, 128},     //.
    {23, 64, 52, 128},    ///
    {52, 64, 93, 128},    // 0
    {93, 64, 133, 128},   // 1
    {133, 64, 174, 128},  // 2
    {174, 64, 215, 128},  // 3
    {215, 64, 256, 128},  // 4
    {256, 64, 296, 128},  // 5
    {296, 64, 337, 128},  // 6
    {337, 64, 378, 128},  // 7
    {378, 64, 419, 128},  // 8
    {419, 64, 459, 128},  // 9
    {459, 64, 488, 128},  //:
    {0, 128, 29, 192},    //;
    {29, 128, 81, 192},   //<
    {81, 128, 134, 192},  //=
    {134, 128, 186, 192}, //>
    {186, 128, 221, 192}, //?
    {221, 128, 285, 192}, //@
    {285, 128, 329, 192}, // A
    {329, 128, 373, 192}, // B
    {373, 128, 418, 192}, // C
    {418, 128, 467, 192}, // D
    {0, 192, 40, 256},    // E
    {40, 192, 77, 256},   // F
    {77, 192, 127, 256},  // G
    {127, 192, 175, 256}, // H
    {175, 192, 202, 256}, // I
    {202, 192, 231, 256}, // J
    {231, 192, 275, 256}, // K
    {275, 192, 311, 256}, // L
    {311, 192, 365, 256}, // M
    {365, 192, 413, 256}, // N
    {413, 192, 463, 256}, // O
    {1, 256, 38, 320},    // P
    {38, 256, 89, 320},   // Q
    {89, 256, 133, 320},  // R
    {133, 256, 176, 320}, // S
    {177, 256, 216, 320}, // T
    {217, 256, 263, 320}, // U
    {263, 256, 307, 320}, // V
    {307, 256, 370, 320}, // W
    {370, 256, 414, 320}, // X
    {414, 256, 453, 320}, // Y
    {453, 256, 497, 320}, // Z
    {0, 320, 29, 384},    //[
    {29, 320, 58, 384},   //"\"
    {59, 320, 87, 384},   //]
    {87, 320, 139, 384},  //^
    {139, 320, 180, 384}, //_
    {180, 320, 221, 384}, //`
    {221, 320, 259, 384}, // a
    {259, 320, 299, 384}, // b
    {299, 320, 332, 384}, // c
    {332, 320, 372, 384}, // d
    {372, 320, 411, 384}, // e
    {411, 320, 433, 384}, // f
    {435, 320, 473, 384}, // g
    {0, 384, 40, 448},    // h
    {40, 384, 56, 448},   // i
    {58, 384, 80, 448},   // j
    {80, 384, 118, 448},  // k
    {118, 384, 135, 448}, // l
    {135, 384, 197, 448}, // m
    {197, 384, 238, 448}, // n
    {238, 384, 277, 448}, // o
    {277, 384, 317, 448}, // p
    {317, 384, 356, 448}, // q
    {357, 384, 384, 448}, // r
    {385, 384, 417, 448}, // s
    {417, 384, 442, 448}, // t
    {443, 384, 483, 448}, // u
    {0, 448, 38, 512},    // v
    {38, 448, 90, 512},   // w
    {90, 448, 128, 512},  // x
    {128, 448, 166, 512}, // y
    {166, 448, 200, 512}, // z
    {200, 448, 241, 512}, //{
    {241, 448, 270, 512}, //|
    {270, 448, 310, 512}, //}
    {310, 448, 363, 512}, //~
};

int
text_width(OFString *string)
{
	@autoreleasepool {
		const char *str = string.UTF8String;





|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|







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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
// rendertext.cpp: based on Don's gl_text.cpp

#include "cube.h"

short char_coords[96][4] = {
	{ 0, 0, 25, 64 },       //!
	{ 25, 0, 54, 64 },      //"
	{ 54, 0, 107, 64 },     // #
	{ 107, 0, 148, 64 },    //$
	{ 148, 0, 217, 64 },    //%
	{ 217, 0, 263, 64 },    //&
	{ 263, 0, 280, 64 },    //'
	{ 280, 0, 309, 64 },    //(
	{ 309, 0, 338, 64 },    //)
	{ 338, 0, 379, 64 },    //*
	{ 379, 0, 432, 64 },    //+
	{ 432, 0, 455, 64 },    //,
	{ 455, 0, 484, 64 },    //-
	{ 0, 64, 21, 128 },     //.
	{ 23, 64, 52, 128 },    ///
	{ 52, 64, 93, 128 },    // 0
	{ 93, 64, 133, 128 },   // 1
	{ 133, 64, 174, 128 },  // 2
	{ 174, 64, 215, 128 },  // 3
	{ 215, 64, 256, 128 },  // 4
	{ 256, 64, 296, 128 },  // 5
	{ 296, 64, 337, 128 },  // 6
	{ 337, 64, 378, 128 },  // 7
	{ 378, 64, 419, 128 },  // 8
	{ 419, 64, 459, 128 },  // 9
	{ 459, 64, 488, 128 },  //:
	{ 0, 128, 29, 192 },    //;
	{ 29, 128, 81, 192 },   //<
	{ 81, 128, 134, 192 },  //=
	{ 134, 128, 186, 192 }, //>
	{ 186, 128, 221, 192 }, //?
	{ 221, 128, 285, 192 }, //@
	{ 285, 128, 329, 192 }, // A
	{ 329, 128, 373, 192 }, // B
	{ 373, 128, 418, 192 }, // C
	{ 418, 128, 467, 192 }, // D
	{ 0, 192, 40, 256 },    // E
	{ 40, 192, 77, 256 },   // F
	{ 77, 192, 127, 256 },  // G
	{ 127, 192, 175, 256 }, // H
	{ 175, 192, 202, 256 }, // I
	{ 202, 192, 231, 256 }, // J
	{ 231, 192, 275, 256 }, // K
	{ 275, 192, 311, 256 }, // L
	{ 311, 192, 365, 256 }, // M
	{ 365, 192, 413, 256 }, // N
	{ 413, 192, 463, 256 }, // O
	{ 1, 256, 38, 320 },    // P
	{ 38, 256, 89, 320 },   // Q
	{ 89, 256, 133, 320 },  // R
	{ 133, 256, 176, 320 }, // S
	{ 177, 256, 216, 320 }, // T
	{ 217, 256, 263, 320 }, // U
	{ 263, 256, 307, 320 }, // V
	{ 307, 256, 370, 320 }, // W
	{ 370, 256, 414, 320 }, // X
	{ 414, 256, 453, 320 }, // Y
	{ 453, 256, 497, 320 }, // Z
	{ 0, 320, 29, 384 },    //[
	{ 29, 320, 58, 384 },   //"\"
	{ 59, 320, 87, 384 },   //]
	{ 87, 320, 139, 384 },  //^
	{ 139, 320, 180, 384 }, //_
	{ 180, 320, 221, 384 }, //`
	{ 221, 320, 259, 384 }, // a
	{ 259, 320, 299, 384 }, // b
	{ 299, 320, 332, 384 }, // c
	{ 332, 320, 372, 384 }, // d
	{ 372, 320, 411, 384 }, // e
	{ 411, 320, 433, 384 }, // f
	{ 435, 320, 473, 384 }, // g
	{ 0, 384, 40, 448 },    // h
	{ 40, 384, 56, 448 },   // i
	{ 58, 384, 80, 448 },   // j
	{ 80, 384, 118, 448 },  // k
	{ 118, 384, 135, 448 }, // l
	{ 135, 384, 197, 448 }, // m
	{ 197, 384, 238, 448 }, // n
	{ 238, 384, 277, 448 }, // o
	{ 277, 384, 317, 448 }, // p
	{ 317, 384, 356, 448 }, // q
	{ 357, 384, 384, 448 }, // r
	{ 385, 384, 417, 448 }, // s
	{ 417, 384, 442, 448 }, // t
	{ 443, 384, 483, 448 }, // u
	{ 0, 448, 38, 512 },    // v
	{ 38, 448, 90, 512 },   // w
	{ 90, 448, 128, 512 },  // x
	{ 128, 448, 166, 512 }, // y
	{ 166, 448, 200, 512 }, // z
	{ 200, 448, 241, 512 }, //{
	{ 241, 448, 270, 512 }, //|
	{ 270, 448, 310, 512 }, //}
	{ 310, 448, 363, 512 }, //~
};

int
text_width(OFString *string)
{
	@autoreleasepool {
		const char *str = string.UTF8String;