[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [ft] Glitchy stroker output
From: |
Stephan T. Lavavej |
Subject: |
RE: [ft] Glitchy stroker output |
Date: |
Wed, 17 Sep 2008 01:40:29 -0700 |
Actually, I decided to take a closer look at the border outline. I massively
simplified the repro, transforming it into plain old C, and made it print
out the core and border outlines as well as the core and border spans.
http://stl.nuwen.net/pub/freetype/repro3.c
Note that I've switched to obtaining only the outside border, with
FT_Glyph_StrokeBorder(&myglyph, mystroker, 0, 1), in order to simplify the
output.
For convenience, I've included the full output at the end of this mail.
The border spans are still mangled, as you can observe from the output:
coverage 254 | y 5 | x [-27, -27]
coverage 255 | y 5 | x [-26, 20]
coverage 253 | y 5 | x [ 21, 21]
This extends to the x=21 pixel, just like before, which isn't far enough.
The border outline actually extends to the x=48 pixel:
points[0] = (48, 5) on the curve
points[1] = (48, 13) second-order control
points[2] = (45, 19) on the curve
points[3] = (42, 26) second-order control
points[4] = (37, 32) on the curve
I do observe some differences between the core outline and the border
outline; namely, the core outline has different tags (with undocumented bits
set) and different flags, and a different arrangement of control points -
two second-order control points between each pair of on-the-curve points. I
don't know if any of these differences are significant.
If there's anything else that I can do to help, please let me know.
Thanks,
Stephan T. Lavavej
[BEGIN]
n_contours = 1
n_points = 12
points[0] = (18, 5) UNKNOWN(9)
points[1] = (18, 2) second-order control
points[2] = (13, -2) second-order control
points[3] = (10, -2) UNKNOWN(17)
points[4] = (7, -2) second-order control
points[5] = (3, 2) second-order control
points[6] = (3, 5) UNKNOWN(9)
points[7] = (3, 8) second-order control
points[8] = (7, 13) second-order control
points[9] = (10, 13) UNKNOWN(17)
points[10] = (13, 13) second-order control
points[11] = (18, 8) second-order control
contours[0] = 11
flags = 8
coverage 4 | y -2 | x [ 6, 6]
coverage 94 | y -2 | x [ 7, 7]
coverage 186 | y -2 | x [ 8, 8]
coverage 237 | y -2 | x [ 9, 9]
coverage 253 | y -2 | x [ 10, 10]
coverage 237 | y -2 | x [ 11, 11]
coverage 187 | y -2 | x [ 12, 12]
coverage 97 | y -2 | x [ 13, 13]
coverage 4 | y -2 | x [ 14, 14]
coverage 34 | y -1 | x [ 5, 5]
coverage 206 | y -1 | x [ 6, 6]
coverage 255 | y -1 | x [ 7, 13]
coverage 208 | y -1 | x [ 14, 14]
coverage 34 | y -1 | x [ 15, 15]
coverage 33 | y 0 | x [ 4, 4]
coverage 230 | y 0 | x [ 5, 5]
coverage 255 | y 0 | x [ 6, 14]
coverage 230 | y 0 | x [ 15, 15]
coverage 32 | y 0 | x [ 16, 16]
coverage 3 | y 1 | x [ 3, 3]
coverage 204 | y 1 | x [ 4, 4]
coverage 255 | y 1 | x [ 5, 15]
coverage 200 | y 1 | x [ 16, 16]
coverage 2 | y 1 | x [ 17, 17]
coverage 94 | y 2 | x [ 3, 3]
coverage 255 | y 2 | x [ 4, 16]
coverage 88 | y 2 | x [ 17, 17]
coverage 187 | y 3 | x [ 3, 3]
coverage 255 | y 3 | x [ 4, 16]
coverage 181 | y 3 | x [ 17, 17]
coverage 238 | y 4 | x [ 3, 3]
coverage 255 | y 4 | x [ 4, 16]
coverage 235 | y 4 | x [ 17, 17]
coverage 253 | y 5 | x [ 3, 3]
coverage 255 | y 5 | x [ 4, 16]
coverage 252 | y 5 | x [ 17, 17]
coverage 237 | y 6 | x [ 3, 3]
coverage 255 | y 6 | x [ 4, 16]
coverage 238 | y 6 | x [ 17, 17]
coverage 187 | y 7 | x [ 3, 3]
coverage 255 | y 7 | x [ 4, 16]
coverage 189 | y 7 | x [ 17, 17]
coverage 98 | y 8 | x [ 3, 3]
coverage 255 | y 8 | x [ 4, 16]
coverage 99 | y 8 | x [ 17, 17]
coverage 5 | y 9 | x [ 3, 3]
coverage 214 | y 9 | x [ 4, 4]
coverage 255 | y 9 | x [ 5, 15]
coverage 211 | y 9 | x [ 16, 16]
coverage 5 | y 9 | x [ 17, 17]
coverage 44 | y 10 | x [ 4, 4]
coverage 240 | y 10 | x [ 5, 5]
coverage 255 | y 10 | x [ 6, 14]
coverage 235 | y 10 | x [ 15, 15]
coverage 39 | y 10 | x [ 16, 16]
coverage 48 | y 11 | x [ 5, 5]
coverage 221 | y 11 | x [ 6, 6]
coverage 255 | y 11 | x [ 7, 13]
coverage 210 | y 11 | x [ 14, 14]
coverage 38 | y 11 | x [ 15, 15]
coverage 9 | y 12 | x [ 6, 6]
coverage 107 | y 12 | x [ 7, 7]
coverage 192 | y 12 | x [ 8, 8]
coverage 238 | y 12 | x [ 9, 9]
coverage 253 | y 12 | x [ 10, 10]
coverage 237 | y 12 | x [ 11, 11]
coverage 187 | y 12 | x [ 12, 12]
coverage 97 | y 12 | x [ 13, 13]
coverage 4 | y 12 | x [ 14, 14]
-----
n_contours = 1
n_points = 37
points[0] = (48, 5) on the curve
points[1] = (48, 13) second-order control
points[2] = (45, 19) on the curve
points[3] = (42, 26) second-order control
points[4] = (37, 32) on the curve
points[5] = (36, 32) third-order control
points[6] = (36, 32) third-order control
points[7] = (36, 32) on the curve
points[8] = (31, 37) second-order control
points[9] = (24, 40) on the curve
points[10] = (18, 43) second-order control
points[11] = (10, 43) on the curve
points[12] = (2, 43) second-order control
points[13] = (-4, 40) on the curve
points[14] = (-11, 37) second-order control
points[15] = (-16, 31) on the curve
points[16] = (-16, 31) on the curve
points[17] = (-21, 26) second-order control
points[18] = (-24, 19) on the curve
points[19] = (-27, 12) second-order control
points[20] = (-27, 5) on the curve
points[21] = (-27, -2) second-order control
points[22] = (-24, -9) on the curve
points[23] = (-21, -15) second-order control
points[24] = (-16, -20) on the curve
points[25] = (-16, -20) on the curve
points[26] = (-10, -26) second-order control
points[27] = (-4, -29) on the curve
points[28] = (2, -32) second-order control
points[29] = (10, -32) on the curve
points[30] = (18, -32) second-order control
points[31] = (25, -29) on the curve
points[32] = (32, -26) second-order control
points[33] = (37, -20) on the curve
points[34] = (42, -15) second-order control
points[35] = (45, -8) on the curve
points[36] = (48, -1) second-order control
contours[0] = 36
flags = 1
coverage 1 | y -32 | x [ 1, 1]
coverage 34 | y -32 | x [ 2, 2]
coverage 86 | y -32 | x [ 3, 3]
coverage 125 | y -32 | x [ 4, 4]
coverage 163 | y -32 | x [ 5, 5]
coverage 200 | y -32 | x [ 6, 6]
coverage 219 | y -32 | x [ 7, 7]
coverage 232 | y -32 | x [ 8, 8]
coverage 244 | y -32 | x [ 9, 9]
coverage 253 | y -32 | x [ 10, 10]
coverage 244 | y -32 | x [ 11, 11]
coverage 232 | y -32 | x [ 12, 12]
coverage 220 | y -32 | x [ 13, 13]
coverage 203 | y -32 | x [ 14, 14]
coverage 166 | y -32 | x [ 15, 15]
coverage 129 | y -32 | x [ 16, 16]
coverage 91 | y -32 | x [ 17, 17]
coverage 41 | y -32 | x [ 18, 18]
coverage 1 | y -32 | x [ 19, 19]
coverage 13 | y -31 | x [ -2, -2]
coverage 91 | y -31 | x [ -1, -1]
coverage 159 | y -31 | x [ 0, 0]
coverage 225 | y -31 | x [ 1, 1]
coverage 255 | y -31 | x [ 2, 18]
coverage 231 | y -31 | x [ 19, 19]
coverage 166 | y -31 | x [ 20, 20]
coverage 58 | y -31 | x [ 21, 21]
coverage 3 | y -30 | x [ -5, -5]
coverage 71 | y -30 | x [ -4, -4]
coverage 164 | y -30 | x [ -3, -3]
coverage 246 | y -30 | x [ -2, -2]
coverage 255 | y -30 | x [ -1, 20]
coverage 130 | y -30 | x [ 21, 21]
coverage 5 | y -29 | x [ -7, -7]
coverage 96 | y -29 | x [ -6, -6]
coverage 218 | y -29 | x [ -5, -5]
coverage 255 | y -29 | x [ -4, 20]
coverage 126 | y -29 | x [ 21, 21]
coverage 2 | y -28 | x [ -9, -9]
coverage 98 | y -28 | x [ -8, -8]
coverage 224 | y -28 | x [ -7, -7]
coverage 255 | y -28 | x [ -6, 20]
coverage 134 | y -28 | x [ 21, 21]
coverage 47 | y -27 | x [-10, -10]
coverage 198 | y -27 | x [ -9, -9]
coverage 255 | y -27 | x [ -8, 20]
coverage 126 | y -27 | x [ 21, 21]
coverage 6 | y -26 | x [-12, -12]
coverage 138 | y -26 | x [-11, -11]
coverage 253 | y -26 | x [-10, -10]
coverage 255 | y -26 | x [ -9, 20]
coverage 125 | y -26 | x [ 21, 21]
coverage 30 | y -25 | x [-13, -13]
coverage 200 | y -25 | x [-12, -12]
coverage 255 | y -25 | x [-11, 20]
coverage 124 | y -25 | x [ 21, 21]
coverage 71 | y -24 | x [-14, -14]
coverage 237 | y -24 | x [-13, -13]
coverage 255 | y -24 | x [-12, 20]
coverage 140 | y -24 | x [ 21, 21]
coverage 92 | y -23 | x [-15, -15]
coverage 252 | y -23 | x [-14, -14]
coverage 255 | y -23 | x [-13, 20]
coverage 133 | y -23 | x [ 21, 21]
coverage 112 | y -22 | x [-16, -16]
coverage 255 | y -22 | x [-15, 20]
coverage 133 | y -22 | x [ 21, 21]
coverage 117 | y -21 | x [-17, -17]
coverage 255 | y -21 | x [-16, 20]
coverage 131 | y -21 | x [ 21, 21]
coverage 95 | y -20 | x [-18, -18]
coverage 255 | y -20 | x [-17, 20]
coverage 115 | y -20 | x [ 21, 21]
coverage 74 | y -19 | x [-19, -19]
coverage 252 | y -19 | x [-18, -18]
coverage 255 | y -19 | x [-17, 20]
coverage 120 | y -19 | x [ 21, 21]
coverage 33 | y -18 | x [-20, -20]
coverage 240 | y -18 | x [-19, -19]
coverage 255 | y -18 | x [-18, 20]
coverage 118 | y -18 | x [ 21, 21]
coverage 6 | y -17 | x [-21, -21]
coverage 202 | y -17 | x [-20, -20]
coverage 255 | y -17 | x [-19, 20]
coverage 150 | y -17 | x [ 21, 21]
coverage 140 | y -16 | x [-21, -21]
coverage 255 | y -16 | x [-20, 20]
coverage 130 | y -16 | x [ 21, 21]
coverage 50 | y -15 | x [-22, -22]
coverage 253 | y -15 | x [-21, -21]
coverage 255 | y -15 | x [-20, 20]
coverage 93 | y -15 | x [ 21, 21]
coverage 2 | y -14 | x [-23, -23]
coverage 200 | y -14 | x [-22, -22]
coverage 255 | y -14 | x [-21, 20]
coverage 170 | y -14 | x [ 21, 21]
coverage 100 | y -13 | x [-23, -23]
coverage 255 | y -13 | x [-22, 20]
coverage 91 | y -13 | x [ 21, 21]
coverage 6 | y -12 | x [-24, -24]
coverage 227 | y -12 | x [-23, -23]
coverage 255 | y -12 | x [-22, 20]
coverage 161 | y -12 | x [ 21, 21]
coverage 98 | y -11 | x [-24, -24]
coverage 255 | y -11 | x [-23, 20]
coverage 90 | y -11 | x [ 21, 21]
coverage 3 | y -10 | x [-25, -25]
coverage 218 | y -10 | x [-24, -24]
coverage 255 | y -10 | x [-23, 20]
coverage 183 | y -10 | x [ 21, 21]
coverage 72 | y -9 | x [-25, -25]
coverage 255 | y -9 | x [-24, 20]
coverage 63 | y -9 | x [ 21, 21]
coverage 165 | y -8 | x [-25, -25]
coverage 255 | y -8 | x [-24, 20]
coverage 155 | y -8 | x [ 21, 21]
coverage 13 | y -7 | x [-26, -26]
coverage 246 | y -7 | x [-25, -25]
coverage 255 | y -7 | x [-24, 20]
coverage 143 | y -7 | x [ 21, 21]
coverage 90 | y -6 | x [-26, -26]
coverage 255 | y -6 | x [-25, 20]
coverage 83 | y -6 | x [ 21, 21]
coverage 159 | y -5 | x [-26, -26]
coverage 255 | y -5 | x [-25, 20]
coverage 154 | y -5 | x [ 21, 21]
coverage 224 | y -4 | x [-26, -26]
coverage 255 | y -4 | x [-25, 20]
coverage 218 | y -4 | x [ 21, 21]
coverage 33 | y -3 | x [-27, -27]
coverage 255 | y -3 | x [-26, 20]
coverage 50 | y -3 | x [ 21, 21]
coverage 86 | y -2 | x [-27, -27]
coverage 255 | y -2 | x [-26, 20]
coverage 83 | y -2 | x [ 21, 21]
coverage 124 | y -1 | x [-27, -27]
coverage 255 | y -1 | x [-26, 20]
coverage 121 | y -1 | x [ 21, 21]
coverage 163 | y 0 | x [-27, -27]
coverage 255 | y 0 | x [-26, 20]
coverage 159 | y 0 | x [ 21, 21]
coverage 200 | y 1 | x [-27, -27]
coverage 255 | y 1 | x [-26, 20]
coverage 197 | y 1 | x [ 21, 21]
coverage 219 | y 2 | x [-27, -27]
coverage 255 | y 2 | x [-26, 20]
coverage 218 | y 2 | x [ 21, 21]
coverage 232 | y 3 | x [-27, -27]
coverage 255 | y 3 | x [-26, 20]
coverage 230 | y 3 | x [ 21, 21]
coverage 245 | y 4 | x [-27, -27]
coverage 255 | y 4 | x [-26, 20]
coverage 243 | y 4 | x [ 21, 21]
coverage 254 | y 5 | x [-27, -27]
coverage 255 | y 5 | x [-26, 20]
coverage 253 | y 5 | x [ 21, 21]
coverage 245 | y 6 | x [-27, -27]
coverage 255 | y 6 | x [-26, 20]
coverage 244 | y 6 | x [ 21, 21]
coverage 233 | y 7 | x [-27, -27]
coverage 255 | y 7 | x [-26, 20]
coverage 232 | y 7 | x [ 21, 21]
coverage 221 | y 8 | x [-27, -27]
coverage 255 | y 8 | x [-26, 20]
coverage 220 | y 8 | x [ 21, 21]
coverage 198 | y 9 | x [-27, -27]
coverage 255 | y 9 | x [-26, 20]
coverage 202 | y 9 | x [ 21, 21]
coverage 163 | y 10 | x [-27, -27]
coverage 255 | y 10 | x [-26, 20]
coverage 166 | y 10 | x [ 21, 21]
coverage 128 | y 11 | x [-27, -27]
coverage 255 | y 11 | x [-26, 20]
coverage 129 | y 11 | x [ 21, 21]
coverage 89 | y 12 | x [-27, -27]
coverage 255 | y 12 | x [-26, 20]
coverage 92 | y 12 | x [ 21, 21]
coverage 31 | y 13 | x [-27, -27]
coverage 255 | y 13 | x [-26, 20]
coverage 40 | y 13 | x [ 21, 21]
coverage 1 | y 14 | x [-27, -27]
coverage 227 | y 14 | x [-26, -26]
coverage 255 | y 14 | x [-25, 20]
coverage 204 | y 14 | x [ 21, 21]
coverage 167 | y 15 | x [-26, -26]
coverage 255 | y 15 | x [-25, 20]
coverage 166 | y 15 | x [ 21, 21]
coverage 90 | y 16 | x [-26, -26]
coverage 255 | y 16 | x [-25, 20]
coverage 97 | y 16 | x [ 21, 21]
coverage 13 | y 17 | x [-26, -26]
coverage 248 | y 17 | x [-25, -25]
coverage 255 | y 17 | x [-24, 20]
coverage 120 | y 17 | x [ 21, 21]
coverage 174 | y 18 | x [-25, -25]
coverage 255 | y 18 | x [-24, 20]
coverage 167 | y 18 | x [ 21, 21]
coverage 78 | y 19 | x [-25, -25]
coverage 255 | y 19 | x [-24, 20]
coverage 73 | y 19 | x [ 21, 21]
coverage 2 | y 20 | x [-25, -25]
coverage 217 | y 20 | x [-24, -24]
coverage 255 | y 20 | x [-23, 20]
coverage 173 | y 20 | x [ 21, 21]
coverage 102 | y 21 | x [-24, -24]
coverage 255 | y 21 | x [-23, 20]
coverage 97 | y 21 | x [ 21, 21]
coverage 9 | y 22 | x [-24, -24]
coverage 231 | y 22 | x [-23, -23]
coverage 255 | y 22 | x [-22, 20]
coverage 156 | y 22 | x [ 21, 21]
coverage 97 | y 23 | x [-23, -23]
coverage 255 | y 23 | x [-22, 20]
coverage 101 | y 23 | x [ 21, 21]
coverage 2 | y 24 | x [-23, -23]
coverage 206 | y 24 | x [-22, -22]
coverage 255 | y 24 | x [-21, 20]
coverage 164 | y 24 | x [ 21, 21]
coverage 61 | y 25 | x [-22, -22]
coverage 255 | y 25 | x [-21, 20]
coverage 95 | y 25 | x [ 21, 21]
coverage 143 | y 26 | x [-21, -21]
coverage 255 | y 26 | x [-20, 20]
coverage 145 | y 26 | x [ 21, 21]
coverage 8 | y 27 | x [-21, -21]
coverage 210 | y 27 | x [-20, -20]
coverage 255 | y 27 | x [-19, 20]
coverage 144 | y 27 | x [ 21, 21]
coverage 45 | y 28 | x [-20, -20]
coverage 246 | y 28 | x [-19, -19]
coverage 255 | y 28 | x [-18, 20]
coverage 121 | y 28 | x [ 21, 21]
coverage 80 | y 29 | x [-19, -19]
coverage 254 | y 29 | x [-18, -18]
coverage 255 | y 29 | x [-17, 20]
coverage 119 | y 29 | x [ 21, 21]
coverage 114 | y 30 | x [-18, -18]
coverage 255 | y 30 | x [-17, 20]
coverage 118 | y 30 | x [ 21, 21]
coverage 1 | y 31 | x [-18, -18]
coverage 140 | y 31 | x [-17, -17]
coverage 255 | y 31 | x [-16, 20]
coverage 127 | y 31 | x [ 21, 21]
coverage 1 | y 32 | x [-17, -17]
coverage 131 | y 32 | x [-16, -16]
coverage 255 | y 32 | x [-15, 20]
coverage 131 | y 32 | x [ 21, 21]
coverage 121 | y 33 | x [-15, -15]
coverage 255 | y 33 | x [-14, 20]
coverage 138 | y 33 | x [ 21, 21]
coverage 91 | y 34 | x [-14, -14]
coverage 246 | y 34 | x [-13, -13]
coverage 255 | y 34 | x [-12, 20]
coverage 137 | y 34 | x [ 21, 21]
coverage 45 | y 35 | x [-13, -13]
coverage 218 | y 35 | x [-12, -12]
coverage 255 | y 35 | x [-11, 20]
coverage 125 | y 35 | x [ 21, 21]
coverage 15 | y 36 | x [-12, -12]
coverage 160 | y 36 | x [-11, -11]
coverage 255 | y 36 | x [-10, 20]
coverage 123 | y 36 | x [ 21, 21]
coverage 64 | y 37 | x [-10, -10]
coverage 215 | y 37 | x [ -9, -9]
coverage 255 | y 37 | x [ -8, 20]
coverage 130 | y 37 | x [ 21, 21]
coverage 6 | y 38 | x [ -9, -9]
coverage 116 | y 38 | x [ -8, -8]
coverage 233 | y 38 | x [ -7, -7]
coverage 255 | y 38 | x [ -6, 20]
coverage 133 | y 38 | x [ 21, 21]
coverage 10 | y 39 | x [ -7, -7]
coverage 109 | y 39 | x [ -6, -6]
coverage 227 | y 39 | x [ -5, -5]
coverage 255 | y 39 | x [ -4, 20]
coverage 125 | y 39 | x [ 21, 21]
coverage 6 | y 40 | x [ -5, -5]
coverage 81 | y 40 | x [ -4, -4]
coverage 172 | y 40 | x [ -3, -3]
coverage 249 | y 40 | x [ -2, -2]
coverage 255 | y 40 | x [ -1, 20]
coverage 133 | y 40 | x [ 21, 21]
coverage 16 | y 41 | x [ -2, -2]
coverage 96 | y 41 | x [ -1, -1]
coverage 163 | y 41 | x [ 0, 0]
coverage 228 | y 41 | x [ 1, 1]
coverage 255 | y 41 | x [ 2, 18]
coverage 224 | y 41 | x [ 19, 19]
coverage 159 | y 41 | x [ 20, 20]
coverage 56 | y 41 | x [ 21, 21]
coverage 1 | y 42 | x [ 1, 1]
coverage 35 | y 42 | x [ 2, 2]
coverage 88 | y 42 | x [ 3, 3]
coverage 125 | y 42 | x [ 4, 4]
coverage 163 | y 42 | x [ 5, 5]
coverage 200 | y 42 | x [ 6, 6]
coverage 218 | y 42 | x [ 7, 7]
coverage 231 | y 42 | x [ 8, 8]
coverage 243 | y 42 | x [ 9, 9]
coverage 253 | y 42 | x [ 10, 10]
coverage 243 | y 42 | x [ 11, 11]
coverage 231 | y 42 | x [ 12, 12]
coverage 219 | y 42 | x [ 13, 13]
coverage 199 | y 42 | x [ 14, 14]
coverage 162 | y 42 | x [ 15, 15]
coverage 124 | y 42 | x [ 16, 16]
coverage 87 | y 42 | x [ 17, 17]
coverage 32 | y 42 | x [ 18, 18]
[END]
- [ft] Glitchy stroker output, Stephan T. Lavavej, 2008/09/15
- Re: [ft] Glitchy stroker output, Werner LEMBERG, 2008/09/16
- RE: [ft] Glitchy stroker output, Stephan T. Lavavej, 2008/09/17
- RE: [ft] Glitchy stroker output,
Stephan T. Lavavej <=
- Re: [ft] Glitchy stroker output, Werner LEMBERG, 2008/09/17
- Re: [ft] Glitchy stroker output, Werner LEMBERG, 2008/09/17
- Re: [ft] Glitchy stroker output, Werner LEMBERG, 2008/09/19
- RE: [ft] Glitchy stroker output, Stephan T. Lavavej, 2008/09/19
- Re: [ft] Glitchy stroker output, Werner LEMBERG, 2008/09/19
- RE: [ft] Glitchy stroker output, Stephan T. Lavavej, 2008/09/19
- RE: [ft] Glitchy stroker output, Stephan T. Lavavej, 2008/09/20
- Re: [ft] Glitchy stroker output, Werner LEMBERG, 2008/09/20
- Re: [ft] Glitchy stroker output, Werner LEMBERG, 2008/09/20
- RE: [ft] Glitchy stroker output, Stephan T. Lavavej, 2008/09/20