# Call with 16 sequential codes # There's a _cacheReference even though it's the first call with this string (in fact, sequence of characters, as it seems the string buffer is reused)! But I don't think it matters now. consumer 0x7f5614efbdc0, font 0x7f5614efc1e0, string 0x7f5614efc3f0, length 64, maxChars 32, escapement_delta (nil), spacing 2, offsets (nil), cacheref 0x7f5614efbdc8 new font cache entry 0x105800f2a100 i 0: charCode 127904 (0x1f3a0), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 1: charCode 127905 (0x1f3a1), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 2: charCode 127906 (0x1f3a2), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 3: charCode 127907 (0x1f3a3), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 4: charCode 127908 (0x1f3a4), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 5: charCode 127909 (0x1f3a5), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 6: charCode 127910 (0x1f3a6), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 7: charCode 127911 (0x1f3a7), x 0.000000, y 0.000000 uncached glyph, created 0x1058018a94d0 advance x 13.000000, y 0.000000 i 8: charCode 127912 (0x1f3a8), x 13.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 9: charCode 127913 (0x1f3a9), x 13.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 10: charCode 127914 (0x1f3aa), x 13.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 11: charCode 127915 (0x1f3ab), x 13.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 12: charCode 127916 (0x1f3ac), x 13.000000, y 0.000000 uncached glyph, created 0x1058018a9470 advance x 10.000000, y 0.000000 i 13: charCode 127917 (0x1f3ad), x 23.000000, y 0.000000 uncached glyph, created 0x1058018a9410 advance x 14.000000, y 0.000000 i 14: charCode 127918 (0x1f3ae), x 37.000000, y 0.000000 uncached glyph, created 0x1058018a93b0 advance x 13.000000, y 0.000000 i 15: charCode 127919 (0x1f3af), x 50.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 Finish x 50.000000, y 0.000000 # Second call with those 16 sequential codes consumer 0x7f5614efbdc0, font 0x7f5614efc1e0, string 0x7f5614efc3f0, length 64, maxChars 32, escapement_delta (nil), spacing 2, offsets (nil), cacheref 0x7f5614efbdc8 new font cache entry 0x105800f2a100 i 0: charCode 127904 (0x1f3a0), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 1: charCode 127905 (0x1f3a1), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 2: charCode 127906 (0x1f3a2), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 3: charCode 127907 (0x1f3a3), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 4: charCode 127908 (0x1f3a4), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 5: charCode 127909 (0x1f3a5), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 6: charCode 127910 (0x1f3a6), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 7: charCode 127911 (0x1f3a7), x 0.000000, y 0.000000 advance x 13.000000, y 0.000000 i 8: charCode 127912 (0x1f3a8), x 13.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 9: charCode 127913 (0x1f3a9), x 13.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 10: charCode 127914 (0x1f3aa), x 13.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 11: charCode 127915 (0x1f3ab), x 13.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 12: charCode 127916 (0x1f3ac), x 13.000000, y 0.000000 advance x 10.000000, y 0.000000 i 13: charCode 127917 (0x1f3ad), x 23.000000, y 0.000000 advance x 14.000000, y 0.000000 i 14: charCode 127918 (0x1f3ae), x 37.000000, y 0.000000 advance x 13.000000, y 0.000000 i 15: charCode 127919 (0x1f3af), x 50.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 Finish x 50.000000, y 0.000000 # Another call with a different group of 16 sequential codes consumer 0x7f5614efbdc0, font 0x7f5614efc1e0, string 0x7f5614efc3f0, length 64, maxChars 32, escapement_delta (nil), spacing 2, offsets (nil), cacheref 0x7f5614efbdc8 new font cache entry 0x105800f2a100 i 0: charCode 128160 (0x1f4a0), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 1: charCode 128161 (0x1f4a1), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 2: charCode 128162 (0x1f4a2), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 3: charCode 128163 (0x1f4a3), x 0.000000, y 0.000000 uncached glyph, created 0x1058018a8ed0 advance x 12.000000, y 0.000000 i 4: charCode 128164 (0x1f4a4), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 5: charCode 128165 (0x1f4a5), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 6: charCode 128166 (0x1f4a6), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 7: charCode 128167 (0x1f4a7), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 8: charCode 128168 (0x1f4a8), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 9: charCode 128169 (0x1f4a9), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 10: charCode 128170 (0x1f4aa), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 11: charCode 128171 (0x1f4ab), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 12: charCode 128172 (0x1f4ac), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 13: charCode 128173 (0x1f4ad), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 14: charCode 128174 (0x1f4ae), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 15: charCode 128175 (0x1f4af), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 Finish x 12.000000, y 0.000000 # Second call consumer 0x7f5614efbdc0, font 0x7f5614efc1e0, string 0x7f5614efc3f0, length 64, maxChars 32, escapement_delta (nil), spacing 2, offsets (nil), cacheref 0x7f5614efbdc8 new font cache entry 0x105800f2a100 i 0: charCode 128160 (0x1f4a0), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 1: charCode 128161 (0x1f4a1), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 2: charCode 128162 (0x1f4a2), x 0.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 3: charCode 128163 (0x1f4a3), x 0.000000, y 0.000000 advance x 12.000000, y 0.000000 i 4: charCode 128164 (0x1f4a4), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 5: charCode 128165 (0x1f4a5), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 6: charCode 128166 (0x1f4a6), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 7: charCode 128167 (0x1f4a7), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 8: charCode 128168 (0x1f4a8), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 9: charCode 128169 (0x1f4a9), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 10: charCode 128170 (0x1f4aa), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 11: charCode 128171 (0x1f4ab), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 12: charCode 128172 (0x1f4ac), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 13: charCode 128173 (0x1f4ad), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 14: charCode 128174 (0x1f4ae), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 i 15: charCode 128175 (0x1f4af), x 12.000000, y 0.000000 uncached glyph, created (nil) Still no glyph, so consume empty and advance 0 Finish x 12.000000, y 0.000000 # The next calls are from two different consumers with a different _cacheReference for each of them. # The font and string buffer are constant but different from the previous calls. # We are now given offsets. Notice that for the garbled strings: # * The emoji is not in the string # * The offsets contain the one for the emoji # " We don't have this". With the space, without the emoji. consumer 0x7f126fe5a9f0, font 0x1058018ce640, string 0x7f126fe5ac80, length 19, maxChars 2147483647, escapement_delta (nil), spacing 2, offsets 0x7f126fe5ae90, cacheref 0x7f126fe5a930 new font cache entry 0x105800f31b30 i 0: charCode 32 (0x20), x 23.000000, y 23.000000 advance x 3.000000, y 0.000000 i 1: charCode 87 (0x57), x 23.000000, y 23.000000 advance x 12.000000, y 0.000000 i 2: charCode 101 (0x65), x 26.000000, y 23.000000 advance x 7.000000, y 0.000000 i 3: charCode 32 (0x20), x 38.000000, y 23.000000 advance x 3.000000, y 0.000000 i 4: charCode 100 (0x64), x 45.000000, y 23.000000 advance x 8.000000, y 0.000000 i 5: charCode 111 (0x6f), x 48.000000, y 23.000000 advance x 8.000000, y 0.000000 i 6: charCode 110 (0x6e), x 56.000000, y 23.000000 advance x 8.000000, y 0.000000 i 7: charCode 39 (0x27), x 64.000000, y 23.000000 advance x 3.000000, y 0.000000 i 8: charCode 116 (0x74), x 72.000000, y 23.000000 advance x 5.000000, y 0.000000 i 9: charCode 32 (0x20), x 75.000000, y 23.000000 advance x 3.000000, y 0.000000 i 10: charCode 104 (0x68), x 80.000000, y 23.000000 advance x 8.000000, y 0.000000 i 11: charCode 97 (0x61), x 83.000000, y 23.000000 advance x 7.000000, y 0.000000 i 12: charCode 118 (0x76), x 91.000000, y 23.000000 advance x 7.000000, y 0.000000 i 13: charCode 101 (0x65), x 98.000000, y 23.000000 advance x 7.000000, y 0.000000 i 14: charCode 32 (0x20), x 105.000000, y 23.000000 advance x 3.000000, y 0.000000 i 15: charCode 116 (0x74), x 112.000000, y 23.000000 advance x 5.000000, y 0.000000 i 16: charCode 104 (0x68), x 115.000000, y 23.000000 advance x 8.000000, y 0.000000 i 17: charCode 105 (0x69), x 120.000000, y 23.000000 advance x 3.000000, y 0.000000 i 18: charCode 115 (0x73), x 128.000000, y 23.000000 advance x 6.000000, y 0.000000 Finish x 134.000000, y 23.000000 # Second call for " We don't have this". With the space, without the emoji. consumer 0x7f126fe5a9c0, font 0x1058018ce640, string 0x7f126fe5ac80, length 19, maxChars 2147483647, escapement_delta (nil), spacing 2, offsets 0x7f126fe5ae90, cacheref 0x7f126fe5a900 got font cache entry 0x105800f31b30 i 0: charCode 32 (0x20), x 23.000000, y 23.000000 advance x 3.000000, y 0.000000 i 1: charCode 87 (0x57), x 23.000000, y 23.000000 advance x 12.000000, y 0.000000 i 2: charCode 101 (0x65), x 26.000000, y 23.000000 advance x 7.000000, y 0.000000 i 3: charCode 32 (0x20), x 38.000000, y 23.000000 advance x 3.000000, y 0.000000 i 4: charCode 100 (0x64), x 45.000000, y 23.000000 advance x 8.000000, y 0.000000 i 5: charCode 111 (0x6f), x 48.000000, y 23.000000 advance x 8.000000, y 0.000000 i 6: charCode 110 (0x6e), x 56.000000, y 23.000000 advance x 8.000000, y 0.000000 i 7: charCode 39 (0x27), x 64.000000, y 23.000000 advance x 3.000000, y 0.000000 i 8: charCode 116 (0x74), x 72.000000, y 23.000000 advance x 5.000000, y 0.000000 i 9: charCode 32 (0x20), x 75.000000, y 23.000000 advance x 3.000000, y 0.000000 i 10: charCode 104 (0x68), x 80.000000, y 23.000000 advance x 8.000000, y 0.000000 i 11: charCode 97 (0x61), x 83.000000, y 23.000000 advance x 7.000000, y 0.000000 i 12: charCode 118 (0x76), x 91.000000, y 23.000000 advance x 7.000000, y 0.000000 i 13: charCode 101 (0x65), x 98.000000, y 23.000000 advance x 7.000000, y 0.000000 i 14: charCode 32 (0x20), x 105.000000, y 23.000000 advance x 3.000000, y 0.000000 i 15: charCode 116 (0x74), x 112.000000, y 23.000000 advance x 5.000000, y 0.000000 i 16: charCode 104 (0x68), x 115.000000, y 23.000000 advance x 8.000000, y 0.000000 i 17: charCode 105 (0x69), x 120.000000, y 23.000000 advance x 3.000000, y 0.000000 i 18: charCode 115 (0x73), x 128.000000, y 23.000000 advance x 6.000000, y 0.000000 Finish x 134.000000, y 23.000000 # "this emoji comes nowoh well this...", without the emoji in the middle of the sentence consumer 0x7f126fe5a9f0, font 0x1058018ce640, string 0x7f126fe5ac80, length 35, maxChars 2147483647, escapement_delta (nil), spacing 2, offsets 0x7f126fe5ae90, cacheref 0x7f126fe5a930 new font cache entry 0x105800f31b30 i 0: charCode 116 (0x74), x 23.000000, y 42.000000 advance x 5.000000, y 0.000000 i 1: charCode 104 (0x68), x 28.000000, y 42.000000 advance x 8.000000, y 0.000000 i 2: charCode 105 (0x69), x 36.000000, y 42.000000 advance x 3.000000, y 0.000000 i 3: charCode 115 (0x73), x 39.000000, y 42.000000 advance x 6.000000, y 0.000000 i 4: charCode 32 (0x20), x 45.000000, y 42.000000 advance x 3.000000, y 0.000000 i 5: charCode 101 (0x65), x 48.000000, y 42.000000 advance x 7.000000, y 0.000000 i 6: charCode 109 (0x6d), x 55.000000, y 42.000000 advance x 12.000000, y 0.000000 i 7: charCode 111 (0x6f), x 67.000000, y 42.000000 advance x 8.000000, y 0.000000 i 8: charCode 106 (0x6a), x 75.000000, y 42.000000 advance x 3.000000, y 0.000000 i 9: charCode 105 (0x69), x 78.000000, y 42.000000 advance x 3.000000, y 0.000000 i 10: charCode 32 (0x20), x 81.000000, y 42.000000 advance x 3.000000, y 0.000000 i 11: charCode 99 (0x63), x 84.000000, y 42.000000 advance x 6.000000, y 0.000000 i 12: charCode 111 (0x6f), x 90.000000, y 42.000000 advance x 8.000000, y 0.000000 i 13: charCode 109 (0x6d), x 98.000000, y 42.000000 advance x 12.000000, y 0.000000 i 14: charCode 101 (0x65), x 110.000000, y 42.000000 advance x 7.000000, y 0.000000 i 15: charCode 115 (0x73), x 117.000000, y 42.000000 advance x 6.000000, y 0.000000 i 16: charCode 32 (0x20), x 123.000000, y 42.000000 advance x 3.000000, y 0.000000 i 17: charCode 110 (0x6e), x 126.000000, y 42.000000 advance x 8.000000, y 0.000000 i 18: charCode 111 (0x6f), x 134.000000, y 42.000000 advance x 8.000000, y 0.000000 i 19: charCode 119 (0x77), x 142.000000, y 42.000000 advance x 10.000000, y 0.000000 i 20: charCode 111 (0x6f), x 152.000000, y 42.000000 advance x 8.000000, y 0.000000 i 21: charCode 104 (0x68), x 152.000000, y 42.000000 advance x 8.000000, y 0.000000 i 22: charCode 32 (0x20), x 160.000000, y 42.000000 advance x 3.000000, y 0.000000 i 23: charCode 119 (0x77), x 168.000000, y 42.000000 advance x 10.000000, y 0.000000 i 24: charCode 101 (0x65), x 171.000000, y 42.000000 advance x 7.000000, y 0.000000 i 25: charCode 108 (0x6c), x 181.000000, y 42.000000 advance x 3.000000, y 0.000000 i 26: charCode 108 (0x6c), x 188.000000, y 42.000000 advance x 3.000000, y 0.000000 i 27: charCode 32 (0x20), x 191.000000, y 42.000000 advance x 3.000000, y 0.000000 i 28: charCode 116 (0x74), x 194.000000, y 42.000000 advance x 5.000000, y 0.000000 i 29: charCode 104 (0x68), x 197.000000, y 42.000000 advance x 8.000000, y 0.000000 i 30: charCode 105 (0x69), x 202.000000, y 42.000000 advance x 3.000000, y 0.000000 i 31: charCode 115 (0x73), x 210.000000, y 42.000000 advance x 6.000000, y 0.000000 i 32: charCode 46 (0x2e), x 213.000000, y 42.000000 advance x 4.000000, y 0.000000 i 33: charCode 46 (0x2e), x 219.000000, y 42.000000 advance x 4.000000, y 0.000000 i 34: charCode 46 (0x2e), x 223.000000, y 42.000000 advance x 4.000000, y 0.000000 Finish x 227.000000, y 42.000000 # Second call for "this emoji comes nowoh well this...", without the emoji in the middle of the sentence consumer 0x7f126fe5a9c0, font 0x1058018ce640, string 0x7f126fe5ac80, length 35, maxChars 2147483647, escapement_delta (nil), spacing 2, offsets 0x7f126fe5ae90, cacheref 0x7f126fe5a900 got font cache entry 0x105800f31b30 i 0: charCode 116 (0x74), x 23.000000, y 42.000000 advance x 5.000000, y 0.000000 i 1: charCode 104 (0x68), x 28.000000, y 42.000000 advance x 8.000000, y 0.000000 i 2: charCode 105 (0x69), x 36.000000, y 42.000000 advance x 3.000000, y 0.000000 i 3: charCode 115 (0x73), x 39.000000, y 42.000000 advance x 6.000000, y 0.000000 i 4: charCode 32 (0x20), x 45.000000, y 42.000000 advance x 3.000000, y 0.000000 i 5: charCode 101 (0x65), x 48.000000, y 42.000000 advance x 7.000000, y 0.000000 i 6: charCode 109 (0x6d), x 55.000000, y 42.000000 advance x 12.000000, y 0.000000 i 7: charCode 111 (0x6f), x 67.000000, y 42.000000 advance x 8.000000, y 0.000000 i 8: charCode 106 (0x6a), x 75.000000, y 42.000000 advance x 3.000000, y 0.000000 i 9: charCode 105 (0x69), x 78.000000, y 42.000000 advance x 3.000000, y 0.000000 i 10: charCode 32 (0x20), x 81.000000, y 42.000000 advance x 3.000000, y 0.000000 i 11: charCode 99 (0x63), x 84.000000, y 42.000000 advance x 6.000000, y 0.000000 i 12: charCode 111 (0x6f), x 90.000000, y 42.000000 advance x 8.000000, y 0.000000 i 13: charCode 109 (0x6d), x 98.000000, y 42.000000 advance x 12.000000, y 0.000000 i 14: charCode 101 (0x65), x 110.000000, y 42.000000 advance x 7.000000, y 0.000000 i 15: charCode 115 (0x73), x 117.000000, y 42.000000 advance x 6.000000, y 0.000000 i 16: charCode 32 (0x20), x 123.000000, y 42.000000 advance x 3.000000, y 0.000000 i 17: charCode 110 (0x6e), x 126.000000, y 42.000000 advance x 8.000000, y 0.000000 i 18: charCode 111 (0x6f), x 134.000000, y 42.000000 advance x 8.000000, y 0.000000 i 19: charCode 119 (0x77), x 142.000000, y 42.000000 advance x 10.000000, y 0.000000 i 20: charCode 111 (0x6f), x 152.000000, y 42.000000 advance x 8.000000, y 0.000000 i 21: charCode 104 (0x68), x 152.000000, y 42.000000 advance x 8.000000, y 0.000000 i 22: charCode 32 (0x20), x 160.000000, y 42.000000 advance x 3.000000, y 0.000000 i 23: charCode 119 (0x77), x 168.000000, y 42.000000 advance x 10.000000, y 0.000000 i 24: charCode 101 (0x65), x 171.000000, y 42.000000 advance x 7.000000, y 0.000000 i 25: charCode 108 (0x6c), x 181.000000, y 42.000000 advance x 3.000000, y 0.000000 i 26: charCode 108 (0x6c), x 188.000000, y 42.000000 advance x 3.000000, y 0.000000 i 27: charCode 32 (0x20), x 191.000000, y 42.000000 advance x 3.000000, y 0.000000 i 28: charCode 116 (0x74), x 194.000000, y 42.000000 advance x 5.000000, y 0.000000 i 29: charCode 104 (0x68), x 197.000000, y 42.000000 advance x 8.000000, y 0.000000 i 30: charCode 105 (0x69), x 202.000000, y 42.000000 advance x 3.000000, y 0.000000 i 31: charCode 115 (0x73), x 210.000000, y 42.000000 advance x 6.000000, y 0.000000 i 32: charCode 46 (0x2e), x 213.000000, y 42.000000 advance x 4.000000, y 0.000000 i 33: charCode 46 (0x2e), x 219.000000, y 42.000000 advance x 4.000000, y 0.000000 i 34: charCode 46 (0x2e), x 223.000000, y 42.000000 advance x 4.000000, y 0.000000 Finish x 227.000000, y 42.000000 # "✋ We have this one", with the symbol, or whatever. This one is < 0x10000. consumer 0x7f126fe5a9f0, font 0x1058018ce640, string 0x7f126fe5ac80, length 20, maxChars 2147483647, escapement_delta (nil), spacing 2, offsets 0x7f126fe5ae90, cacheref 0x7f126fe5a930 new font cache entry 0x105800f31b30 i 0: charCode 9995 (0x270b), x 23.000000, y 61.000000 advance x 11.000000, y 0.000000 i 1: charCode 32 (0x20), x 34.000000, y 61.000000 advance x 3.000000, y 0.000000 i 2: charCode 87 (0x57), x 37.000000, y 61.000000 advance x 12.000000, y 0.000000 i 3: charCode 101 (0x65), x 49.000000, y 61.000000 advance x 7.000000, y 0.000000 i 4: charCode 32 (0x20), x 56.000000, y 61.000000 advance x 3.000000, y 0.000000 i 5: charCode 104 (0x68), x 59.000000, y 61.000000 advance x 8.000000, y 0.000000 i 6: charCode 97 (0x61), x 67.000000, y 61.000000 advance x 7.000000, y 0.000000 i 7: charCode 118 (0x76), x 74.000000, y 61.000000 advance x 7.000000, y 0.000000 i 8: charCode 101 (0x65), x 81.000000, y 61.000000 advance x 7.000000, y 0.000000 i 9: charCode 32 (0x20), x 88.000000, y 61.000000 advance x 3.000000, y 0.000000 i 10: charCode 116 (0x74), x 91.000000, y 61.000000 advance x 5.000000, y 0.000000 i 11: charCode 104 (0x68), x 96.000000, y 61.000000 advance x 8.000000, y 0.000000 i 12: charCode 105 (0x69), x 104.000000, y 61.000000 advance x 3.000000, y 0.000000 i 13: charCode 115 (0x73), x 107.000000, y 61.000000 advance x 6.000000, y 0.000000 i 14: charCode 32 (0x20), x 113.000000, y 61.000000 advance x 3.000000, y 0.000000 i 15: charCode 111 (0x6f), x 116.000000, y 61.000000 advance x 8.000000, y 0.000000 i 16: charCode 110 (0x6e), x 124.000000, y 61.000000 advance x 8.000000, y 0.000000 i 17: charCode 101 (0x65), x 132.000000, y 61.000000 advance x 7.000000, y 0.000000 Finish x 139.000000, y 61.000000 # Second call for "✋ We have this one", with the symbol, or whatever. This one is < 0x10000. consumer 0x7f126fe5a9c0, font 0x1058018ce640, string 0x7f126fe5ac80, length 20, maxChars 2147483647, escapement_delta (nil), spacing 2, offsets 0x7f126fe5ae90, cacheref 0x7f126fe5a900 got font cache entry 0x105800f31b30 i 0: charCode 9995 (0x270b), x 23.000000, y 61.000000 advance x 11.000000, y 0.000000 i 1: charCode 32 (0x20), x 34.000000, y 61.000000 advance x 3.000000, y 0.000000 i 2: charCode 87 (0x57), x 37.000000, y 61.000000 advance x 12.000000, y 0.000000 i 3: charCode 101 (0x65), x 49.000000, y 61.000000 advance x 7.000000, y 0.000000 i 4: charCode 32 (0x20), x 56.000000, y 61.000000 advance x 3.000000, y 0.000000 i 5: charCode 104 (0x68), x 59.000000, y 61.000000 advance x 8.000000, y 0.000000 i 6: charCode 97 (0x61), x 67.000000, y 61.000000 advance x 7.000000, y 0.000000 i 7: charCode 118 (0x76), x 74.000000, y 61.000000 advance x 7.000000, y 0.000000 i 8: charCode 101 (0x65), x 81.000000, y 61.000000 advance x 7.000000, y 0.000000 i 9: charCode 32 (0x20), x 88.000000, y 61.000000 advance x 3.000000, y 0.000000 i 10: charCode 116 (0x74), x 91.000000, y 61.000000 advance x 5.000000, y 0.000000 i 11: charCode 104 (0x68), x 96.000000, y 61.000000 advance x 8.000000, y 0.000000 i 12: charCode 105 (0x69), x 104.000000, y 61.000000 advance x 3.000000, y 0.000000 i 13: charCode 115 (0x73), x 107.000000, y 61.000000 advance x 6.000000, y 0.000000 i 14: charCode 32 (0x20), x 113.000000, y 61.000000 advance x 3.000000, y 0.000000 i 15: charCode 111 (0x6f), x 116.000000, y 61.000000 advance x 8.000000, y 0.000000 i 16: charCode 110 (0x6e), x 124.000000, y 61.000000 advance x 8.000000, y 0.000000 i 17: charCode 101 (0x65), x 132.000000, y 61.000000 advance x 7.000000, y 0.000000 Finish x 139.000000, y 61.000000 # These look like the same as the previous ones with the text. consumer 0x7f126fe5a9f0, font 0x1058018ce640, string 0x7f126fe5ac80, length 19, maxChars 2147483647, escapement_delta (nil), spacing 2, offsets 0x7f126fe5ae90, cacheref 0x7f126fe5a930 new font cache entry 0x105800f31b30 i 0: charCode 32 (0x20), x 23.000000, y 23.000000 advance x 3.000000, y 0.000000 i 1: charCode 87 (0x57), x 23.000000, y 23.000000 advance x 12.000000, y 0.000000 i 2: charCode 101 (0x65), x 26.000000, y 23.000000 advance x 7.000000, y 0.000000 i 3: charCode 32 (0x20), x 38.000000, y 23.000000 advance x 3.000000, y 0.000000 i 4: charCode 100 (0x64), x 45.000000, y 23.000000 advance x 8.000000, y 0.000000 i 5: charCode 111 (0x6f), x 48.000000, y 23.000000 advance x 8.000000, y 0.000000 i 6: charCode 110 (0x6e), x 56.000000, y 23.000000 advance x 8.000000, y 0.000000 i 7: charCode 39 (0x27), x 64.000000, y 23.000000 advance x 3.000000, y 0.000000 i 8: charCode 116 (0x74), x 72.000000, y 23.000000 advance x 5.000000, y 0.000000 i 9: charCode 32 (0x20), x 75.000000, y 23.000000 advance x 3.000000, y 0.000000 i 10: charCode 104 (0x68), x 80.000000, y 23.000000 advance x 8.000000, y 0.000000 i 11: charCode 97 (0x61), x 83.000000, y 23.000000 advance x 7.000000, y 0.000000 i 12: charCode 118 (0x76), x 91.000000, y 23.000000 advance x 7.000000, y 0.000000 i 13: charCode 101 (0x65), x 98.000000, y 23.000000 advance x 7.000000, y 0.000000 i 14: charCode 32 (0x20), x 105.000000, y 23.000000 advance x 3.000000, y 0.000000 i 15: charCode 116 (0x74), x 112.000000, y 23.000000 advance x 5.000000, y 0.000000 i 16: charCode 104 (0x68), x 115.000000, y 23.000000 advance x 8.000000, y 0.000000 i 17: charCode 105 (0x69), x 120.000000, y 23.000000 advance x 3.000000, y 0.000000 i 18: charCode 115 (0x73), x 128.000000, y 23.000000 advance x 6.000000, y 0.000000 Finish x 134.000000, y 23.000000 consumer 0x7f126fe5a9c0, font 0x1058018ce640, string 0x7f126fe5ac80, length 19, maxChars 2147483647, escapement_delta (nil), spacing 2, offsets 0x7f126fe5ae90, cacheref 0x7f126fe5a900 got font cache entry 0x105800f31b30 i 0: charCode 32 (0x20), x 23.000000, y 23.000000 advance x 3.000000, y 0.000000 i 1: charCode 87 (0x57), x 23.000000, y 23.000000 advance x 12.000000, y 0.000000 i 2: charCode 101 (0x65), x 26.000000, y 23.000000 advance x 7.000000, y 0.000000 i 3: charCode 32 (0x20), x 38.000000, y 23.000000 advance x 3.000000, y 0.000000 i 4: charCode 100 (0x64), x 45.000000, y 23.000000 advance x 8.000000, y 0.000000 i 5: charCode 111 (0x6f), x 48.000000, y 23.000000 advance x 8.000000, y 0.000000 i 6: charCode 110 (0x6e), x 56.000000, y 23.000000 advance x 8.000000, y 0.000000 i 7: charCode 39 (0x27), x 64.000000, y 23.000000 advance x 3.000000, y 0.000000 i 8: charCode 116 (0x74), x 72.000000, y 23.000000 advance x 5.000000, y 0.000000 i 9: charCode 32 (0x20), x 75.000000, y 23.000000 advance x 3.000000, y 0.000000 i 10: charCode 104 (0x68), x 80.000000, y 23.000000 advance x 8.000000, y 0.000000 i 11: charCode 97 (0x61), x 83.000000, y 23.000000 advance x 7.000000, y 0.000000 i 12: charCode 118 (0x76), x 91.000000, y 23.000000 advance x 7.000000, y 0.000000 i 13: charCode 101 (0x65), x 98.000000, y 23.000000 advance x 7.000000, y 0.000000 i 14: charCode 32 (0x20), x 105.000000, y 23.000000 advance x 3.000000, y 0.000000 i 15: charCode 116 (0x74), x 112.000000, y 23.000000 advance x 5.000000, y 0.000000 i 16: charCode 104 (0x68), x 115.000000, y 23.000000 advance x 8.000000, y 0.000000 i 17: charCode 105 (0x69), x 120.000000, y 23.000000 advance x 3.000000, y 0.000000 i 18: charCode 115 (0x73), x 128.000000, y 23.000000 advance x 6.000000, y 0.000000 Finish x 134.000000, y 23.000000 consumer 0x7f126fe5a9f0, font 0x1058018ce640, string 0x7f126fe5ac80, length 35, maxChars 2147483647, escapement_delta (nil), spacing 2, offsets 0x7f126fe5ae90, cacheref 0x7f126fe5a930 new font cache entry 0x105800f31b30 i 0: charCode 116 (0x74), x 23.000000, y 42.000000 advance x 5.000000, y 0.000000 i 1: charCode 104 (0x68), x 28.000000, y 42.000000 advance x 8.000000, y 0.000000 i 2: charCode 105 (0x69), x 36.000000, y 42.000000 advance x 3.000000, y 0.000000 i 3: charCode 115 (0x73), x 39.000000, y 42.000000 advance x 6.000000, y 0.000000 i 4: charCode 32 (0x20), x 45.000000, y 42.000000 advance x 3.000000, y 0.000000 i 5: charCode 101 (0x65), x 48.000000, y 42.000000 advance x 7.000000, y 0.000000 i 6: charCode 109 (0x6d), x 55.000000, y 42.000000 advance x 12.000000, y 0.000000 i 7: charCode 111 (0x6f), x 67.000000, y 42.000000 advance x 8.000000, y 0.000000 i 8: charCode 106 (0x6a), x 75.000000, y 42.000000 advance x 3.000000, y 0.000000 i 9: charCode 105 (0x69), x 78.000000, y 42.000000 advance x 3.000000, y 0.000000 i 10: charCode 32 (0x20), x 81.000000, y 42.000000 advance x 3.000000, y 0.000000 i 11: charCode 99 (0x63), x 84.000000, y 42.000000 advance x 6.000000, y 0.000000 i 12: charCode 111 (0x6f), x 90.000000, y 42.000000 advance x 8.000000, y 0.000000 i 13: charCode 109 (0x6d), x 98.000000, y 42.000000 advance x 12.000000, y 0.000000 i 14: charCode 101 (0x65), x 110.000000, y 42.000000 advance x 7.000000, y 0.000000 i 15: charCode 115 (0x73), x 117.000000, y 42.000000 advance x 6.000000, y 0.000000 i 16: charCode 32 (0x20), x 123.000000, y 42.000000 advance x 3.000000, y 0.000000 i 17: charCode 110 (0x6e), x 126.000000, y 42.000000 advance x 8.000000, y 0.000000 i 18: charCode 111 (0x6f), x 134.000000, y 42.000000 advance x 8.000000, y 0.000000 i 19: charCode 119 (0x77), x 142.000000, y 42.000000 advance x 10.000000, y 0.000000 i 20: charCode 111 (0x6f), x 152.000000, y 42.000000 advance x 8.000000, y 0.000000 i 21: charCode 104 (0x68), x 152.000000, y 42.000000 advance x 8.000000, y 0.000000 i 22: charCode 32 (0x20), x 160.000000, y 42.000000 advance x 3.000000, y 0.000000 i 23: charCode 119 (0x77), x 168.000000, y 42.000000 advance x 10.000000, y 0.000000 i 24: charCode 101 (0x65), x 171.000000, y 42.000000 advance x 7.000000, y 0.000000 i 25: charCode 108 (0x6c), x 181.000000, y 42.000000 advance x 3.000000, y 0.000000 i 26: charCode 108 (0x6c), x 188.000000, y 42.000000 advance x 3.000000, y 0.000000 i 27: charCode 32 (0x20), x 191.000000, y 42.000000 advance x 3.000000, y 0.000000 i 28: charCode 116 (0x74), x 194.000000, y 42.000000 advance x 5.000000, y 0.000000 i 29: charCode 104 (0x68), x 197.000000, y 42.000000 advance x 8.000000, y 0.000000 i 30: charCode 105 (0x69), x 202.000000, y 42.000000 advance x 3.000000, y 0.000000 i 31: charCode 115 (0x73), x 210.000000, y 42.000000 advance x 6.000000, y 0.000000 i 32: charCode 46 (0x2e), x 213.000000, y 42.000000 advance x 4.000000, y 0.000000 i 33: charCode 46 (0x2e), x 219.000000, y 42.000000 advance x 4.000000, y 0.000000 i 34: charCode 46 (0x2e), x 223.000000, y 42.000000 advance x 4.000000, y 0.000000 Finish x 227.000000, y 42.000000 consumer 0x7f126fe5a9c0, font 0x1058018ce640, string 0x7f126fe5ac80, length 35, maxChars 2147483647, escapement_delta (nil), spacing 2, offsets 0x7f126fe5ae90, cacheref 0x7f126fe5a900 got font cache entry 0x105800f31b30 i 0: charCode 116 (0x74), x 23.000000, y 42.000000 advance x 5.000000, y 0.000000 i 1: charCode 104 (0x68), x 28.000000, y 42.000000 advance x 8.000000, y 0.000000 i 2: charCode 105 (0x69), x 36.000000, y 42.000000 advance x 3.000000, y 0.000000 i 3: charCode 115 (0x73), x 39.000000, y 42.000000 advance x 6.000000, y 0.000000 i 4: charCode 32 (0x20), x 45.000000, y 42.000000 advance x 3.000000, y 0.000000 i 5: charCode 101 (0x65), x 48.000000, y 42.000000 advance x 7.000000, y 0.000000 i 6: charCode 109 (0x6d), x 55.000000, y 42.000000 advance x 12.000000, y 0.000000 i 7: charCode 111 (0x6f), x 67.000000, y 42.000000 advance x 8.000000, y 0.000000 i 8: charCode 106 (0x6a), x 75.000000, y 42.000000 advance x 3.000000, y 0.000000 i 9: charCode 105 (0x69), x 78.000000, y 42.000000 advance x 3.000000, y 0.000000 i 10: charCode 32 (0x20), x 81.000000, y 42.000000 advance x 3.000000, y 0.000000 i 11: charCode 99 (0x63), x 84.000000, y 42.000000 advance x 6.000000, y 0.000000 i 12: charCode 111 (0x6f), x 90.000000, y 42.000000 advance x 8.000000, y 0.000000 i 13: charCode 109 (0x6d), x 98.000000, y 42.000000 advance x 12.000000, y 0.000000 i 14: charCode 101 (0x65), x 110.000000, y 42.000000 advance x 7.000000, y 0.000000 i 15: charCode 115 (0x73), x 117.000000, y 42.000000 advance x 6.000000, y 0.000000 i 16: charCode 32 (0x20), x 123.000000, y 42.000000 advance x 3.000000, y 0.000000 i 17: charCode 110 (0x6e), x 126.000000, y 42.000000 advance x 8.000000, y 0.000000 i 18: charCode 111 (0x6f), x 134.000000, y 42.000000 advance x 8.000000, y 0.000000 i 19: charCode 119 (0x77), x 142.000000, y 42.000000 advance x 10.000000, y 0.000000 i 20: charCode 111 (0x6f), x 152.000000, y 42.000000 advance x 8.000000, y 0.000000 i 21: charCode 104 (0x68), x 152.000000, y 42.000000 advance x 8.000000, y 0.000000 i 22: charCode 32 (0x20), x 160.000000, y 42.000000 advance x 3.000000, y 0.000000 i 23: charCode 119 (0x77), x 168.000000, y 42.000000 advance x 10.000000, y 0.000000 i 24: charCode 101 (0x65), x 171.000000, y 42.000000 advance x 7.000000, y 0.000000 i 25: charCode 108 (0x6c), x 181.000000, y 42.000000 advance x 3.000000, y 0.000000 i 26: charCode 108 (0x6c), x 188.000000, y 42.000000 advance x 3.000000, y 0.000000 i 27: charCode 32 (0x20), x 191.000000, y 42.000000 advance x 3.000000, y 0.000000 i 28: charCode 116 (0x74), x 194.000000, y 42.000000 advance x 5.000000, y 0.000000 i 29: charCode 104 (0x68), x 197.000000, y 42.000000 advance x 8.000000, y 0.000000 i 30: charCode 105 (0x69), x 202.000000, y 42.000000 advance x 3.000000, y 0.000000 i 31: charCode 115 (0x73), x 210.000000, y 42.000000 advance x 6.000000, y 0.000000 i 32: charCode 46 (0x2e), x 213.000000, y 42.000000 advance x 4.000000, y 0.000000 i 33: charCode 46 (0x2e), x 219.000000, y 42.000000 advance x 4.000000, y 0.000000 i 34: charCode 46 (0x2e), x 223.000000, y 42.000000 advance x 4.000000, y 0.000000 Finish x 227.000000, y 42.000000 consumer 0x7f126fe5a9f0, font 0x1058018ce640, string 0x7f126fe5ac80, length 20, maxChars 2147483647, escapement_delta (nil), spacing 2, offsets 0x7f126fe5ae90, cacheref 0x7f126fe5a930 new font cache entry 0x105800f31b30 i 0: charCode 9995 (0x270b), x 23.000000, y 61.000000 advance x 11.000000, y 0.000000 i 1: charCode 32 (0x20), x 34.000000, y 61.000000 advance x 3.000000, y 0.000000 i 2: charCode 87 (0x57), x 37.000000, y 61.000000 advance x 12.000000, y 0.000000 i 3: charCode 101 (0x65), x 49.000000, y 61.000000 advance x 7.000000, y 0.000000 i 4: charCode 32 (0x20), x 56.000000, y 61.000000 advance x 3.000000, y 0.000000 i 5: charCode 104 (0x68), x 59.000000, y 61.000000 advance x 8.000000, y 0.000000 i 6: charCode 97 (0x61), x 67.000000, y 61.000000 advance x 7.000000, y 0.000000 i 7: charCode 118 (0x76), x 74.000000, y 61.000000 advance x 7.000000, y 0.000000 i 8: charCode 101 (0x65), x 81.000000, y 61.000000 advance x 7.000000, y 0.000000 i 9: charCode 32 (0x20), x 88.000000, y 61.000000 advance x 3.000000, y 0.000000 i 10: charCode 116 (0x74), x 91.000000, y 61.000000 advance x 5.000000, y 0.000000 i 11: charCode 104 (0x68), x 96.000000, y 61.000000 advance x 8.000000, y 0.000000 i 12: charCode 105 (0x69), x 104.000000, y 61.000000 advance x 3.000000, y 0.000000 i 13: charCode 115 (0x73), x 107.000000, y 61.000000 advance x 6.000000, y 0.000000 i 14: charCode 32 (0x20), x 113.000000, y 61.000000 advance x 3.000000, y 0.000000 i 15: charCode 111 (0x6f), x 116.000000, y 61.000000 advance x 8.000000, y 0.000000 i 16: charCode 110 (0x6e), x 124.000000, y 61.000000 advance x 8.000000, y 0.000000 i 17: charCode 101 (0x65), x 132.000000, y 61.000000 advance x 7.000000, y 0.000000 Finish x 139.000000, y 61.000000 consumer 0x7f126fe5a9c0, font 0x1058018ce640, string 0x7f126fe5ac80, length 20, maxChars 2147483647, escapement_delta (nil), spacing 2, offsets 0x7f126fe5ae90, cacheref 0x7f126fe5a900 got font cache entry 0x105800f31b30 i 0: charCode 9995 (0x270b), x 23.000000, y 61.000000 advance x 11.000000, y 0.000000 i 1: charCode 32 (0x20), x 34.000000, y 61.000000 advance x 3.000000, y 0.000000 i 2: charCode 87 (0x57), x 37.000000, y 61.000000 advance x 12.000000, y 0.000000 i 3: charCode 101 (0x65), x 49.000000, y 61.000000 advance x 7.000000, y 0.000000 i 4: charCode 32 (0x20), x 56.000000, y 61.000000 advance x 3.000000, y 0.000000 i 5: charCode 104 (0x68), x 59.000000, y 61.000000 advance x 8.000000, y 0.000000 i 6: charCode 97 (0x61), x 67.000000, y 61.000000 advance x 7.000000, y 0.000000 i 7: charCode 118 (0x76), x 74.000000, y 61.000000 advance x 7.000000, y 0.000000 i 8: charCode 101 (0x65), x 81.000000, y 61.000000 advance x 7.000000, y 0.000000 i 9: charCode 32 (0x20), x 88.000000, y 61.000000 advance x 3.000000, y 0.000000 i 10: charCode 116 (0x74), x 91.000000, y 61.000000 advance x 5.000000, y 0.000000 i 11: charCode 104 (0x68), x 96.000000, y 61.000000 advance x 8.000000, y 0.000000 i 12: charCode 105 (0x69), x 104.000000, y 61.000000 advance x 3.000000, y 0.000000 i 13: charCode 115 (0x73), x 107.000000, y 61.000000 advance x 6.000000, y 0.000000 i 14: charCode 32 (0x20), x 113.000000, y 61.000000 advance x 3.000000, y 0.000000 i 15: charCode 111 (0x6f), x 116.000000, y 61.000000 advance x 8.000000, y 0.000000 i 16: charCode 110 (0x6e), x 124.000000, y 61.000000 advance x 8.000000, y 0.000000 i 17: charCode 101 (0x65), x 132.000000, y 61.000000 advance x 7.000000, y 0.000000 Finish x 139.000000, y 61.000000