@endge/nova 0.13.6 → 0.13.14

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 (119) hide show
  1. package/dist/domain/constants/nova-phase.d.ts +16 -0
  2. package/dist/domain/types/base.types.d.ts +177 -0
  3. package/dist/domain/types/component.types.d.ts +156 -0
  4. package/dist/domain/types/context.types.d.ts +31 -0
  5. package/dist/domain/types/cursor.types.d.ts +89 -0
  6. package/dist/domain/types/diagnostics.types.d.ts +148 -0
  7. package/dist/domain/types/events.types.d.ts +85 -0
  8. package/dist/domain/types/export.types.d.ts +27 -0
  9. package/dist/domain/types/hit-test.types.d.ts +16 -0
  10. package/dist/domain/types/motion.types.d.ts +118 -0
  11. package/dist/domain/types/renderer.types.d.ts +607 -0
  12. package/dist/domain/types/rendering/index.d.ts +559 -0
  13. package/dist/domain/types/semantic.types.d.ts +69 -0
  14. package/dist/domain/types/sound.types.d.ts +84 -0
  15. package/dist/domain/types/theme.types.d.ts +53 -0
  16. package/dist/domain/utils/bounds.d.ts +34 -0
  17. package/dist/domain/utils/schemaBounds.d.ts +10 -0
  18. package/dist/index.d.ts +82 -8919
  19. package/dist/model/input/NovaCaretBlinkController.d.ts +35 -0
  20. package/dist/model/input/NovaClipboardService.d.ts +18 -0
  21. package/dist/model/input/NovaInputProxy_Adapter.d.ts +61 -0
  22. package/dist/model/input/NovaInputValidationController.d.ts +46 -0
  23. package/dist/model/input/NovaTextInputController.d.ts +126 -0
  24. package/dist/model/input/NovaTextLayoutEngine.d.ts +31 -0
  25. package/dist/model/input/index.d.ts +7 -0
  26. package/dist/model/input/nova-input.types.d.ts +137 -0
  27. package/dist/model/motion/NovaMotionEngine.d.ts +152 -0
  28. package/dist/model/motion/nova-motion-easing.d.ts +13 -0
  29. package/dist/model/motion/nova-motion-interpolation.d.ts +19 -0
  30. package/dist/model/motion/nova-motion-presets.d.ts +288 -0
  31. package/dist/model/motion/nova-motion-timeline.d.ts +5 -0
  32. package/dist/model/platform/NovaCanvas.d.ts +112 -0
  33. package/dist/model/platform/NovaGraphics.d.ts +32 -0
  34. package/dist/model/render/backends/canvas2d/NovaCanvas2DTargetManager.d.ts +29 -0
  35. package/dist/model/render/backends/canvas2d/NovaRenderer2D.d.ts +238 -0
  36. package/dist/model/render/backends/nova-render-backend-factory.d.ts +10 -0
  37. package/dist/model/render/backends/nova-render-backend.d.ts +16 -0
  38. package/dist/model/render/backends/webgl/NovaGpuBufferArena.d.ts +76 -0
  39. package/dist/model/render/backends/webgl/NovaRendererWebGL.d.ts +154 -0
  40. package/dist/model/render/backends/webgl/NovaWebGLBatcher.d.ts +17 -0
  41. package/dist/model/render/backends/webgl/NovaWebGLBuffer.d.ts +19 -0
  42. package/dist/model/render/backends/webgl/NovaWebGLDevice.d.ts +24 -0
  43. package/dist/model/render/backends/webgl/NovaWebGLDiagnostics.d.ts +29 -0
  44. package/dist/model/render/backends/webgl/NovaWebGLFrameRenderer.d.ts +1013 -0
  45. package/dist/model/render/backends/webgl/NovaWebGLProgram.d.ts +33 -0
  46. package/dist/model/render/backends/webgl/NovaWebGLTargetManager.d.ts +11 -0
  47. package/dist/model/render/backends/webgl/NovaWebGLTextRenderer.d.ts +17 -0
  48. package/dist/model/render/backends/webgl/NovaWebGLTextureManager.d.ts +16 -0
  49. package/dist/model/render/compiler/NovaRenderBuilder.d.ts +176 -0
  50. package/dist/model/render/compiler/NovaRenderCommandWriter.d.ts +166 -0
  51. package/dist/model/render/compiler/NovaRenderCompiler.d.ts +48 -0
  52. package/dist/model/render/compiler/NovaRenderFrameBuilder.d.ts +59 -0
  53. package/dist/model/render/graph/NovaRenderGraph.d.ts +96 -0
  54. package/dist/model/render/graph/NovaRenderHitIndex.d.ts +54 -0
  55. package/dist/model/render/graph/nova-render-culling.d.ts +26 -0
  56. package/dist/model/render/graph/nova-render-group.d.ts +18 -0
  57. package/dist/model/render/graph/nova-render-item.d.ts +35 -0
  58. package/dist/model/render/graph/nova-render-layer.d.ts +5 -0
  59. package/dist/model/render/graph/nova-render-stream.d.ts +117 -0
  60. package/dist/model/render/orchestration/NovaRenderOrchestrator.d.ts +73 -0
  61. package/dist/model/render/policy/nova-render-policy.d.ts +45 -0
  62. package/dist/model/render/resources/NovaGlyphAtlasManager.d.ts +45 -0
  63. package/dist/model/render/resources/NovaRenderResourceCache.d.ts +30 -0
  64. package/dist/model/render/resources/NovaRenderScheduler.d.ts +33 -0
  65. package/dist/model/render/resources/NovaTextAtlasManager.d.ts +44 -0
  66. package/dist/model/render/resources/NovaTextLayoutEngine.d.ts +23 -0
  67. package/dist/model/render/resources/NovaTextureAtlasManager.d.ts +95 -0
  68. package/dist/model/render/schema/NovaRenderContext.d.ts +74 -0
  69. package/dist/model/render/schema/nova-color-parser.d.ts +18 -0
  70. package/dist/model/render/schema/nova-style-compiler.d.ts +88 -0
  71. package/dist/model/render/targets/NovaRenderTargetManager.d.ts +51 -0
  72. package/dist/model/render/targets/nova-render-target-resource.d.ts +14 -0
  73. package/dist/model/render/utils/nova-icon-rendering.d.ts +9 -0
  74. package/dist/model/runtime/app/Nova.d.ts +167 -0
  75. package/dist/model/runtime/app/NovaApp.d.ts +305 -0
  76. package/dist/model/runtime/app/createNovaRaphRuntime.d.ts +17 -0
  77. package/dist/model/runtime/assets/NovaAssetRegistry.d.ts +511 -0
  78. package/dist/model/runtime/commands/NovaCommandBus.d.ts +48 -0
  79. package/dist/model/runtime/components/NovaComponentNode.d.ts +109 -0
  80. package/dist/model/runtime/components/NovaComponentRegistry.d.ts +35 -0
  81. package/dist/model/runtime/components/NovaSchemaRegistry.d.ts +71 -0
  82. package/dist/model/runtime/components/nova-component-metadata.d.ts +90 -0
  83. package/dist/model/runtime/components/nova-component.decorator.d.ts +38 -0
  84. package/dist/model/runtime/components/nova-defined-component.d.ts +58 -0
  85. package/dist/model/runtime/context/nova-context.d.ts +5 -0
  86. package/dist/model/runtime/cursor/NovaCursorManager.d.ts +148 -0
  87. package/dist/model/runtime/debug/NovaDebug.d.ts +105 -0
  88. package/dist/model/runtime/debug/NovaMetrics.d.ts +55 -0
  89. package/dist/model/runtime/diagnostics/NovaDiagnostics_Module.d.ts +143 -0
  90. package/dist/model/runtime/diagnostics/adapters/NovaDiagnosticsBrowser_Adapter.d.ts +32 -0
  91. package/dist/model/runtime/interaction/NovaEvents.d.ts +229 -0
  92. package/dist/model/runtime/interaction/NovaHitIndex.d.ts +57 -0
  93. package/dist/model/runtime/interaction/NovaSpatialIndex.d.ts +49 -0
  94. package/dist/model/runtime/reactivity/nova-reactivity.d.ts +24 -0
  95. package/dist/model/runtime/refs/nova-ref.d.ts +61 -0
  96. package/dist/model/runtime/scene/NovaScene.d.ts +80 -0
  97. package/dist/model/runtime/scene/nova-scene-components.d.ts +87 -0
  98. package/dist/model/runtime/state/NovaStore.d.ts +27 -0
  99. package/dist/model/runtime/state/nova-store-decorators.d.ts +40 -0
  100. package/dist/model/runtime/state/nova-store-runtime.d.ts +23 -0
  101. package/dist/model/runtime/state/nova-store-tracking.d.ts +17 -0
  102. package/dist/model/runtime/sync/NovaSyncScope.d.ts +93 -0
  103. package/dist/model/runtime/sync/nova-sync-context.d.ts +2 -0
  104. package/dist/model/runtime/sync/nova-sync-ports.d.ts +5 -0
  105. package/dist/model/runtime/sync/nova-sync.types.d.ts +48 -0
  106. package/dist/model/runtime/template/NovaTemplateRuntime.d.ts +79 -0
  107. package/dist/model/runtime/tree/NovaContainer.d.ts +78 -0
  108. package/dist/model/runtime/tree/NovaNode.d.ts +626 -0
  109. package/dist/model/runtime/tree/NovaSurface.d.ts +95 -0
  110. package/dist/model/semantic/NovaSemanticService.d.ts +30 -0
  111. package/dist/model/sound/NovaSoundEngine.d.ts +134 -0
  112. package/dist/model/telemetry.d.ts +108 -0
  113. package/dist/model/text-selection/NovaTextSelectionService.d.ts +85 -0
  114. package/dist/model/text-selection/index.d.ts +2 -0
  115. package/dist/model/text-selection/nova-text-selection.types.d.ts +54 -0
  116. package/dist/model/theme/NovaGlobalThemeRegistry.d.ts +57 -0
  117. package/dist/model/theme/NovaThemeService.d.ts +83 -0
  118. package/dist/nova.js +14616 -14189
  119. package/package.json +29 -23
@@ -0,0 +1,1013 @@
1
+ import { NovaText } from '../../../../domain/types/renderer.types';
2
+ import { NovaRendererTextConfig, NovaRenderFrame, NovaRenderMetrics } from '../../../../domain/types/rendering/index';
3
+ import { NovaWebGLDevice } from './NovaWebGLDevice';
4
+ import { NovaAssetRegistry } from '../../../runtime/assets/NovaAssetRegistry';
5
+ /**
6
+ * Преобразует Nova render frame в WebGL draw calls и GPU uploads.
7
+ */
8
+ export declare class NovaWebGLFrameRenderer {
9
+ private readonly _device;
10
+ private readonly _textConfig;
11
+ private readonly _assets;
12
+ private readonly _gl;
13
+ private readonly _roundedProgram;
14
+ private readonly _solidProgram;
15
+ private readonly _textureProgram;
16
+ private readonly _distanceFieldTextProgram;
17
+ private readonly _particleCircleProgram;
18
+ private readonly _particleSpriteProgram;
19
+ private readonly _rectBatchProgram;
20
+ private readonly _timeRangeSegmentProgram;
21
+ private readonly _textureRectBatchProgram;
22
+ private readonly _stripeBatchProgram;
23
+ private readonly _patternRectProgram;
24
+ private readonly _roundedBuffer;
25
+ private readonly _solidBuffer;
26
+ private readonly _textureBuffer;
27
+ private readonly _distanceFieldBuffer;
28
+ private readonly _particleQuadBuffer;
29
+ private readonly _roundedVao;
30
+ private readonly _solidVao;
31
+ private readonly _textureVao;
32
+ private readonly _distanceFieldVao;
33
+ private readonly _patternRectVao;
34
+ private readonly _measureCanvas;
35
+ private readonly _textRasterCanvas;
36
+ private readonly _textures;
37
+ private readonly _renderTargets;
38
+ private readonly _textAtlasPages;
39
+ private readonly _textAtlasEntries;
40
+ private readonly _textFallbackKeys;
41
+ private readonly _glyphAtlasPages;
42
+ private readonly _glyphAtlasEntries;
43
+ private readonly _prebuiltMsdfAtlasPages;
44
+ private readonly _sourceTextureKeys;
45
+ private readonly _plainRectBatchCache;
46
+ private readonly _rectBatchCache;
47
+ private readonly _textureBatchCache;
48
+ private readonly _semanticBatchCache;
49
+ private readonly _particleCircleBatchCache;
50
+ private readonly _particleSpriteBatchCache;
51
+ private readonly _rectStreamBatchCache;
52
+ private readonly _timeRangeSegmentBatchCache;
53
+ private readonly _iconStreamBatchCache;
54
+ private readonly _textStreamBatchCache;
55
+ private readonly _stripeStreamBatchCache;
56
+ private readonly _ownedRectSchemaBatchCaches;
57
+ private readonly _ownedTextureBatchCaches;
58
+ private readonly _ownedParticleCircleBatchCaches;
59
+ private readonly _ownedParticleSpriteBatchCaches;
60
+ private readonly _ownedRectStreamBatchCaches;
61
+ private readonly _ownedTimeRangeSegmentBatchCaches;
62
+ private readonly _ownedTextureRectStreamGroupCaches;
63
+ private readonly _ownedGlyphTextStreamGroupCaches;
64
+ private readonly _ownedStripeStreamBatchCaches;
65
+ private readonly _roundedUpload;
66
+ private readonly _solidUpload;
67
+ private readonly _textureUpload;
68
+ private readonly _distanceFieldUpload;
69
+ private _rectData;
70
+ private _rectCachedData;
71
+ private _rectCachedDirtyRanges;
72
+ private _solidData;
73
+ private _solidCachedData;
74
+ private _solidCachedDirtyRanges;
75
+ private _textureData;
76
+ private _textureBatch;
77
+ private _distanceFieldData;
78
+ private _distanceFieldBatch;
79
+ private _textureCachedData;
80
+ private _textureCachedDirtyRanges;
81
+ private _textureCachedBatch;
82
+ private _roundedTransform;
83
+ private _solidTransform;
84
+ private _textureTransform;
85
+ private _distanceFieldTransform;
86
+ private _time;
87
+ private _viewportWidth;
88
+ private _viewportHeight;
89
+ private _renderResolutionWidth;
90
+ private _renderResolutionHeight;
91
+ private _activeRenderTarget;
92
+ private readonly _renderTargetStack;
93
+ private _atlasGeneration;
94
+ private _textAtlasEvictionCount;
95
+ private _glyphAtlasEvictionCount;
96
+ private readonly _textRasterBucketStateByScope;
97
+ private readonly _textRunShapeCache;
98
+ private readonly _glyphTextBatchCache;
99
+ /**
100
+ * Создает instance и подготавливает внутреннее состояние.
101
+ */
102
+ constructor(_device: NovaWebGLDevice, _textConfig?: NovaRendererTextConfig, _assets?: NovaAssetRegistry);
103
+ /**
104
+ * Выполняет render-операцию .
105
+ */
106
+ render(frame: NovaRenderFrame): NovaRenderMetrics;
107
+ /**
108
+ * Выполняет внутреннюю операцию measure text.
109
+ */
110
+ measureText(params: NovaText): {
111
+ width: number;
112
+ height: number;
113
+ };
114
+ /**
115
+ * Освобождает runtime resources и снимает связанные ссылки.
116
+ */
117
+ destroy(): void;
118
+ /**
119
+ * Выполняет внутреннюю операцию draw render item.
120
+ */
121
+ private _drawRenderItem;
122
+ /**
123
+ * Вычисляет schema content version.
124
+ */
125
+ private _resolveSchemaContentVersion;
126
+ /**
127
+ * Возвращает retained dirty indices for schema batch.
128
+ */
129
+ private _resolveSchemaDirtyIndices;
130
+ /**
131
+ * Переносит dirty indices исходного semantic batch на дочерний layer batch.
132
+ */
133
+ private _applyLayerDirtyIndices;
134
+ /**
135
+ * Выполняет внутреннюю операцию draw schema batch.
136
+ */
137
+ private _drawSchemaBatch;
138
+ /**
139
+ * Выполняет внутреннюю операцию draw plain rect schema batch.
140
+ */
141
+ private _drawPlainRectSchemaBatch;
142
+ /**
143
+ * Рисует cacheable schema rect batch из собственного GPU buffer.
144
+ */
145
+ private _drawResidentRectSchemaBatch;
146
+ /**
147
+ * Создает resident GPU resources для schema rect batch при первом использовании.
148
+ */
149
+ private _ensureRectSchemaBatchCache;
150
+ /**
151
+ * Освобождает resident resources schema rect batch.
152
+ */
153
+ private _disposeRectSchemaBatchCache;
154
+ /**
155
+ * Выполняет внутреннюю операцию draw non overlap layered schema batch.
156
+ */
157
+ private _drawNonOverlapLayeredSchemaBatch;
158
+ /**
159
+ * Вычисляет non overlap layered batch.
160
+ */
161
+ private _resolveNonOverlapLayeredBatch;
162
+ /**
163
+ * Обновляет cached semantic child arrays свежими item references из mutable source schema.
164
+ */
165
+ private _refreshNonOverlapLayeredBatch;
166
+ /**
167
+ * Выполняет внутреннюю операцию build rect batch.
168
+ */
169
+ private _buildRectBatch;
170
+ /**
171
+ * Выполняет внутреннюю операцию build plain rect batch.
172
+ */
173
+ private _buildPlainRectBatch;
174
+ /**
175
+ * Обновляет rect batch.
176
+ */
177
+ private _updateRectBatch;
178
+ /**
179
+ * Обновляет plain rect batch.
180
+ */
181
+ private _updatePlainRectBatch;
182
+ /**
183
+ * Выполняет внутреннюю операцию draw texture schema batch.
184
+ */
185
+ private _drawTextureSchemaBatch;
186
+ /**
187
+ * Выполняет внутреннюю операцию build texture batch.
188
+ */
189
+ private _buildTextureBatch;
190
+ /**
191
+ * Обновляет texture batch.
192
+ */
193
+ private _updateTextureBatch;
194
+ /**
195
+ * Вычисляет texture batch item.
196
+ */
197
+ private _resolveTextureBatchItem;
198
+ /**
199
+ * Проверяет culled marker для texture batch.
200
+ */
201
+ private _isCulledTextureBatchItem;
202
+ /**
203
+ * Создает signature для culled text без rasterize.
204
+ */
205
+ private _createCulledTextSignature;
206
+ /**
207
+ * Создает rect signature.
208
+ */
209
+ private _createRectSignature;
210
+ /**
211
+ * Возвращает shader metadata schema item.
212
+ */
213
+ private _resolveShaderRenderMeta;
214
+ /**
215
+ * Создает signature для shader metadata, которая меняется только при смене конфигурации.
216
+ */
217
+ private _createShaderMetaSignature;
218
+ /**
219
+ * Проверяет plain rect.
220
+ */
221
+ private _isPlainRect;
222
+ /**
223
+ * Выполняет внутреннюю операцию draw primitive.
224
+ */
225
+ private _drawPrimitive;
226
+ /**
227
+ * Выполняет внутреннюю операцию draw rect.
228
+ */
229
+ private _drawRect;
230
+ /**
231
+ * Рисует border прямоугольника без rounded shader, когда radius равен нулю.
232
+ */
233
+ private _queueRectBorderLines;
234
+ /**
235
+ * Выполняет внутреннюю операцию draw border.
236
+ */
237
+ private _drawBorder;
238
+ /**
239
+ * Выполняет внутреннюю операцию draw text.
240
+ */
241
+ private _drawText;
242
+ /**
243
+ * Рисует текст как последовательность glyph quads.
244
+ */
245
+ private _drawGlyphText;
246
+ /**
247
+ * Возвращает left glyph quad с учетом transparent padding внутри atlas entry.
248
+ */
249
+ private _resolveGlyphQuadX;
250
+ /**
251
+ * Возвращает top glyph quad так, чтобы line box, а не вся padded texture, центрировался в text box.
252
+ */
253
+ private _resolveGlyphQuadY;
254
+ /**
255
+ * Возвращает horizontal padding glyph texture в logical px.
256
+ */
257
+ private _resolveGlyphPaddingX;
258
+ /**
259
+ * Возвращает vertical padding glyph texture в logical px.
260
+ */
261
+ private _resolveGlyphPaddingY;
262
+ /**
263
+ * Возвращает glyph entry из atlas или rasterize-ит новый glyph.
264
+ */
265
+ private _resolveGlyphAtlasEntry;
266
+ /**
267
+ * Выполняет rasterize одного glyph в alpha texture.
268
+ */
269
+ private _rasterizeGlyph;
270
+ private _resolveGlyphDistanceFieldSource;
271
+ private _resolveSdfPxRange;
272
+ private _resolvePrebuiltMsdfGlyphAtlasEntry;
273
+ private _resolvePrebuiltMsdfAtlasSource;
274
+ private _isCanvasImageSource;
275
+ /**
276
+ * Кодирует single-channel runtime SDF в alpha channel glyph canvas.
277
+ */
278
+ private _encodeRuntimeSdf;
279
+ /**
280
+ * Загружает rasterized glyph в glyph atlas.
281
+ */
282
+ private _uploadGlyphAtlasEntry;
283
+ /**
284
+ * Возвращает страницу glyph atlas с местом под glyph.
285
+ */
286
+ private _resolveGlyphAtlasPage;
287
+ /**
288
+ * Создает пустую WebGL texture для glyph atlas page.
289
+ */
290
+ private _createEmptyGlyphAtlasTexture;
291
+ /**
292
+ * Освобождает старые glyph atlas pages под memory budget.
293
+ */
294
+ private _evictGlyphAtlasPagesFor;
295
+ /**
296
+ * Проверяет поддержку glyph path для text item.
297
+ */
298
+ private _isGlyphTextSupported;
299
+ /**
300
+ * Проверяет shaping cases, где glyph-atlas без HarfBuzz может разложить строку некорректно.
301
+ */
302
+ private _hasComplexGlyphText;
303
+ /**
304
+ * Возвращает true для Unicode ranges, требующих shaping, bidi или combining mark handling.
305
+ */
306
+ private _isComplexGlyphTextCodePoint;
307
+ /**
308
+ * Вычисляет эффективный режим текста с учетом item metadata и зон.
309
+ */
310
+ private _resolveTextRenderMode;
311
+ /**
312
+ * Выбирает text path в auto-режиме по форме строки, а не только по роли.
313
+ */
314
+ private _resolveAutoTextRenderMode;
315
+ /**
316
+ * Возвращает true для строк, где run-atlas дешевле или корректнее glyph-atlas.
317
+ */
318
+ private _shouldUseRunAtlasForAutoText;
319
+ /**
320
+ * Считает Unicode code points для coarse auto-routing эвристики.
321
+ */
322
+ private _countTextCodePoints;
323
+ /**
324
+ * Возвращает режим текста для продуктовой роли.
325
+ */
326
+ private _resolveTextRoleMode;
327
+ /**
328
+ * Нормализует режим текста из metadata.
329
+ */
330
+ private _normalizeTextRenderMode;
331
+ /**
332
+ * Нормализует роль текста из metadata.
333
+ */
334
+ private _normalizeTextRenderRole;
335
+ /**
336
+ * Возвращает scope bucket state для независимых ролей текста.
337
+ */
338
+ private _resolveTextRasterScope;
339
+ /**
340
+ * Возвращает context для измерения glyph.
341
+ */
342
+ private _measureContext;
343
+ /**
344
+ * Измеряет advance glyph.
345
+ */
346
+ private _measureGlyphAdvance;
347
+ /**
348
+ * Вычисляет texture raster scale.
349
+ */
350
+ private _resolveTextureRasterScale;
351
+ /**
352
+ * Вычисляет text raster scale.
353
+ */
354
+ private _resolveTextRasterScale;
355
+ /**
356
+ * Возвращает drawable text atlas item или откладывает растеризацию по frame budget.
357
+ */
358
+ private _resolveTextAtlasItem;
359
+ /**
360
+ * Подготавливает соседние text buckets в рамках оставшегося raster budget.
361
+ */
362
+ private _prewarmAdjacentTextBuckets;
363
+ /**
364
+ * Возвращает соседние raster scales для prewarm.
365
+ */
366
+ private _resolveAdjacentTextRasterScales;
367
+ /**
368
+ * Возвращает fallback entry другого scale для того же text run.
369
+ */
370
+ private _resolveTextFallbackEntry;
371
+ /**
372
+ * Создает drawable item из text atlas entry.
373
+ */
374
+ private _createTextAtlasDrawableItem;
375
+ /**
376
+ * Возвращает world-space quad для atlas entry с сохранением implicit box clip.
377
+ */
378
+ private _resolveTextAtlasQuad;
379
+ /**
380
+ * Записывает diagnostics по размеру rasterized run-atlas entry.
381
+ */
382
+ private _recordTextRasterDiagnostics;
383
+ /**
384
+ * Загружает rasterized text run в atlas page через texSubImage2D.
385
+ */
386
+ private _uploadTextAtlasEntry;
387
+ /**
388
+ * Возвращает atlas page с местом под rasterized text.
389
+ */
390
+ private _resolveTextAtlasPage;
391
+ /**
392
+ * Проверяет, поместится ли entry на существующую atlas page.
393
+ */
394
+ private _tryFitTextAtlasPage;
395
+ /**
396
+ * Создает пустую WebGL texture для text atlas page.
397
+ */
398
+ private _createEmptyTextAtlasTexture;
399
+ /**
400
+ * Освобождает старые text atlas pages под memory budget.
401
+ */
402
+ private _evictTextAtlasPagesFor;
403
+ /**
404
+ * Проверяет screen-space видимость rect.
405
+ */
406
+ private _isRectVisible;
407
+ /**
408
+ * Проверяет screen-space LOD для text run и обновляет diagnostics.
409
+ */
410
+ private _shouldDrawTextRun;
411
+ /**
412
+ * Проверяет, нужно ли скрыть text run по LOD.
413
+ */
414
+ private _shouldDropTextRunByLod;
415
+ /**
416
+ * Проверяет, включена ли policy-driven culling для text runs.
417
+ */
418
+ private _shouldCullTextRuns;
419
+ /**
420
+ * Проверяет, включен ли culling для texture stream.
421
+ */
422
+ private _shouldCullTextureItems;
423
+ /**
424
+ * Проверяет, включен ли viewport culling для geometry streams.
425
+ */
426
+ private _shouldCullGeometryItems;
427
+ /**
428
+ * Создает ключ viewport visibility для batches, зависящих от transform.
429
+ */
430
+ private _resolveBatchVisibilityKey;
431
+ /**
432
+ * Возвращает frame budget для rasterization с учетом resolved mode и interaction policy.
433
+ */
434
+ private _resolveTextRasterBudgetMs;
435
+ /**
436
+ * Проверяет, разрешен ли prewarm соседних buckets.
437
+ */
438
+ private _shouldPrewarmTextBuckets;
439
+ /**
440
+ * Возвращает max raster scale с учетом interaction policy.
441
+ */
442
+ private _resolveMaxTextRasterScale;
443
+ /**
444
+ * Проверяет, нужно ли заморозить bucket во время interaction profile.
445
+ */
446
+ private _shouldFreezeTextBuckets;
447
+ /**
448
+ * Выполняет внутреннюю операцию draw line.
449
+ */
450
+ private _drawLine;
451
+ /**
452
+ * Выполняет внутреннюю операцию draw circle.
453
+ */
454
+ private _drawCircle;
455
+ /**
456
+ * Выполняет внутреннюю операцию draw arc.
457
+ */
458
+ private _drawArc;
459
+ /**
460
+ * Выполняет внутреннюю операцию draw polygon.
461
+ */
462
+ private _drawPolygon;
463
+ /**
464
+ * Выполняет внутреннюю операцию draw icon.
465
+ */
466
+ private _drawIcon;
467
+ /**
468
+ * Выполняет внутреннюю операцию draw nine-slice image.
469
+ */
470
+ private _drawNineSliceImage;
471
+ /**
472
+ * Рисует процедурный pattern rect одним fullscreen-quad shader проходом.
473
+ */
474
+ private _drawPatternRect;
475
+ /**
476
+ * Рисует retained rect batch через specialized instanced stream.
477
+ */
478
+ private _drawRectBatch;
479
+ /**
480
+ * Рисует retained time-range segment batch, вычисляя x/width в shader uniforms.
481
+ */
482
+ private _drawTimeRangeSegmentBatch;
483
+ /**
484
+ * Рисует retained stripe batch через texture repeat stream.
485
+ */
486
+ private _drawStripeBatch;
487
+ /**
488
+ * Рисует retained icon batch через texture stream.
489
+ */
490
+ private _drawIconBatch;
491
+ /**
492
+ * Рисует retained text batch через retained text atlas.
493
+ */
494
+ private _drawTextBatch;
495
+ /**
496
+ * Выбирает text path для retained batch без полного прохода по всем строкам.
497
+ */
498
+ private _resolveTextBatchRenderMode;
499
+ /**
500
+ * Выбирает auto text path для retained batch.
501
+ */
502
+ private _resolveAutoTextBatchRenderMode;
503
+ /**
504
+ * Проверяет bounded sample batch-а для auto-routing.
505
+ */
506
+ private _shouldUseRunAtlasForAutoTextBatch;
507
+ /**
508
+ * Рисует retained text batch через glyph/MSDF atlas.
509
+ */
510
+ private _drawGlyphTextBatch;
511
+ /**
512
+ * Возвращает retained glyph text cache.
513
+ */
514
+ private _resolveGlyphTextBatchCache;
515
+ /**
516
+ * Создает retained glyph text cache.
517
+ */
518
+ private _createGlyphTextBatchCache;
519
+ /**
520
+ * Обновляет dirty ranges retained glyph cache, если topology glyph groups не изменилась.
521
+ */
522
+ private _updateGlyphTextBatchCache;
523
+ /**
524
+ * Создает retained glyph stream group.
525
+ */
526
+ private _createGlyphTextStreamGroupCache;
527
+ /**
528
+ * Записывает один glyph quad в retained buffers.
529
+ */
530
+ private _writeGlyphTextQuad;
531
+ private _resolveGlyphTextStaticStride;
532
+ /**
533
+ * Рисует retained glyph text cache.
534
+ */
535
+ private _drawGlyphTextBatchCache;
536
+ /**
537
+ * Проверяет, что retained glyph cache не ссылается на evicted atlas pages.
538
+ */
539
+ private _isGlyphTextBatchCacheStale;
540
+ /**
541
+ * Проверяет, что retained run-atlas cache не ссылается на evicted atlas pages.
542
+ */
543
+ private _isTextStreamBatchCacheStale;
544
+ /**
545
+ * Проверяет, что retained source texture cache не ссылается на evicted textures.
546
+ */
547
+ private _isSourceTextureStreamBatchCacheStale;
548
+ /**
549
+ * Создает glyph quads для одного text run.
550
+ */
551
+ private _createGlyphTextQuads;
552
+ /**
553
+ * Возвращает shaped run из LRU cache.
554
+ */
555
+ private _resolveTextRunShape;
556
+ /**
557
+ * Повторяет старое поведение Canvas renderer: если строка не помещается в
558
+ * content-box, center/right превращаются в left, чтобы clip показывал начало.
559
+ */
560
+ private _resolveTextOverflowHorizontalAlign;
561
+ /**
562
+ * Ограничивает размер shaped run cache.
563
+ */
564
+ private _evictTextRunShapeCache;
565
+ /**
566
+ * Возвращает NovaText для item retained text batch.
567
+ */
568
+ private _createTextFromBatch;
569
+ /**
570
+ * Создает coarse visibility key для retained text batches.
571
+ */
572
+ private _resolveTextBatchVisibilityKey;
573
+ /**
574
+ * Проверяет, что texture все еще принадлежит соответствующему atlas pool.
575
+ */
576
+ private _isTextureAlive;
577
+ /**
578
+ * Проверяет, что retained texture batch ссылается на живую source или atlas texture.
579
+ */
580
+ private _isRetainedTextureAlive;
581
+ /**
582
+ * Проверяет, что source texture все еще принадлежит renderer texture cache.
583
+ */
584
+ private _isSourceTextureAlive;
585
+ /**
586
+ * Проверяет, что texture не была удалена в WebGL context.
587
+ */
588
+ private _isTextureBindable;
589
+ /**
590
+ * Закрепляет atlas page на текущий кадр, если retained cache рисует ее без нового resolve.
591
+ */
592
+ private _pinAtlasPageForTexture;
593
+ /**
594
+ * Возвращает retained icon stream cache.
595
+ */
596
+ private _resolveIconStreamBatchCache;
597
+ /**
598
+ * Создает retained icon stream cache.
599
+ */
600
+ private _createIconStreamBatchCache;
601
+ /**
602
+ * Обновляет geometry старого retained texture batch cache без пересоздания static texture groups.
603
+ */
604
+ private _updateTextureRectStreamBatchCacheGeometry;
605
+ /**
606
+ * Возвращает retained text stream cache.
607
+ */
608
+ private _resolveTextStreamBatchCache;
609
+ /**
610
+ * Создает retained text stream cache.
611
+ */
612
+ private _createTextStreamBatchCache;
613
+ /**
614
+ * Возвращает style object для text batch.
615
+ */
616
+ private _createTextBatchStyleBase;
617
+ /**
618
+ * Создает retained texture rect group cache.
619
+ */
620
+ private _createTextureRectStreamGroupCache;
621
+ /**
622
+ * Записывает dynamic geometry для retained texture rect group.
623
+ */
624
+ private _writeTextureRectGeometry;
625
+ /**
626
+ * Возвращает clipped rect для retained texture stream item.
627
+ */
628
+ private _resolveClippedTextureRect;
629
+ /**
630
+ * Возвращает per-item clip для text batch, если batch его содержит.
631
+ */
632
+ private _resolveTextBatchClip;
633
+ /**
634
+ * Записывает static uv/opacity для retained texture rect group.
635
+ */
636
+ private _writeTextureRectStaticData;
637
+ /**
638
+ * Рисует retained texture rect cache через instanced stream.
639
+ */
640
+ private _drawTextureRectStreamBatchCache;
641
+ /**
642
+ * Возвращает retained analytic stripe stream cache.
643
+ */
644
+ private _resolveStripeStreamBatchCache;
645
+ /**
646
+ * Создает retained analytic stripe stream cache.
647
+ */
648
+ private _createStripeStreamBatchCache;
649
+ /**
650
+ * Записывает dynamic stripe geometry.
651
+ */
652
+ private _writeStripeBatchGeometry;
653
+ /**
654
+ * Записывает static stripe material.
655
+ */
656
+ private _writeStripeBatchStaticData;
657
+ /**
658
+ * Рисует retained analytic stripe cache.
659
+ */
660
+ private _drawStripeStreamBatchCache;
661
+ /**
662
+ * Возвращает stripe descriptor для asset ref.
663
+ */
664
+ private _resolveStripeDescriptor;
665
+ /**
666
+ * Рисует stripe batch старым texture path, если fill не является stripe descriptor.
667
+ */
668
+ private _drawStripeTextureFallbackBatch;
669
+ /**
670
+ * Рисует retained particle batch через specialized instanced stream.
671
+ */
672
+ private _drawParticleBatch;
673
+ /**
674
+ * Рисует circle particles через analytic shader.
675
+ */
676
+ private _drawCircleParticleBatch;
677
+ /**
678
+ * Рисует sprite particles через texture instancing.
679
+ */
680
+ private _drawSpriteParticleBatch;
681
+ /**
682
+ * Выполняет внутреннюю операцию draw texture source.
683
+ */
684
+ private _drawTextureSource;
685
+ /**
686
+ * Возвращает texture entry для drawable asset/source.
687
+ */
688
+ private _resolveTextureEntry;
689
+ /**
690
+ * Создает cache для circle particle batch.
691
+ */
692
+ private _createCircleParticleCache;
693
+ /**
694
+ * Создает cache для sprite particle batch.
695
+ */
696
+ private _createSpriteParticleCache;
697
+ /**
698
+ * Создает cache для instanced rect batch.
699
+ */
700
+ private _createRectStreamBatchCache;
701
+ /**
702
+ * Записывает dynamic rect geometry.
703
+ */
704
+ private _writeRectBatchGeometry;
705
+ /**
706
+ * Записывает static rect paint/state attributes.
707
+ */
708
+ private _writeRectBatchStaticData;
709
+ /**
710
+ * Создает cache для GPU-resident time-range segment batch.
711
+ */
712
+ private _createTimeRangeSegmentBatchCache;
713
+ /**
714
+ * Записывает dynamic time-range segment geometry.
715
+ */
716
+ private _writeTimeRangeSegmentGeometry;
717
+ /**
718
+ * Записывает static time-range segment colors.
719
+ */
720
+ private _writeTimeRangeSegmentStaticData;
721
+ /**
722
+ * Записывает dynamic particle positions.
723
+ */
724
+ private _writeParticlePositions;
725
+ /**
726
+ * Записывает static circle particle attributes.
727
+ */
728
+ private _writeCircleParticleStaticData;
729
+ /**
730
+ * Записывает static sprite particle attributes.
731
+ */
732
+ private _writeSpriteParticleStaticData;
733
+ /**
734
+ * Выполняет внутреннюю операцию queue rounded rect.
735
+ */
736
+ private _queueRoundedRect;
737
+ /**
738
+ * Выполняет внутреннюю операцию queue plain rect.
739
+ */
740
+ private _queuePlainRect;
741
+ /**
742
+ * Выполняет внутреннюю операцию push rounded rect vertices.
743
+ */
744
+ private _pushRoundedRectVertices;
745
+ /**
746
+ * Записывает rounded rect vertices.
747
+ */
748
+ private _writeRoundedRectVertices;
749
+ /**
750
+ * Выполняет внутреннюю операцию push solid rect vertices.
751
+ */
752
+ private _pushSolidRectVertices;
753
+ /**
754
+ * Записывает solid rect vertices.
755
+ */
756
+ private _writeSolidRectVertices;
757
+ /**
758
+ * Выполняет внутреннюю операцию queue solid triangle.
759
+ */
760
+ private _queueSolidTriangle;
761
+ /**
762
+ * Выполняет внутреннюю операцию queue solid line.
763
+ */
764
+ private _queueSolidLine;
765
+ /**
766
+ * Выполняет внутреннюю операцию queue dashed line.
767
+ */
768
+ private _queueDashedLine;
769
+ /**
770
+ * Выполняет внутреннюю операцию queue texture quad.
771
+ */
772
+ private _queueTextureQuad;
773
+ /**
774
+ * Добавляет texture quad с CPU clipping и пересчетом UV без смены scissor.
775
+ */
776
+ private _queueClippedTextureQuad;
777
+ /**
778
+ * Выполняет внутреннюю операцию queue distance-field glyph quad.
779
+ */
780
+ private _queueDistanceFieldGlyphQuad;
781
+ /**
782
+ * Добавляет distance-field glyph quad с CPU clipping и пересчетом UV.
783
+ */
784
+ private _queueClippedDistanceFieldGlyphQuad;
785
+ /**
786
+ * Переключает WebGL output в offscreen framebuffer.
787
+ */
788
+ private _beginRenderTarget;
789
+ /**
790
+ * Возвращает WebGL output в предыдущий framebuffer.
791
+ */
792
+ private _endRenderTarget;
793
+ /**
794
+ * Рисует offscreen framebuffer texture как обычный texture quad.
795
+ */
796
+ private _drawRenderTarget;
797
+ /**
798
+ * Создает или обновляет WebGL texture/framebuffer для render target.
799
+ */
800
+ private _ensureRenderTargetTexture;
801
+ /**
802
+ * Обрезает destination rect и UV относительно clip rect.
803
+ */
804
+ private _clipTextureRect;
805
+ /**
806
+ * Выполняет внутреннюю операцию push texture quad vertices.
807
+ */
808
+ private _pushTextureQuadVertices;
809
+ /**
810
+ * Выполняет внутреннюю операцию push distance-field glyph quad vertices.
811
+ */
812
+ private _pushDistanceFieldQuadVertices;
813
+ /**
814
+ * Записывает texture quad vertices.
815
+ */
816
+ private _writeTextureQuadVertices;
817
+ /**
818
+ * Выполняет внутреннюю операцию push solid vertex.
819
+ */
820
+ private _pushSolidVertex;
821
+ /**
822
+ * Выполняет внутреннюю операцию push solid vertex to.
823
+ */
824
+ private _pushSolidVertexTo;
825
+ /**
826
+ * Сбрасывает накопленные операции в следующий слой runtime.
827
+ */
828
+ private _flush;
829
+ /**
830
+ * Выполняет внутреннюю операцию prepare rounded transform.
831
+ */
832
+ private _prepareRoundedTransform;
833
+ /**
834
+ * Выполняет внутреннюю операцию prepare solid transform.
835
+ */
836
+ private _prepareSolidTransform;
837
+ /**
838
+ * Выполняет внутреннюю операцию prepare texture transform.
839
+ */
840
+ private _prepareTextureTransform;
841
+ /**
842
+ * Выполняет внутреннюю операцию prepare distance-field transform.
843
+ */
844
+ private _prepareDistanceFieldTransform;
845
+ /**
846
+ * Сбрасывает накопленные операции в следующий слой runtime.
847
+ */
848
+ private _flushRounded;
849
+ /**
850
+ * Сбрасывает накопленные операции в следующий слой runtime.
851
+ */
852
+ private _flushSolid;
853
+ /**
854
+ * Сбрасывает накопленные операции в следующий слой runtime.
855
+ */
856
+ private _flushTexture;
857
+ /**
858
+ * Сбрасывает накопленные distance-field glyph операции в следующий слой runtime.
859
+ */
860
+ private _flushDistanceField;
861
+ /**
862
+ * Выполняет внутреннюю операцию upload array buffer.
863
+ */
864
+ private _uploadArrayBuffer;
865
+ /**
866
+ * Создает buffer.
867
+ */
868
+ private _createBuffer;
869
+ /**
870
+ * Создает rounded vao.
871
+ */
872
+ private _createRoundedVao;
873
+ /**
874
+ * Создает solid vao.
875
+ */
876
+ private _createSolidVao;
877
+ /**
878
+ * Создает texture vao.
879
+ */
880
+ private _createTextureVao;
881
+ /**
882
+ * Создает distance-field glyph vao.
883
+ */
884
+ private _createDistanceFieldVao;
885
+ /**
886
+ * Создает VAO для процедурного pattern rect.
887
+ */
888
+ private _createPatternRectVao;
889
+ /**
890
+ * Создает VAO для circle particle stream.
891
+ */
892
+ private _createParticleCircleVao;
893
+ /**
894
+ * Создает VAO для sprite particle stream.
895
+ */
896
+ private _createParticleSpriteVao;
897
+ /**
898
+ * Создает VAO для rect batch stream.
899
+ */
900
+ private _createRectBatchVao;
901
+ /**
902
+ * Создает VAO для GPU-resident time-range segment stream.
903
+ */
904
+ private _createTimeRangeSegmentBatchVao;
905
+ /**
906
+ * Создает VAO для retained texture rect stream.
907
+ */
908
+ private _createTextureRectBatchVao;
909
+ /**
910
+ * Создает VAO для retained distance-field glyph stream.
911
+ */
912
+ private _createDistanceFieldGlyphBatchVao;
913
+ /**
914
+ * Создает VAO для retained analytic stripe stream.
915
+ */
916
+ private _createStripeBatchVao;
917
+ /**
918
+ * Создает vao.
919
+ */
920
+ private _createVao;
921
+ /**
922
+ * Выполняет внутреннюю операцию bind attrib.
923
+ */
924
+ private _bindAttrib;
925
+ /**
926
+ * Привязывает instanced attribute.
927
+ */
928
+ private _bindAttribDivisor;
929
+ /**
930
+ * Загружает shared unit quad для instanced particle streams.
931
+ */
932
+ private _initializeParticleQuadBuffer;
933
+ /**
934
+ * Вычисляет texture buffer.
935
+ */
936
+ private _resolveTextureBuffer;
937
+ /**
938
+ * Вычисляет texture vao.
939
+ */
940
+ private _resolveTextureVao;
941
+ /**
942
+ * Создает texture from source.
943
+ */
944
+ private _createTextureFromSource;
945
+ /**
946
+ * Выполняет внутреннюю операцию rasterize text.
947
+ */
948
+ private _rasterizeText;
949
+ /**
950
+ * Вычисляет layout текста до выбора raster rectangle.
951
+ */
952
+ private _resolveTextRasterLayout;
953
+ /**
954
+ * Выбирает full-box или tight raster rectangle для run-atlas entry.
955
+ */
956
+ private _resolveTextRasterBounds;
957
+ /**
958
+ * Создает text key.
959
+ */
960
+ private _createTextKey;
961
+ /**
962
+ * Создает text key без raster scale для fallback между buckets.
963
+ */
964
+ private _createTextBaseKey;
965
+ /**
966
+ * Вычисляет source key.
967
+ */
968
+ private _resolveSourceKey;
969
+ /**
970
+ * Выполняет внутреннюю операцию source texture keys size.
971
+ */
972
+ private _sourceTextureKeysSize;
973
+ /**
974
+ * Вычисляет border sides.
975
+ */
976
+ private _resolveBorderSides;
977
+ /**
978
+ * Обновляет scissor.
979
+ */
980
+ private _setScissor;
981
+ /**
982
+ * Выполняет внутреннюю операцию texture memory mb.
983
+ */
984
+ private _textureMemoryMB;
985
+ /**
986
+ * Возвращает memory bytes text atlas pages.
987
+ */
988
+ private _textAtlasMemoryBytes;
989
+ /**
990
+ * Возвращает memory bytes glyph atlas pages.
991
+ */
992
+ private _glyphAtlasMemoryBytes;
993
+ /**
994
+ * Возвращает число atlas pages, которые использовались в текущем кадре.
995
+ */
996
+ private _countPinnedAtlasPages;
997
+ /**
998
+ * Освобождает все text atlas pages.
999
+ */
1000
+ private _destroyTextAtlas;
1001
+ /**
1002
+ * Освобождает все glyph atlas pages.
1003
+ */
1004
+ private _destroyGlyphAtlas;
1005
+ /**
1006
+ * Выполняет внутреннюю операцию evict textures if needed.
1007
+ */
1008
+ private _evictTexturesIfNeeded;
1009
+ /**
1010
+ * Проверяет, что texture сейчас используется активной draw batch и не может быть evicted.
1011
+ */
1012
+ private _isTextureProtectedFromEviction;
1013
+ }