@endge/nova 0.13.6 → 0.13.11

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 +88 -0
  98. package/dist/model/runtime/state/NovaStore.d.ts +27 -0
  99. package/dist/model/runtime/state/nova-store-decorators.d.ts +38 -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 +14489 -14069
  119. package/package.json +29 -23
@@ -0,0 +1,238 @@
1
+ import { mat3 } from 'gl-matrix';
2
+ import { NovaArc, NovaBorder, NovaCircle, NovaIcon, NovaIconBatch, NovaLine, NovaNineSliceImage, NovaParticleBatch, NovaPatternRect, NovaPolygon, NovaRect, NovaRectBatch, NovaRenderer, NovaRendererStateMark, NovaSchema, NovaStripeRectBatch, NovaText, NovaTextBatch, NovaTimeRangeSegmentBatch, RendererType } from '../../../../domain/types/renderer.types';
3
+ import { NovaRenderFrame, NovaRenderMetrics } from '../../../../domain/types/rendering/index';
4
+ import { NovaCanvas } from '../../../platform/NovaCanvas';
5
+ import { NovaRenderBackend } from '../nova-render-backend';
6
+ import { NovaAssetRegistry } from '../../../runtime/assets/NovaAssetRegistry';
7
+ import { NovaSchemaRegistry } from '../../../runtime/components/NovaSchemaRegistry';
8
+ /**
9
+ * Рисует compiled Nova render frame через Canvas2D backend.
10
+ */
11
+ export declare class NovaRenderer2D implements NovaRenderer, NovaRenderBackend {
12
+ private readonly _assets;
13
+ readonly id: string;
14
+ readonly type = RendererType.Web2D;
15
+ readonly novaCanvas: NovaCanvas;
16
+ readonly capabilities: {
17
+ canvas2d: boolean;
18
+ webgl: boolean;
19
+ schema: boolean;
20
+ rect: boolean;
21
+ border: boolean;
22
+ line: boolean;
23
+ circle: boolean;
24
+ arc: boolean;
25
+ polygon: boolean;
26
+ icon: boolean;
27
+ text: boolean;
28
+ patternRects: boolean;
29
+ particles: boolean;
30
+ rectBatches: boolean;
31
+ stripeBatches: boolean;
32
+ iconBatches: boolean;
33
+ textBatches: boolean;
34
+ measureText: boolean;
35
+ };
36
+ private readonly _measureCanvas;
37
+ private readonly _schemaRegistry;
38
+ private readonly _renderTargets;
39
+ private readonly _targetStack;
40
+ private readonly _stateMarks;
41
+ private _activeTargetContext;
42
+ private _clearTextBackground;
43
+ private _transformDepth;
44
+ private _clipDepth;
45
+ /**
46
+ * Создает instance и подготавливает внутреннее состояние.
47
+ */
48
+ constructor(canvas: NovaCanvas, schemaRegistry?: NovaSchemaRegistry, _assets?: NovaAssetRegistry);
49
+ /**
50
+ * Возвращает ctx.
51
+ */
52
+ get ctx(): CanvasRenderingContext2D;
53
+ /**
54
+ * Возвращает активную render-state границу.
55
+ */
56
+ private get activeStateMark();
57
+ /**
58
+ * Очищает внутреннее состояние.
59
+ */
60
+ clear(): void;
61
+ /**
62
+ * Очищает root render target один раз перед ordered surface replay.
63
+ */
64
+ clearRoot(): void;
65
+ /**
66
+ * Начинает рисовать в offscreen canvas target.
67
+ */
68
+ beginRenderTarget(id: string, width: number, height: number, options?: {
69
+ dpr?: number;
70
+ }): void;
71
+ /**
72
+ * Завершает offscreen target.
73
+ */
74
+ endRenderTarget(): void;
75
+ /**
76
+ * Рисует offscreen target обратно в активный canvas.
77
+ */
78
+ drawRenderTarget(id: string, x: number, y: number, width: number, height: number): void;
79
+ /**
80
+ * Временно включает очистку text bounds перед draw.
81
+ */
82
+ withTextBackgroundClearing<T>(enabled: boolean, run: () => T): T;
83
+ /**
84
+ * Выполняет render-операцию frame.
85
+ */
86
+ renderFrame(frame: NovaRenderFrame): NovaRenderMetrics;
87
+ /**
88
+ * Выполняет внутреннюю операцию schema.
89
+ */
90
+ schema(schema: NovaSchema<any>): void;
91
+ /**
92
+ * Выполняет внутреннюю операцию red box.
93
+ */
94
+ redBox(): void;
95
+ /**
96
+ * Выполняет внутреннюю операцию save.
97
+ */
98
+ save(): void;
99
+ /**
100
+ * Выполняет внутреннюю операцию restore.
101
+ */
102
+ restore(): void;
103
+ /**
104
+ * Выполняет внутреннюю операцию clip.
105
+ */
106
+ clip(x: number, y: number, width: number, height: number): void;
107
+ /**
108
+ * Очищает clip.
109
+ */
110
+ clearClip(): void;
111
+ /**
112
+ * Сохраняет границу mutable render-state.
113
+ */
114
+ markState(): NovaRendererStateMark;
115
+ /**
116
+ * Восстанавливает mutable render-state до сохраненной границы.
117
+ */
118
+ restoreState(mark: NovaRendererStateMark): void;
119
+ /**
120
+ * Обновляет transform.
121
+ */
122
+ setTransform(matrix: mat3): void;
123
+ /**
124
+ * Выполняет внутреннюю операцию rect.
125
+ */
126
+ rect(p: NovaRect): void;
127
+ /**
128
+ * Выполняет внутреннюю операцию text.
129
+ */
130
+ text(p: NovaText): void;
131
+ /**
132
+ * Возвращает per-item clip для retained text batch.
133
+ */
134
+ private resolveTextBatchClip;
135
+ /**
136
+ * Выполняет внутреннюю операцию resolve padding.
137
+ */
138
+ private _resolvePadding;
139
+ /**
140
+ * Выполняет внутреннюю операцию line.
141
+ */
142
+ line(p: NovaLine): void;
143
+ /**
144
+ * Выполняет внутреннюю операцию circle.
145
+ */
146
+ circle(p: NovaCircle): void;
147
+ /**
148
+ * Выполняет внутреннюю операцию arc.
149
+ */
150
+ arc(p: NovaArc): void;
151
+ /**
152
+ * Выполняет внутреннюю операцию polygon.
153
+ */
154
+ polygon(p: NovaPolygon): void;
155
+ /**
156
+ * Выполняет внутреннюю операцию icon.
157
+ */
158
+ icon(p: NovaIcon): void;
159
+ /**
160
+ * Рисует процедурный pattern rect через bounded Canvas2D fallback.
161
+ */
162
+ patternRect(p: NovaPatternRect): void;
163
+ /**
164
+ * Выполняет внутреннюю операцию nine-slice-image.
165
+ */
166
+ nineSliceImage(p: NovaNineSliceImage): void;
167
+ /**
168
+ * Рисует repeated center для nine-slice-image.
169
+ */
170
+ private drawRepeatedNineSliceCenter;
171
+ /**
172
+ * Рисует retained particle batch через Canvas2D fallback.
173
+ */
174
+ particles(batch: NovaParticleBatch): void;
175
+ /**
176
+ * Рисует retained rect batch через Canvas2D fallback.
177
+ */
178
+ rects(batch: NovaRectBatch): void;
179
+ /**
180
+ * Рисует retained time-range segment batch через Canvas2D fallback.
181
+ */
182
+ timeRangeSegments(batch: NovaTimeRangeSegmentBatch): void;
183
+ /**
184
+ * Рисует retained stripe batch через Canvas2D fallback.
185
+ */
186
+ stripes(batch: NovaStripeRectBatch): void;
187
+ /**
188
+ * Рисует retained icon batch через Canvas2D fallback.
189
+ */
190
+ icons(batch: NovaIconBatch): void;
191
+ /**
192
+ * Рисует retained text batch через Canvas2D fallback.
193
+ */
194
+ texts(batch: NovaTextBatch): void;
195
+ /**
196
+ * Выполняет внутреннюю операцию cursor.
197
+ */
198
+ cursor(value: string): void;
199
+ /**
200
+ * Выполняет внутреннюю операцию border.
201
+ */
202
+ border(p: NovaBorder): void;
203
+ /**
204
+ * Выполняет внутреннюю операцию draw rounded rect.
205
+ */
206
+ private _drawRoundedRect;
207
+ /**
208
+ * Выполняет внутреннюю операцию text string.
209
+ */
210
+ private textString;
211
+ /**
212
+ * Выполняет внутреннюю операцию measure text.
213
+ */
214
+ measureText(p: NovaText): {
215
+ width: number;
216
+ height: number;
217
+ };
218
+ /**
219
+ * Освобождает runtime resources и снимает связанные ссылки.
220
+ */
221
+ destroy(): void;
222
+ /**
223
+ * Выполняет restore без проверки active state mark.
224
+ */
225
+ private restoreUnsafe;
226
+ /**
227
+ * Выполняет clearClip без проверки active state mark.
228
+ */
229
+ private clearClipUnsafe;
230
+ /**
231
+ * Выполняет внутреннюю операцию text markdown.
232
+ */
233
+ private textMarkdown;
234
+ /**
235
+ * Выполняет внутреннюю операцию parse markdown to chunks.
236
+ */
237
+ private _parseMarkdownToChunks;
238
+ }
@@ -0,0 +1,10 @@
1
+ import { NovaRendererConfig } from '../../../domain/types/rendering/index';
2
+ import { NovaCanvas } from '../../platform/NovaCanvas';
3
+ import { NovaRenderBackend } from './nova-render-backend';
4
+ import { NovaAssetRegistry } from '../../runtime/assets/NovaAssetRegistry';
5
+ import { NovaSchemaRegistry } from '../../runtime/components/NovaSchemaRegistry';
6
+ import { RendererType } from '../../../domain/types/renderer.types';
7
+ /**
8
+ * Создает единственный app-level backend executor.
9
+ */
10
+ export declare function createNovaRenderBackend(type: RendererType, canvas: NovaCanvas, schemaRegistry: NovaSchemaRegistry, rendererConfig: NovaRendererConfig, assets: NovaAssetRegistry): NovaRenderBackend;
@@ -0,0 +1,16 @@
1
+ import { NovaRendererCanvas, RendererType } from '../../../domain/types/renderer.types';
2
+ import { NovaRendererConfig, NovaRenderFrame, NovaRenderMetrics } from '../../../domain/types/rendering/index';
3
+ /**
4
+ * Исполнитель backend для скомпилированных Nova frames.
5
+ */
6
+ export interface NovaRenderBackend {
7
+ readonly id: string;
8
+ readonly type: RendererType;
9
+ readonly novaCanvas: NovaRendererCanvas;
10
+ readonly diagnostics?: unknown;
11
+ renderFrame: (frame: NovaRenderFrame) => NovaRenderMetrics;
12
+ clearRoot: () => void;
13
+ resize?: () => void;
14
+ configure?: (config: NovaRendererConfig) => void;
15
+ destroy: () => void;
16
+ }
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Описывает контракт NovaGpuDirtyByteRange.
3
+ */
4
+ export interface NovaGpuDirtyByteRange {
5
+ start: number;
6
+ end: number;
7
+ }
8
+ /**
9
+ * Описывает контракт NovaGpuBufferSlot.
10
+ */
11
+ export interface NovaGpuBufferSlot {
12
+ index: number;
13
+ byteOffset: number;
14
+ byteLength: number;
15
+ }
16
+ /**
17
+ * Управляет persistent GPU buffer capacity, dirty ranges и upload policy.
18
+ */
19
+ export declare class NovaGpuBufferArena {
20
+ private readonly _fullUploadDirtyRatio;
21
+ private readonly _mergeGapBytes;
22
+ private _capacityBytes;
23
+ private _slotByteLength;
24
+ private _nextSlotIndex;
25
+ private _nextByteOffset;
26
+ private readonly _freeSlots;
27
+ private readonly _dirtyRanges;
28
+ /**
29
+ * Создает instance и подготавливает внутреннее состояние.
30
+ */
31
+ constructor(_fullUploadDirtyRatio?: number, _mergeGapBytes?: number);
32
+ /**
33
+ * Возвращает capacity bytes.
34
+ */
35
+ get capacityBytes(): number;
36
+ /**
37
+ * Возвращает allocated slots.
38
+ */
39
+ get allocatedSlots(): number;
40
+ /**
41
+ * Выполняет внутреннюю операцию configure slot byte length.
42
+ */
43
+ configureSlotByteLength(byteLength: number): void;
44
+ /**
45
+ * Выполняет внутреннюю операцию ensure capacity.
46
+ */
47
+ ensureCapacity(byteLength: number): boolean;
48
+ /**
49
+ * Выполняет внутреннюю операцию allocate slot.
50
+ */
51
+ allocateSlot(byteLength?: number): NovaGpuBufferSlot;
52
+ /**
53
+ * Выполняет внутреннюю операцию free slot.
54
+ */
55
+ freeSlot(slot: NovaGpuBufferSlot): void;
56
+ /**
57
+ * Помечает slot dirty.
58
+ */
59
+ markSlotDirty(slot: NovaGpuBufferSlot): void;
60
+ /**
61
+ * Помечает dirty range.
62
+ */
63
+ markDirtyRange(start: number, end: number): void;
64
+ /**
65
+ * Выполняет внутреннюю операцию consume dirty ranges.
66
+ */
67
+ consumeDirtyRanges(): Array<NovaGpuDirtyByteRange>;
68
+ /**
69
+ * Проверяет, нужно ли выполнить upload full.
70
+ */
71
+ shouldUploadFull(byteLength: number, dirtyRanges: Array<NovaGpuDirtyByteRange>): boolean;
72
+ /**
73
+ * Объединяет dirty ranges.
74
+ */
75
+ mergeDirtyRanges(ranges: Array<NovaGpuDirtyByteRange>): Array<NovaGpuDirtyByteRange>;
76
+ }
@@ -0,0 +1,154 @@
1
+ import { mat3 } from 'gl-matrix';
2
+ import { NovaArc, NovaBorder, NovaCircle, NovaIcon, NovaIconBatch, NovaLine, NovaParticleBatch, NovaPatternRect, NovaPolygon, NovaRect, NovaRectBatch, NovaRenderer, NovaRendererCapabilities, NovaRendererStateMark, NovaSchema, NovaStripeRectBatch, NovaText, NovaTextBatch, NovaTimeRangeSegmentBatch, RendererType } from '../../../../domain/types/renderer.types';
3
+ import { NovaRendererConfig, NovaRenderFrame, NovaRenderMetrics } from '../../../../domain/types/rendering/index';
4
+ import { NovaCanvas } from '../../../platform/NovaCanvas';
5
+ import { NovaRenderBackend } from '../nova-render-backend';
6
+ import { NovaAssetRegistry } from '../../../runtime/assets/NovaAssetRegistry';
7
+ import { NovaSchemaRegistry } from '../../../runtime/components/NovaSchemaRegistry';
8
+ import { NovaWebGLDevice } from './NovaWebGLDevice';
9
+ import { NovaWebGLDiagnostics } from './NovaWebGLDiagnostics';
10
+ import { NovaWebGLTargetManager } from './NovaWebGLTargetManager';
11
+ import { NovaWebGLTextRenderer } from './NovaWebGLTextRenderer';
12
+ import { NovaWebGLTextureManager } from './NovaWebGLTextureManager';
13
+ /**
14
+ * Реализует WebGL renderer для compiled Nova render frames.
15
+ */
16
+ export declare class NovaRendererWebGL implements NovaRenderer, NovaRenderBackend {
17
+ readonly novaCanvas: NovaCanvas;
18
+ readonly id: string;
19
+ readonly type = RendererType.WebGL;
20
+ readonly capabilities: NovaRendererCapabilities;
21
+ readonly device: NovaWebGLDevice;
22
+ readonly diagnostics: NovaWebGLDiagnostics;
23
+ readonly targets: NovaWebGLTargetManager;
24
+ readonly textures: NovaWebGLTextureManager;
25
+ readonly textRenderer: NovaWebGLTextRenderer;
26
+ private readonly _frameRenderer;
27
+ /**
28
+ * Создает instance и подготавливает внутреннее состояние.
29
+ */
30
+ constructor(novaCanvas: NovaCanvas, _schemaRegistry: NovaSchemaRegistry, rendererConfig?: NovaRendererConfig, assets?: NovaAssetRegistry);
31
+ /**
32
+ * Выполняет render-операцию frame.
33
+ */
34
+ renderFrame(frame: NovaRenderFrame): NovaRenderMetrics;
35
+ /**
36
+ * Очищает root render target один раз перед ordered surface replay.
37
+ */
38
+ clearRoot(): void;
39
+ /**
40
+ * Выполняет внутреннюю операцию schema.
41
+ */
42
+ schema(_schema: NovaSchema<any>): void;
43
+ /**
44
+ * Выполняет внутреннюю операцию save.
45
+ */
46
+ save(): void;
47
+ /**
48
+ * Выполняет внутреннюю операцию restore.
49
+ */
50
+ restore(): void;
51
+ /**
52
+ * Очищает внутреннее состояние.
53
+ */
54
+ clear(): void;
55
+ /**
56
+ * Выполняет внутреннюю операцию clip.
57
+ */
58
+ clip(_x: number, _y: number, _width: number, _height: number): void;
59
+ /**
60
+ * Очищает clip.
61
+ */
62
+ clearClip(): void;
63
+ /**
64
+ * Сохраняет границу mutable render-state.
65
+ */
66
+ markState(): NovaRendererStateMark;
67
+ /**
68
+ * Восстанавливает mutable render-state до сохраненной границы.
69
+ */
70
+ restoreState(_mark: NovaRendererStateMark): void;
71
+ /**
72
+ * Обновляет transform.
73
+ */
74
+ setTransform(_matrix: mat3): void;
75
+ /**
76
+ * Выполняет внутреннюю операцию text.
77
+ */
78
+ text(_params: NovaText): void;
79
+ /**
80
+ * Выполняет внутреннюю операцию rect.
81
+ */
82
+ rect(_params: NovaRect): void;
83
+ /**
84
+ * Выполняет внутреннюю операцию border.
85
+ */
86
+ border(_params: NovaBorder): void;
87
+ /**
88
+ * Выполняет внутреннюю операцию line.
89
+ */
90
+ line(_params: NovaLine): void;
91
+ /**
92
+ * Выполняет внутреннюю операцию circle.
93
+ */
94
+ circle(_params: NovaCircle): void;
95
+ /**
96
+ * Выполняет внутреннюю операцию arc.
97
+ */
98
+ arc(_params: NovaArc): void;
99
+ /**
100
+ * Выполняет внутреннюю операцию polygon.
101
+ */
102
+ polygon(_params: NovaPolygon): void;
103
+ /**
104
+ * Выполняет внутреннюю операцию icon.
105
+ */
106
+ icon(_params: NovaIcon): void;
107
+ /**
108
+ * Выполняет внутреннюю операцию patternRect.
109
+ */
110
+ patternRect(_params: NovaPatternRect): void;
111
+ /**
112
+ * Выполняет внутреннюю операцию particles.
113
+ */
114
+ particles(_batch: NovaParticleBatch): void;
115
+ /**
116
+ * Выполняет внутреннюю операцию rects.
117
+ */
118
+ rects(_batch: NovaRectBatch): void;
119
+ /**
120
+ * Выполняет внутреннюю операцию timeRangeSegments.
121
+ */
122
+ timeRangeSegments(_batch: NovaTimeRangeSegmentBatch): void;
123
+ /**
124
+ * Выполняет внутреннюю операцию stripes.
125
+ */
126
+ stripes(_batch: NovaStripeRectBatch): void;
127
+ /**
128
+ * Выполняет внутреннюю операцию icons.
129
+ */
130
+ icons(_batch: NovaIconBatch): void;
131
+ /**
132
+ * Выполняет внутреннюю операцию texts.
133
+ */
134
+ texts(_batch: NovaTextBatch): void;
135
+ /**
136
+ * Выполняет внутреннюю операцию measure text.
137
+ */
138
+ measureText(params: NovaText): {
139
+ width: number;
140
+ height: number;
141
+ };
142
+ /**
143
+ * Выполняет внутреннюю операцию cursor.
144
+ */
145
+ cursor(type: string): void;
146
+ /**
147
+ * Освобождает runtime resources и снимает связанные ссылки.
148
+ */
149
+ destroy(): void;
150
+ /**
151
+ * Выполняет внутреннюю операцию throw immediate api error.
152
+ */
153
+ private throwImmediateApiError;
154
+ }
@@ -0,0 +1,17 @@
1
+ import { NovaRenderItem } from '../../../../domain/types/rendering/index';
2
+ /**
3
+ * Описывает контракт NovaWebGLRenderBatch.
4
+ */
5
+ export interface NovaWebGLRenderBatch {
6
+ key: string;
7
+ items: Array<NovaRenderItem>;
8
+ }
9
+ /**
10
+ * Группирует WebGL render items в batches с учетом painter order и ключей batching.
11
+ */
12
+ export declare class NovaWebGLBatcher {
13
+ /**
14
+ * Выполняет внутреннюю операцию build display order batches.
15
+ */
16
+ buildDisplayOrderBatches(items: Array<NovaRenderItem>): Array<NovaWebGLRenderBatch>;
17
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Оборачивает WebGLBuffer и операции загрузки данных в GPU.
3
+ */
4
+ export declare class NovaWebGLBuffer {
5
+ private readonly _gl;
6
+ readonly buffer: WebGLBuffer;
7
+ /**
8
+ * Создает instance и подготавливает внутреннее состояние.
9
+ */
10
+ constructor(_gl: WebGLRenderingContext);
11
+ /**
12
+ * Выполняет внутреннюю операцию bind.
13
+ */
14
+ bind(target?: 34962): void;
15
+ /**
16
+ * Освобождает runtime resources и снимает связанные ссылки.
17
+ */
18
+ destroy(): void;
19
+ }
@@ -0,0 +1,24 @@
1
+ import { NovaCanvas } from '../../../platform/NovaCanvas';
2
+ /**
3
+ * Инкапсулирует WebGL2 context и базовые операции frame lifecycle.
4
+ */
5
+ export declare class NovaWebGLDevice {
6
+ readonly canvas: NovaCanvas;
7
+ readonly gl: WebGL2RenderingContext;
8
+ /**
9
+ * Создает instance и подготавливает внутреннее состояние.
10
+ */
11
+ constructor(canvas: NovaCanvas, attributes?: WebGLContextAttributes);
12
+ /**
13
+ * Выполняет внутреннюю операцию resize.
14
+ */
15
+ resize(): void;
16
+ /**
17
+ * Очищает внутреннее состояние.
18
+ */
19
+ clear(): void;
20
+ /**
21
+ * Выполняет внутреннюю операцию configure.
22
+ */
23
+ private configure;
24
+ }
@@ -0,0 +1,29 @@
1
+ import { NovaRenderFrame, NovaRenderMetrics } from '../../../../domain/types/rendering/index';
2
+ /**
3
+ * Рисует diagnostic overlays и debug-визуализацию WebGL renderer.
4
+ */
5
+ export declare class NovaWebGLDiagnostics {
6
+ private _enabled;
7
+ private _lastFrame?;
8
+ private _lastMetrics?;
9
+ /**
10
+ * Возвращает enabled.
11
+ */
12
+ get enabled(): boolean;
13
+ /**
14
+ * Обновляет enabled и сбрасывает retained diagnostics при выключении.
15
+ */
16
+ set enabled(value: boolean);
17
+ /**
18
+ * Возвращает last frame.
19
+ */
20
+ get lastFrame(): NovaRenderFrame | undefined;
21
+ /**
22
+ * Возвращает last metrics.
23
+ */
24
+ get lastMetrics(): NovaRenderMetrics | undefined;
25
+ /**
26
+ * Выполняет внутреннюю операцию capture.
27
+ */
28
+ capture(frame: NovaRenderFrame, metrics: NovaRenderMetrics): void;
29
+ }