@deck.gl-community/infovis-layers 9.3.2 → 9.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/dist/index.cjs +2998 -114
  2. package/dist/index.cjs.map +4 -4
  3. package/dist/index.d.ts +11 -2
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +9 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/layers/animation-layer/animation-layer.d.ts +30 -0
  8. package/dist/layers/animation-layer/animation-layer.d.ts.map +1 -0
  9. package/dist/layers/animation-layer/animation-layer.js +53 -0
  10. package/dist/layers/animation-layer/animation-layer.js.map +1 -0
  11. package/dist/layers/animation-layer/animation.d.ts +86 -0
  12. package/dist/layers/animation-layer/animation.d.ts.map +1 -0
  13. package/dist/layers/animation-layer/animation.js +214 -0
  14. package/dist/layers/animation-layer/animation.js.map +1 -0
  15. package/dist/layers/block-layer/block-layer-fragment.glsl.d.ts +3 -0
  16. package/dist/layers/block-layer/block-layer-fragment.glsl.d.ts.map +1 -0
  17. package/dist/layers/block-layer/block-layer-fragment.glsl.js +41 -0
  18. package/dist/layers/block-layer/block-layer-fragment.glsl.js.map +1 -0
  19. package/dist/layers/block-layer/block-layer-uniforms.d.ts +27 -0
  20. package/dist/layers/block-layer/block-layer-uniforms.d.ts.map +1 -0
  21. package/dist/layers/block-layer/block-layer-uniforms.js +26 -0
  22. package/dist/layers/block-layer/block-layer-uniforms.js.map +1 -0
  23. package/dist/layers/block-layer/block-layer-vertex.glsl.d.ts +3 -0
  24. package/dist/layers/block-layer/block-layer-vertex.glsl.d.ts.map +1 -0
  25. package/dist/layers/block-layer/block-layer-vertex.glsl.js +67 -0
  26. package/dist/layers/block-layer/block-layer-vertex.glsl.js.map +1 -0
  27. package/dist/layers/block-layer/block-layer.d.ts +71 -0
  28. package/dist/layers/block-layer/block-layer.d.ts.map +1 -0
  29. package/dist/layers/block-layer/block-layer.js +108 -0
  30. package/dist/layers/block-layer/block-layer.js.map +1 -0
  31. package/dist/layers/fast-text-layer/fast-text-layer.d.ts +148 -0
  32. package/dist/layers/fast-text-layer/fast-text-layer.d.ts.map +1 -0
  33. package/dist/layers/fast-text-layer/fast-text-layer.js +862 -0
  34. package/dist/layers/fast-text-layer/fast-text-layer.js.map +1 -0
  35. package/dist/layers/fast-text-layer/fast-text-layer.test.d.ts +2 -0
  36. package/dist/layers/fast-text-layer/fast-text-layer.test.d.ts.map +1 -0
  37. package/dist/layers/fast-text-layer/fast-text-layer.test.js +300 -0
  38. package/dist/layers/fast-text-layer/fast-text-layer.test.js.map +1 -0
  39. package/dist/layers/fast-text-layer/fast-text-layout.d.ts +179 -0
  40. package/dist/layers/fast-text-layer/fast-text-layout.d.ts.map +1 -0
  41. package/dist/layers/fast-text-layer/fast-text-layout.js +665 -0
  42. package/dist/layers/fast-text-layer/fast-text-layout.js.map +1 -0
  43. package/dist/layers/fast-text-layer/font-atlas.d.ts +98 -0
  44. package/dist/layers/fast-text-layer/font-atlas.d.ts.map +1 -0
  45. package/dist/layers/fast-text-layer/font-atlas.js +337 -0
  46. package/dist/layers/fast-text-layer/font-atlas.js.map +1 -0
  47. package/dist/layers/fast-text-layer/index.d.ts +4 -0
  48. package/dist/layers/fast-text-layer/index.d.ts.map +1 -0
  49. package/dist/layers/fast-text-layer/index.js +4 -0
  50. package/dist/layers/fast-text-layer/index.js.map +1 -0
  51. package/dist/layers/time-delta-layer.d.ts +22 -60
  52. package/dist/layers/time-delta-layer.d.ts.map +1 -1
  53. package/dist/layers/time-delta-layer.js +31 -53
  54. package/dist/layers/time-delta-layer.js.map +1 -1
  55. package/dist/synchronized-views/synchronized-views.js +1 -1
  56. package/dist/synchronized-views/synchronized-views.js.map +1 -1
  57. package/dist/utils/format-utils.d.ts +27 -3
  58. package/dist/utils/format-utils.d.ts.map +1 -1
  59. package/dist/utils/format-utils.js +72 -40
  60. package/dist/utils/format-utils.js.map +1 -1
  61. package/dist/utils/utf8-string-view.d.ts +53 -0
  62. package/dist/utils/utf8-string-view.d.ts.map +1 -0
  63. package/dist/utils/utf8-string-view.js +169 -0
  64. package/dist/utils/utf8-string-view.js.map +1 -0
  65. package/dist/utils/utf8-string-view.test.d.ts +2 -0
  66. package/dist/utils/utf8-string-view.test.d.ts.map +1 -0
  67. package/dist/utils/utf8-string-view.test.js +88 -0
  68. package/dist/utils/utf8-string-view.test.js.map +1 -0
  69. package/dist/views/bounds-utils.d.ts +23 -0
  70. package/dist/views/bounds-utils.d.ts.map +1 -0
  71. package/dist/views/bounds-utils.js +65 -0
  72. package/dist/views/bounds-utils.js.map +1 -0
  73. package/dist/views/layer-bounds-filter.d.ts +48 -0
  74. package/dist/views/layer-bounds-filter.d.ts.map +1 -0
  75. package/dist/views/layer-bounds-filter.js +99 -0
  76. package/dist/views/layer-bounds-filter.js.map +1 -0
  77. package/dist/views/layer-filter.js +4 -4
  78. package/dist/views/layer-filter.js.map +1 -1
  79. package/dist/views/orthographic-utils.d.ts +30 -2
  80. package/dist/views/orthographic-utils.d.ts.map +1 -1
  81. package/dist/views/orthographic-utils.js +33 -14
  82. package/dist/views/orthographic-utils.js.map +1 -1
  83. package/dist/views/view-layout/build-views-from-view-layout.d.ts +37 -0
  84. package/dist/views/view-layout/build-views-from-view-layout.d.ts.map +1 -0
  85. package/dist/views/view-layout/build-views-from-view-layout.js +413 -0
  86. package/dist/views/view-layout/build-views-from-view-layout.js.map +1 -0
  87. package/dist/views/view-layout/index.d.ts +3 -0
  88. package/dist/views/view-layout/index.d.ts.map +1 -0
  89. package/dist/views/view-layout/index.js +3 -0
  90. package/dist/views/view-layout/index.js.map +1 -0
  91. package/dist/views/view-layout/view-layout-item.d.ts +74 -0
  92. package/dist/views/view-layout/view-layout-item.d.ts.map +1 -0
  93. package/dist/views/view-layout/view-layout-item.js +48 -0
  94. package/dist/views/view-layout/view-layout-item.js.map +1 -0
  95. package/dist/views/view-layout/view-layout.test.d.ts +2 -0
  96. package/dist/views/view-layout/view-layout.test.d.ts.map +1 -0
  97. package/dist/views/view-layout/view-layout.test.js +112 -0
  98. package/dist/views/view-layout/view-layout.test.js.map +1 -0
  99. package/dist/views/viewport-bounds-utils.d.ts +55 -0
  100. package/dist/views/viewport-bounds-utils.d.ts.map +1 -0
  101. package/dist/views/viewport-bounds-utils.js +70 -0
  102. package/dist/views/viewport-bounds-utils.js.map +1 -0
  103. package/package.json +15 -5
  104. package/src/index.ts +91 -2
  105. package/src/layers/animation-layer/animation-layer.ts +92 -0
  106. package/src/layers/animation-layer/animation.ts +328 -0
  107. package/src/layers/block-layer/block-layer-fragment.glsl.ts +41 -0
  108. package/src/layers/block-layer/block-layer-uniforms.ts +43 -0
  109. package/src/layers/block-layer/block-layer-vertex.glsl.ts +67 -0
  110. package/src/layers/block-layer/block-layer.ts +199 -0
  111. package/src/layers/fast-text-layer/fast-text-layer.test.ts +359 -0
  112. package/src/layers/fast-text-layer/fast-text-layer.ts +1208 -0
  113. package/src/layers/fast-text-layer/fast-text-layout.ts +1124 -0
  114. package/src/layers/fast-text-layer/font-atlas.ts +574 -0
  115. package/src/layers/fast-text-layer/index.ts +37 -0
  116. package/src/layers/time-delta-layer.ts +55 -70
  117. package/src/synchronized-views/synchronized-views.ts +1 -1
  118. package/src/utils/format-utils.ts +90 -40
  119. package/src/utils/utf8-string-view.test.ts +119 -0
  120. package/src/utils/utf8-string-view.ts +273 -0
  121. package/src/views/bounds-utils.ts +88 -0
  122. package/src/views/layer-bounds-filter.ts +160 -0
  123. package/src/views/layer-filter.ts +4 -4
  124. package/src/views/orthographic-utils.ts +65 -18
  125. package/src/views/view-layout/build-views-from-view-layout.ts +547 -0
  126. package/src/views/view-layout/index.ts +18 -0
  127. package/src/views/view-layout/view-layout-item.ts +125 -0
  128. package/src/views/view-layout/view-layout.test.ts +129 -0
  129. package/src/views/viewport-bounds-utils.ts +104 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fast-text-layer.js","sourceRoot":"","sources":["../../../src/layers/fast-text-layer/fast-text-layer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=fast-text-layer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fast-text-layer.test.d.ts","sourceRoot":"","sources":["../../../src/layers/fast-text-layer/fast-text-layer.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,300 @@
1
+ import * as arrow from 'apache-arrow';
2
+ import { describe, expect, it } from 'vitest';
3
+ import { buildFastTextGlyphData, buildFastTextUtf8ColumnSource, collectFastTextCharacterSet, FAST_TEXT_GLYPH_VERTEX_BYTE_STRIDE, updateFastTextDynamicGlyphAttributes } from "./fast-text-layout.js";
4
+ import { DEFAULT_FAST_TEXT_FONT_SETTINGS } from "./font-atlas.js";
5
+ const TEST_MAPPING = {
6
+ A: {
7
+ x: 0,
8
+ y: 0,
9
+ width: 10,
10
+ height: 20,
11
+ anchorX: 5,
12
+ anchorY: 15,
13
+ advance: 12
14
+ },
15
+ B: {
16
+ x: 10,
17
+ y: 0,
18
+ width: 8,
19
+ height: 20,
20
+ anchorX: 4,
21
+ anchorY: 15,
22
+ advance: 9
23
+ }
24
+ };
25
+ describe('FastTextLayer glyph expansion', () => {
26
+ it('uses SDF atlas generation by default', () => {
27
+ expect(DEFAULT_FAST_TEXT_FONT_SETTINGS.sdf).toBe(true);
28
+ });
29
+ it('builds packed glyph attributes for single-line labels', () => {
30
+ const glyphData = buildFastTextGlyphData({
31
+ data: [{ text: 'AB', position: [1, 2, 3] }],
32
+ getText: datum => datum.text,
33
+ singleLine: true,
34
+ getPosition: datum => datum.position,
35
+ getColor: [10, 20, 30, 200],
36
+ textAnchor: 'start',
37
+ alignmentBaseline: 'top',
38
+ getClipRect: [0, -1, 10, 2],
39
+ mapping: TEST_MAPPING,
40
+ baselineOffset: 5,
41
+ fontSize: 20,
42
+ lineHeight: 1
43
+ });
44
+ expect(glyphData.length).toBe(2);
45
+ expect(Array.from(glyphData.startIndices)).toEqual([0, 2]);
46
+ expect(Array.from(glyphData.attributes.instancePositions)).toEqual([1, 2, 1, 2]);
47
+ expect(readGlyphOffsets(glyphData.attributes.instanceGlyphData, glyphData.length)).toEqual([
48
+ 0, 0, 12, 0
49
+ ]);
50
+ expect(readGlyphFrames(glyphData.attributes.instanceGlyphData, glyphData.length)).toEqual([
51
+ 0, 0, 10, 20, 10, 0, 8, 20
52
+ ]);
53
+ expect(readGlyphClipRects(glyphData.attributes.instanceGlyphData, glyphData.length)).toEqual([
54
+ 0, -1, 10, 2, 0, -1, 10, 2
55
+ ]);
56
+ expect(readGlyphColors(glyphData.attributes.instanceGlyphData, glyphData.length)).toEqual([
57
+ 10, 20, 30, 200, 10, 20, 30, 200
58
+ ]);
59
+ });
60
+ it('keeps positive fractional clip dimensions visible after int16 packing', () => {
61
+ const glyphData = buildFastTextGlyphData({
62
+ data: [{ text: 'A', position: [1, 2, 3] }],
63
+ getText: datum => datum.text,
64
+ singleLine: true,
65
+ getPosition: datum => datum.position,
66
+ getColor: [10, 20, 30, 200],
67
+ textAnchor: 'start',
68
+ alignmentBaseline: 'top',
69
+ getClipRect: [0, -1, 0.25, 0.25],
70
+ mapping: TEST_MAPPING,
71
+ baselineOffset: 5,
72
+ fontSize: 20,
73
+ lineHeight: 1
74
+ });
75
+ expect(readGlyphClipRects(glyphData.attributes.instanceGlyphData, glyphData.length)).toEqual([
76
+ 0, -1, 1, 1
77
+ ]);
78
+ });
79
+ it('applies horizontal and vertical alignment in atlas pixels', () => {
80
+ const glyphData = buildFastTextGlyphData({
81
+ data: [{ text: 'AB', position: [0, 0] }],
82
+ getText: datum => datum.text,
83
+ singleLine: true,
84
+ getPosition: datum => datum.position,
85
+ getColor: [0, 0, 0, 255],
86
+ textAnchor: 'middle',
87
+ alignmentBaseline: 'center',
88
+ getClipRect: [0, 0, -1, -1],
89
+ mapping: TEST_MAPPING,
90
+ baselineOffset: 5,
91
+ fontSize: 20,
92
+ lineHeight: 1
93
+ });
94
+ expect(readGlyphOffsets(glyphData.attributes.instanceGlyphData, glyphData.length)).toEqual([
95
+ -10, -10, 2, -10
96
+ ]);
97
+ });
98
+ it('advances missing characters with zero-size glyph records', () => {
99
+ const glyphData = buildFastTextGlyphData({
100
+ data: [{ text: 'A?B', position: [0, 0] }],
101
+ getText: datum => datum.text,
102
+ singleLine: true,
103
+ getPosition: datum => datum.position,
104
+ getColor: [0, 0, 0, 255],
105
+ textAnchor: 'start',
106
+ alignmentBaseline: 'top',
107
+ getClipRect: [0, 0, -1, -1],
108
+ mapping: TEST_MAPPING,
109
+ baselineOffset: 5,
110
+ fontSize: 20,
111
+ lineHeight: 1
112
+ });
113
+ expect(glyphData.length).toBe(3);
114
+ expect(readGlyphOffsets(glyphData.attributes.instanceGlyphData, glyphData.length)).toEqual([
115
+ 0, 0, 12, 15, 44, 0
116
+ ]);
117
+ expect(readGlyphFrames(glyphData.attributes.instanceGlyphData, glyphData.length)).toEqual([
118
+ 0, 0, 10, 20, 0, 0, 0, 0, 10, 0, 8, 20
119
+ ]);
120
+ expect(Array.from(glyphData.characterSet).sort()).toEqual(['?', 'A', 'B']);
121
+ });
122
+ it('builds glyphs from a UTF-8 column without calling getText', () => {
123
+ const column = buildFastTextUtf8ColumnSource(arrow.vectorFromArray(['AB'], new arrow.Utf8()));
124
+ if (!column) {
125
+ throw new Error('Expected test Utf8 column to expose direct buffers');
126
+ }
127
+ const glyphData = buildFastTextGlyphData({
128
+ data: [{ position: [1, 2, 3] }],
129
+ textUtf8Column: column,
130
+ getTextUtf8Row: 0,
131
+ getText: () => {
132
+ throw new Error('getText should not be called for UTF-8 column mode');
133
+ },
134
+ singleLine: true,
135
+ getPosition: datum => datum.position,
136
+ getColor: [10, 20, 30, 200],
137
+ textAnchor: 'start',
138
+ alignmentBaseline: 'top',
139
+ getClipRect: [0, -1, 10, 2],
140
+ mapping: TEST_MAPPING,
141
+ baselineOffset: 5,
142
+ fontSize: 20,
143
+ lineHeight: 1
144
+ });
145
+ expect(glyphData.length).toBe(2);
146
+ expect(readGlyphOffsets(glyphData.attributes.instanceGlyphData, glyphData.length)).toEqual([
147
+ 0, 0, 12, 0
148
+ ]);
149
+ expect(readGlyphFrames(glyphData.attributes.instanceGlyphData, glyphData.length)).toEqual([
150
+ 0, 0, 10, 20, 10, 0, 8, 20
151
+ ]);
152
+ expect(Array.from(glyphData.characterSet)).toEqual([]);
153
+ });
154
+ it('builds glyphs from a reused UTF-8 view without calling getText', () => {
155
+ const bytes = new Uint8Array([65, 66]);
156
+ const glyphData = buildFastTextGlyphData({
157
+ data: [{ position: [1, 2, 3] }],
158
+ getTextUtf8: (_datum, out) => {
159
+ out.data = bytes;
160
+ out.start = 0;
161
+ out.end = bytes.length;
162
+ return true;
163
+ },
164
+ getText: () => {
165
+ throw new Error('getText should not be called for UTF-8 view mode');
166
+ },
167
+ singleLine: true,
168
+ getPosition: datum => datum.position,
169
+ getColor: [10, 20, 30, 200],
170
+ textAnchor: 'start',
171
+ alignmentBaseline: 'top',
172
+ getClipRect: [0, -1, 10, 2],
173
+ mapping: TEST_MAPPING,
174
+ baselineOffset: 5,
175
+ fontSize: 20,
176
+ lineHeight: 1
177
+ });
178
+ expect(glyphData.length).toBe(2);
179
+ expect(readGlyphOffsets(glyphData.attributes.instanceGlyphData, glyphData.length)).toEqual([
180
+ 0, 0, 12, 0
181
+ ]);
182
+ expect(Array.from(glyphData.characterSet)).toEqual([]);
183
+ });
184
+ it('does not treat newline bytes specially in single-line UTF-8 column mode', () => {
185
+ const column = buildFastTextUtf8ColumnSource(arrow.vectorFromArray(['A\nB'], new arrow.Utf8()));
186
+ if (!column) {
187
+ throw new Error('Expected test Utf8 column to expose direct buffers');
188
+ }
189
+ const glyphData = buildFastTextGlyphData({
190
+ data: [{ position: [0, 0] }],
191
+ textUtf8Column: column,
192
+ getTextUtf8Row: 0,
193
+ getText: () => {
194
+ throw new Error('getText should not be called for UTF-8 column mode');
195
+ },
196
+ singleLine: true,
197
+ getPosition: datum => datum.position,
198
+ getColor: [0, 0, 0, 255],
199
+ textAnchor: 'start',
200
+ alignmentBaseline: 'top',
201
+ getClipRect: [0, 0, -1, -1],
202
+ mapping: TEST_MAPPING,
203
+ baselineOffset: 5,
204
+ fontSize: 20,
205
+ lineHeight: 1
206
+ });
207
+ expect(glyphData.length).toBe(3);
208
+ expect(readGlyphOffsets(glyphData.attributes.instanceGlyphData, glyphData.length)).toEqual([
209
+ 0, 0, 12, 15, 44, 0
210
+ ]);
211
+ });
212
+ it('collects characters for auto atlas generation without newline entries', () => {
213
+ const characterSet = collectFastTextCharacterSet({
214
+ data: [{ text: 'A\nB' }],
215
+ getText: datum => datum.text
216
+ });
217
+ expect(Array.from(characterSet).sort()).toEqual(['A', 'B']);
218
+ });
219
+ it('rewrites dynamic positions and clip rects without changing glyph layout or colors', () => {
220
+ const glyphData = buildFastTextGlyphData({
221
+ data: [{ text: 'AB', position: [1, 2, 3] }],
222
+ getText: datum => datum.text,
223
+ singleLine: true,
224
+ getPosition: datum => datum.position,
225
+ getColor: [10, 20, 30, 200],
226
+ textAnchor: 'start',
227
+ alignmentBaseline: 'top',
228
+ getClipRect: [0, -1, 10, 2],
229
+ mapping: TEST_MAPPING,
230
+ baselineOffset: 5,
231
+ fontSize: 20,
232
+ lineHeight: 1
233
+ });
234
+ const previousGlyphData = new Uint8Array(glyphData.attributes.instanceGlyphData);
235
+ const stats = updateFastTextDynamicGlyphAttributes({
236
+ data: [{ text: 'AB', position: [5, 6, 7] }],
237
+ glyphData,
238
+ getPosition: datum => datum.position,
239
+ getColor: () => {
240
+ throw new Error('getColor should not be called when colors are unchanged');
241
+ },
242
+ getClipRect: [3, -2, 4, 5],
243
+ updatePositions: true,
244
+ updateColors: false,
245
+ updateClipRects: true
246
+ });
247
+ expect(stats.rowCount).toBe(1);
248
+ expect(stats.glyphCount).toBe(2);
249
+ expect(Array.from(glyphData.attributes.instancePositions)).toEqual([5, 6, 5, 6]);
250
+ expect(readGlyphOffsets(glyphData.attributes.instanceGlyphData, glyphData.length)).toEqual([
251
+ 0, 0, 12, 0
252
+ ]);
253
+ expect(readGlyphFrames(glyphData.attributes.instanceGlyphData, glyphData.length)).toEqual([
254
+ 0, 0, 10, 20, 10, 0, 8, 20
255
+ ]);
256
+ expect(readGlyphClipRects(glyphData.attributes.instanceGlyphData, glyphData.length)).toEqual([
257
+ 3, -2, 4, 5, 3, -2, 4, 5
258
+ ]);
259
+ expect(readGlyphColors(glyphData.attributes.instanceGlyphData, glyphData.length)).toEqual([
260
+ 10, 20, 30, 200, 10, 20, 30, 200
261
+ ]);
262
+ expect(readGlyphOffsets(previousGlyphData, glyphData.length)).toEqual([0, 0, 12, 0]);
263
+ });
264
+ });
265
+ function readGlyphOffsets(instanceGlyphData, glyphCount) {
266
+ const int16Values = new Int16Array(instanceGlyphData.buffer);
267
+ const offsets = [];
268
+ for (let glyphIndex = 0; glyphIndex < glyphCount; glyphIndex++) {
269
+ const recordInt16Index = (glyphIndex * FAST_TEXT_GLYPH_VERTEX_BYTE_STRIDE) / Int16Array.BYTES_PER_ELEMENT;
270
+ offsets.push(int16Values[recordInt16Index], int16Values[recordInt16Index + 1]);
271
+ }
272
+ return offsets;
273
+ }
274
+ function readGlyphFrames(instanceGlyphData, glyphCount) {
275
+ const uint16Values = new Uint16Array(instanceGlyphData.buffer);
276
+ const frames = [];
277
+ for (let glyphIndex = 0; glyphIndex < glyphCount; glyphIndex++) {
278
+ const recordInt16Index = (glyphIndex * FAST_TEXT_GLYPH_VERTEX_BYTE_STRIDE) / Int16Array.BYTES_PER_ELEMENT;
279
+ frames.push(uint16Values[recordInt16Index + 2], uint16Values[recordInt16Index + 3], uint16Values[recordInt16Index + 4], uint16Values[recordInt16Index + 5]);
280
+ }
281
+ return frames;
282
+ }
283
+ function readGlyphClipRects(instanceGlyphData, glyphCount) {
284
+ const int16Values = new Int16Array(instanceGlyphData.buffer);
285
+ const clipRects = [];
286
+ for (let glyphIndex = 0; glyphIndex < glyphCount; glyphIndex++) {
287
+ const recordInt16Index = (glyphIndex * FAST_TEXT_GLYPH_VERTEX_BYTE_STRIDE) / Int16Array.BYTES_PER_ELEMENT;
288
+ clipRects.push(int16Values[recordInt16Index + 6], int16Values[recordInt16Index + 7], int16Values[recordInt16Index + 8], int16Values[recordInt16Index + 9]);
289
+ }
290
+ return clipRects;
291
+ }
292
+ function readGlyphColors(instanceGlyphData, glyphCount) {
293
+ const colors = [];
294
+ for (let glyphIndex = 0; glyphIndex < glyphCount; glyphIndex++) {
295
+ const recordByteIndex = glyphIndex * FAST_TEXT_GLYPH_VERTEX_BYTE_STRIDE;
296
+ colors.push(instanceGlyphData[recordByteIndex + Int16Array.BYTES_PER_ELEMENT * 10], instanceGlyphData[recordByteIndex + Int16Array.BYTES_PER_ELEMENT * 10 + 1], instanceGlyphData[recordByteIndex + Int16Array.BYTES_PER_ELEMENT * 10 + 2], instanceGlyphData[recordByteIndex + Int16Array.BYTES_PER_ELEMENT * 10 + 3]);
297
+ }
298
+ return colors;
299
+ }
300
+ //# sourceMappingURL=fast-text-layer.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fast-text-layer.test.js","sourceRoot":"","sources":["../../../src/layers/fast-text-layer/fast-text-layer.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAC,MAAM,QAAQ,CAAC;AAE5C,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,2BAA2B,EAC3B,kCAAkC,EAClC,oCAAoC,EACrC,8BAA2B;AAC5B,OAAO,EAAC,+BAA+B,EAAC,wBAAqB;AAU7D,MAAM,YAAY,GAA6B;IAC7C,CAAC,EAAE;QACD,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;KACZ;IACD,CAAC,EAAE;QACD,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,CAAC;KACX;CACF,CAAC;AAEF,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,+BAA+B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,SAAS,GAAG,sBAAsB,CAAC;YACvC,IAAI,EAAE,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAC,CAAuB;YAC/D,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI;YAC5B,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ;YACpC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;YAC3B,UAAU,EAAE,OAAO;YACnB,iBAAiB,EAAE,KAAK;YACxB,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3B,OAAO,EAAE,YAAY;YACrB,cAAc,EAAE,CAAC;YACjB,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACzF,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;SACZ,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACxF,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;SAC3B,CAAC,CAAC;QACH,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3F,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;SAC3B,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACxF,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG;SACjC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,SAAS,GAAG,sBAAsB,CAAC;YACvC,IAAI,EAAE,CAAC,EAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAC,CAAuB;YAC9D,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI;YAC5B,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ;YACpC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;YAC3B,UAAU,EAAE,OAAO;YACnB,iBAAiB,EAAE,KAAK;YACxB,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;YAChC,OAAO,EAAE,YAAY;YACrB,cAAc,EAAE,CAAC;YACjB,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;QAEH,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3F,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,SAAS,GAAG,sBAAsB,CAAC;YACvC,IAAI,EAAE,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAuB;YAC5D,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI;YAC5B,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ;YACpC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;YACxB,UAAU,EAAE,QAAQ;YACpB,iBAAiB,EAAE,QAAQ;YAC3B,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3B,OAAO,EAAE,YAAY;YACrB,cAAc,EAAE,CAAC;YACjB,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACzF,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,SAAS,GAAG,sBAAsB,CAAC;YACvC,IAAI,EAAE,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAuB;YAC7D,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI;YAC5B,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ;YACpC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;YACxB,UAAU,EAAE,OAAO;YACnB,iBAAiB,EAAE,KAAK;YACxB,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3B,OAAO,EAAE,YAAY;YACrB,cAAc,EAAE,CAAC;YACjB,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACzF,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;SACpB,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACxF,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;SACvC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,MAAM,GAAG,6BAA6B,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9F,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,SAAS,GAAG,sBAAsB,CAAC;YACvC,IAAI,EAAE,CAAC,EAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAC,CAAyC;YACrE,cAAc,EAAE,MAAM;YACtB,cAAc,EAAE,CAAC;YACjB,OAAO,EAAE,GAAG,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACxE,CAAC;YACD,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ;YACpC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;YAC3B,UAAU,EAAE,OAAO;YACnB,iBAAiB,EAAE,KAAK;YACxB,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3B,OAAO,EAAE,YAAY;YACrB,cAAc,EAAE,CAAC;YACjB,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACzF,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;SACZ,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACxF,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;SAC3B,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,sBAAsB,CAAC;YACvC,IAAI,EAAE,CAAC,EAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAC,CAAyC;YACrE,WAAW,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;gBACjB,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;gBACd,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;gBACvB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,EAAE,GAAG,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACtE,CAAC;YACD,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ;YACpC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;YAC3B,UAAU,EAAE,OAAO;YACnB,iBAAiB,EAAE,KAAK;YACxB,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3B,OAAO,EAAE,YAAY;YACrB,cAAc,EAAE,CAAC;YACjB,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACzF,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;SACZ,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,MAAM,GAAG,6BAA6B,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChG,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,SAAS,GAAG,sBAAsB,CAAC;YACvC,IAAI,EAAE,CAAC,EAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAyC;YAClE,cAAc,EAAE,MAAM;YACtB,cAAc,EAAE,CAAC;YACjB,OAAO,EAAE,GAAG,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACxE,CAAC;YACD,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ;YACpC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;YACxB,UAAU,EAAE,OAAO;YACnB,iBAAiB,EAAE,KAAK;YACxB,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3B,OAAO,EAAE,YAAY;YACrB,cAAc,EAAE,CAAC;YACjB,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACzF,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;SACpB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,YAAY,GAAG,2BAA2B,CAAC;YAC/C,IAAI,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;YACtB,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI;SAC7B,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,GAAG,EAAE;QAC3F,MAAM,SAAS,GAAG,sBAAsB,CAAC;YACvC,IAAI,EAAE,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAC,CAAuB;YAC/D,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI;YAC5B,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ;YACpC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;YAC3B,UAAU,EAAE,OAAO;YACnB,iBAAiB,EAAE,KAAK;YACxB,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3B,OAAO,EAAE,YAAY;YACrB,cAAc,EAAE,CAAC;YACjB,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAEjF,MAAM,KAAK,GAAG,oCAAoC,CAAC;YACjD,IAAI,EAAE,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAC,CAAuB;YAC/D,SAAS;YACT,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ;YACpC,QAAQ,EAAE,GAAG,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;YAC7E,CAAC;YACD,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1B,eAAe,EAAE,IAAI;YACrB,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACzF,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;SACZ,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACxF,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;SAC3B,CAAC,CAAC;QACH,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3F,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;SACzB,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACxF,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG;SACjC,CAAC,CAAC;QACH,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,iBAA6B,EAAE,UAAkB;IACzE,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;QAC/D,MAAM,gBAAgB,GACpB,CAAC,UAAU,GAAG,kCAAkC,CAAC,GAAG,UAAU,CAAC,iBAAiB,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,iBAA6B,EAAE,UAAkB;IACxE,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;QAC/D,MAAM,gBAAgB,GACpB,CAAC,UAAU,GAAG,kCAAkC,CAAC,GAAG,UAAU,CAAC,iBAAiB,CAAC;QACnF,MAAM,CAAC,IAAI,CACT,YAAY,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAClC,YAAY,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAClC,YAAY,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAClC,YAAY,CAAC,gBAAgB,GAAG,CAAC,CAAC,CACnC,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,iBAA6B,EAAE,UAAkB;IAC3E,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;QAC/D,MAAM,gBAAgB,GACpB,CAAC,UAAU,GAAG,kCAAkC,CAAC,GAAG,UAAU,CAAC,iBAAiB,CAAC;QACnF,SAAS,CAAC,IAAI,CACZ,WAAW,CAAC,gBAAgB,GAAG,CAAC,CAAC,EACjC,WAAW,CAAC,gBAAgB,GAAG,CAAC,CAAC,EACjC,WAAW,CAAC,gBAAgB,GAAG,CAAC,CAAC,EACjC,WAAW,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAClC,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,iBAA6B,EAAE,UAAkB;IACxE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;QAC/D,MAAM,eAAe,GAAG,UAAU,GAAG,kCAAkC,CAAC;QACxE,MAAM,CAAC,IAAI,CACT,iBAAiB,CAAC,eAAe,GAAG,UAAU,CAAC,iBAAiB,GAAG,EAAE,CAAC,EACtE,iBAAiB,CAAC,eAAe,GAAG,UAAU,CAAC,iBAAiB,GAAG,EAAE,GAAG,CAAC,CAAC,EAC1E,iBAAiB,CAAC,eAAe,GAAG,UAAU,CAAC,iBAAiB,GAAG,EAAE,GAAG,CAAC,CAAC,EAC1E,iBAAiB,CAAC,eAAe,GAAG,UAAU,CAAC,iBAAiB,GAAG,EAAE,GAAG,CAAC,CAAC,CAC3E,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,179 @@
1
+ import type { Utf8ColumnSource, Utf8StringView } from "../../utils/utf8-string-view.js";
2
+ import type { FastTextCharacterMapping } from "./font-atlas.js";
3
+ import type { Accessor, AccessorContext, Color, LayerDataSource, Position } from '@deck.gl/core';
4
+ import type * as arrow from 'apache-arrow';
5
+ /** Horizontal label anchor accepted by {@link FastTextLayer}. */
6
+ export type FastTextAnchor = 'start' | 'middle' | 'end';
7
+ /** Vertical label baseline accepted by {@link FastTextLayer}. */
8
+ export type FastTextAlignmentBaseline = 'top' | 'center' | 'bottom';
9
+ /** Content alignment mode accepted by {@link FastTextLayer}. */
10
+ export type FastTextContentAlign = 'none' | 'start' | 'center' | 'end';
11
+ /** Source-row clip rectangle in deck.gl text content coordinates. */
12
+ export type FastTextClipRect = readonly [x: number, y: number, width: number, height: number];
13
+ /** Direct-buffer UTF-8 column source consumed by {@link FastTextLayer}. */
14
+ export type FastTextUtf8ColumnSource = Utf8ColumnSource;
15
+ /** Arrow Utf8 vector or pre-normalized UTF-8 column source consumed by {@link FastTextLayer}. */
16
+ export type FastTextUtf8Column = arrow.Vector<arrow.Utf8> | FastTextUtf8ColumnSource;
17
+ /** Accessor that fills a caller-owned UTF-8 byte view for one source row. */
18
+ export type FastTextUtf8ViewAccessor<DataT> = (object: DataT, out: Utf8StringView, objectInfo: AccessorContext<DataT>) => boolean;
19
+ /**
20
+ * Bytes per generated glyph vertex record.
21
+ *
22
+ * The record stores `sint16x2 glyphOffsets`, `uint16x4 glyphFrames`, `sint16x4 clipRect`,
23
+ * and `unorm8x4 color`.
24
+ */
25
+ export declare const FAST_TEXT_GLYPH_VERTEX_BYTE_STRIDE: number;
26
+ /** Packed per-glyph typed arrays consumed by the fast text shader. */
27
+ export type FastTextGlyphAttributes = {
28
+ /**
29
+ * Interleaved generated glyph records.
30
+ *
31
+ * Each record stores `[offsetX, offsetY]` as signed 16-bit integers,
32
+ * `[atlasX, atlasY, atlasWidth, atlasHeight]` as unsigned 16-bit integers,
33
+ * `[clipX, clipY, clipWidth, clipHeight]` as signed 16-bit integers, and RGBA color as
34
+ * four normalized unsigned bytes.
35
+ */
36
+ instanceGlyphData: Uint8Array;
37
+ /** Per-glyph 2D source anchor position, repeated from source label rows. */
38
+ instancePositions: Float32Array;
39
+ };
40
+ /** Timing counters captured while expanding source rows into FastText glyph attributes. */
41
+ export type FastTextGlyphBuildStats = {
42
+ /** Source text path used for this glyph build. */
43
+ sourceMode: 'string' | 'utf8-column' | 'utf8-view';
44
+ /** Layout path used for this glyph build. */
45
+ layoutMode: 'single-line' | 'multi-line';
46
+ /** Number of source rows visited. */
47
+ rowCount: number;
48
+ /** Number of generated glyph instances. */
49
+ glyphCount: number;
50
+ /** Number of bytes occupied by generated CPU attribute arrays. */
51
+ attributeByteLength: number;
52
+ /** Time spent normalizing the optional Arrow UTF-8 column source. */
53
+ columnNormalizeDurationMs: number;
54
+ /** Time spent counting rows and glyphs before fixed-size allocation. */
55
+ countDurationMs: number;
56
+ /** Time spent allocating generated CPU attribute arrays. */
57
+ allocateDurationMs: number;
58
+ /** Time spent writing generated CPU attribute arrays. */
59
+ writeDurationMs: number;
60
+ /** Write-phase time spent resolving label text or UTF-8 row views. */
61
+ textResolveDurationMs: number;
62
+ /** Write-phase time spent resolving style accessors for position, color, and clip rect. */
63
+ styleAccessorDurationMs: number;
64
+ /** Write-phase time spent computing label layout offsets and widths. */
65
+ layoutDurationMs: number;
66
+ /** Write-phase time spent packing per-glyph attribute records. */
67
+ glyphWriteDurationMs: number;
68
+ /** Total time spent in FastText glyph-data construction. */
69
+ totalDurationMs: number;
70
+ };
71
+ /** Result of expanding source text rows into one glyph instance stream. */
72
+ export type FastTextGlyphData = {
73
+ /** Number of rendered glyph instances. */
74
+ length: number;
75
+ /** Cumulative glyph starts, one entry per source row plus a terminal entry. */
76
+ startIndices: Uint32Array;
77
+ /** Packed per-glyph attributes ready for GPU upload. */
78
+ attributes: FastTextGlyphAttributes;
79
+ /** Characters observed while visiting source text rows. */
80
+ characterSet: Set<string>;
81
+ /** Approximate CPU typed-array bytes occupied by this glyph data. */
82
+ byteLength: number;
83
+ /** Timing counters for the CPU glyph attribute build. */
84
+ buildStats: FastTextGlyphBuildStats;
85
+ };
86
+ /** Inputs used to collect an automatic atlas character set. */
87
+ export type CollectFastTextCharacterSetProps<DataT> = {
88
+ /** Source label rows. */
89
+ data: LayerDataSource<DataT>;
90
+ /** Source-row text accessor. */
91
+ getText: Accessor<DataT, string>;
92
+ };
93
+ /** Inputs used to build a packed fast text glyph stream. */
94
+ export type BuildFastTextGlyphDataProps<DataT> = {
95
+ /** Source label rows. */
96
+ data: LayerDataSource<DataT>;
97
+ /** Source-row text accessor used by the string path. */
98
+ getText: Accessor<DataT, string>;
99
+ /** Optional UTF-8 text column used by the byte path. */
100
+ textUtf8Column?: FastTextUtf8Column | null;
101
+ /** Source-row UTF-8 column row accessor. Defaults to the source row index. */
102
+ getTextUtf8Row?: Accessor<DataT, number | null>;
103
+ /** Optional accessor that fills a reused UTF-8 byte view for the source row. */
104
+ getTextUtf8?: FastTextUtf8ViewAccessor<DataT> | null;
105
+ /** Whether source labels are expected to be single-line strings. */
106
+ singleLine: boolean;
107
+ /** Source-row position accessor. */
108
+ getPosition: Accessor<DataT, Position>;
109
+ /** Source-row color accessor. */
110
+ getColor: Accessor<DataT, Color>;
111
+ /** Layer-wide horizontal text anchor. */
112
+ textAnchor: FastTextAnchor;
113
+ /** Layer-wide vertical alignment baseline. */
114
+ alignmentBaseline: FastTextAlignmentBaseline;
115
+ /** Source-row content clip rectangle accessor. */
116
+ getClipRect: Accessor<DataT, FastTextClipRect>;
117
+ /** Glyph metric lookup keyed by rendered character. */
118
+ mapping: FastTextCharacterMapping;
119
+ /** Atlas baseline offset in pixels. */
120
+ baselineOffset: number;
121
+ /** Atlas font size in pixels. */
122
+ fontSize: number;
123
+ /** Unitless line-height multiplier. */
124
+ lineHeight: number;
125
+ };
126
+ /** Inputs used to rewrite dynamic per-row glyph attributes without rebuilding text layout. */
127
+ export type UpdateFastTextDynamicGlyphAttributesProps<DataT> = {
128
+ /** Source label rows. */
129
+ data: LayerDataSource<DataT>;
130
+ /** Existing glyph data whose dynamic attributes should be updated in place. */
131
+ glyphData: FastTextGlyphData;
132
+ /** Source-row position accessor. */
133
+ getPosition: Accessor<DataT, Position>;
134
+ /** Source-row color accessor. */
135
+ getColor: Accessor<DataT, Color>;
136
+ /** Source-row content clip rectangle accessor. */
137
+ getClipRect: Accessor<DataT, FastTextClipRect>;
138
+ /** Whether to rewrite repeated per-glyph anchor positions. */
139
+ updatePositions: boolean;
140
+ /** Whether to rewrite packed per-glyph colors. */
141
+ updateColors: boolean;
142
+ /** Whether to rewrite packed per-glyph clip rectangles. */
143
+ updateClipRects: boolean;
144
+ };
145
+ /** Timing counters captured while rewriting dynamic FastText glyph attributes. */
146
+ export type FastTextDynamicGlyphUpdateStats = {
147
+ /** Number of source rows visited. */
148
+ rowCount: number;
149
+ /** Number of generated glyph instances visited. */
150
+ glyphCount: number;
151
+ /** Number of bytes occupied by the existing CPU attribute arrays. */
152
+ attributeByteLength: number;
153
+ /** Time spent resolving position accessors. */
154
+ positionAccessorDurationMs: number;
155
+ /** Time spent resolving color accessors. */
156
+ colorAccessorDurationMs: number;
157
+ /** Time spent resolving clip-rectangle accessors. */
158
+ clipRectAccessorDurationMs: number;
159
+ /** Time spent writing dynamic glyph attributes. */
160
+ writeDurationMs: number;
161
+ /** Total time spent updating dynamic glyph attributes. */
162
+ totalDurationMs: number;
163
+ };
164
+ /** Build a direct-buffer UTF-8 column source without copying Arrow string bytes. */
165
+ export declare function buildFastTextUtf8ColumnSource(utf8Column: arrow.Vector<arrow.Utf8>): FastTextUtf8ColumnSource | null;
166
+ /** Collect all renderable characters reached by a text accessor. */
167
+ export declare function collectFastTextCharacterSet<DataT>(props: CollectFastTextCharacterSetProps<DataT>): Set<string>;
168
+ /** Build packed per-glyph attributes for one fast text layer update. */
169
+ export declare function buildFastTextGlyphData<DataT>(props: BuildFastTextGlyphDataProps<DataT>): FastTextGlyphData;
170
+ /** Build packed per-glyph attributes for source rows that are expected to contain no newlines. */
171
+ export declare function buildSingleLineGlyphData<DataT>(props: BuildFastTextGlyphDataProps<DataT> & {
172
+ /** Normalized UTF-8 column source, when the byte path is active. */
173
+ textUtf8Column?: FastTextUtf8ColumnSource | null;
174
+ }): FastTextGlyphData;
175
+ /** Build packed per-glyph attributes for source rows that may contain newlines. */
176
+ export declare function buildMultiLineGlyphData<DataT>(props: BuildFastTextGlyphDataProps<DataT>): FastTextGlyphData;
177
+ /** Rewrite dynamic per-row glyph attributes while preserving generated text layout attributes. */
178
+ export declare function updateFastTextDynamicGlyphAttributes<DataT>(props: UpdateFastTextDynamicGlyphAttributesProps<DataT>): FastTextDynamicGlyphUpdateStats;
179
+ //# sourceMappingURL=fast-text-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fast-text-layout.d.ts","sourceRoot":"","sources":["../../../src/layers/fast-text-layer/fast-text-layout.ts"],"names":[],"mappings":"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"}