@jrichman/ink 7.0.1-beta.8 → 7.1.0
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.
- package/build/components/StaticRender.d.ts +10 -9
- package/build/components/StaticRender.js +15 -28
- package/build/components/StaticRender.js.map +1 -1
- package/build/dom.d.ts +1 -0
- package/build/dom.js.map +1 -1
- package/build/ink.d.ts +1 -1
- package/build/ink.js +12 -12
- package/build/ink.js.map +1 -1
- package/build/reconciler.js +12 -0
- package/build/reconciler.js.map +1 -1
- package/build/render-to-region.d.ts +0 -14
- package/build/render-to-region.js +32 -40
- package/build/render-to-region.js.map +1 -1
- package/build/render.d.ts +7 -0
- package/build/render.js.map +1 -1
- package/build/replay.js +10 -9
- package/build/replay.js.map +1 -1
- package/build/terminal-buffer.js +3 -3
- package/build/terminal-buffer.js.map +1 -1
- package/build/worker/render-worker.d.ts +12 -1
- package/build/worker/render-worker.js +165 -62
- package/build/worker/render-worker.js.map +1 -1
- package/build/wrap-text.d.ts +6 -0
- package/build/wrap-text.js +120 -0
- package/build/wrap-text.js.map +1 -0
- package/package.json +1 -1
package/build/replay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"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"}
|
package/build/terminal-buffer.js
CHANGED
|
@@ -404,7 +404,7 @@ export default class TerminalBuffer {
|
|
|
404
404
|
hasChanges = true;
|
|
405
405
|
}
|
|
406
406
|
// Diff lines
|
|
407
|
-
const lineUpdates = this.diffLines(last.lines, last.linesOffsetY ?? 0, current.lines, current.linesOffsetY ?? 0, current.overflowToBackbuffer ?? false);
|
|
407
|
+
const lineUpdates = this.diffLines(last.lines, last.linesOffsetY ?? 0, current.lines, current.linesOffsetY ?? 0, current.overflowToBackbuffer ?? false, current.scrollTop ?? 0);
|
|
408
408
|
if (lineUpdates.length > 0 ||
|
|
409
409
|
last.lines.length !== current.lines.length ||
|
|
410
410
|
last.linesOffsetY !== current.linesOffsetY) {
|
|
@@ -437,7 +437,7 @@ export default class TerminalBuffer {
|
|
|
437
437
|
}
|
|
438
438
|
return hasChanges ? update : undefined;
|
|
439
439
|
}
|
|
440
|
-
diffLines(oldLines, oldOffsetY, newLines, newOffsetY, overflowToBackbuffer) {
|
|
440
|
+
diffLines(oldLines, oldOffsetY, newLines, newOffsetY, overflowToBackbuffer, scrollTop) {
|
|
441
441
|
if (oldLines === newLines && oldOffsetY === newOffsetY) {
|
|
442
442
|
return [];
|
|
443
443
|
}
|
|
@@ -465,7 +465,7 @@ export default class TerminalBuffer {
|
|
|
465
465
|
}
|
|
466
466
|
};
|
|
467
467
|
for (let y = minOffset; y < maxOffset; y++) {
|
|
468
|
-
if (overflowToBackbuffer && y < newOffsetY) {
|
|
468
|
+
if (overflowToBackbuffer && y < newOffsetY && y < scrollTop) {
|
|
469
469
|
flushChunk();
|
|
470
470
|
continue;
|
|
471
471
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-buffer.js","sourceRoot":"","sources":["../src/terminal-buffer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"terminal-buffer.js","sourceRoot":"","sources":["../src/terminal-buffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,9 @@ export declare class TerminalBufferWorker {
|
|
|
49
49
|
private readonly animationController;
|
|
50
50
|
private readonly primaryTerminalWriter;
|
|
51
51
|
private readonly alternateTerminalWriter;
|
|
52
|
+
private readonly regionNodeCache;
|
|
53
|
+
private regionNodeCacheRoot?;
|
|
54
|
+
private shouldVerifyBackbufferBeforeFullRender;
|
|
52
55
|
/**
|
|
53
56
|
* Visible for testing.
|
|
54
57
|
*/
|
|
@@ -85,7 +88,7 @@ export declare class TerminalBufferWorker {
|
|
|
85
88
|
col: number;
|
|
86
89
|
}): boolean;
|
|
87
90
|
resize(columns: number, rows: number): void;
|
|
88
|
-
fullRender(): Promise<void>;
|
|
91
|
+
fullRender(verifyOnly?: boolean): Promise<void>;
|
|
89
92
|
render(): Promise<void>;
|
|
90
93
|
flushPendingRender(): Promise<void>;
|
|
91
94
|
done(): void;
|
|
@@ -95,9 +98,15 @@ export declare class TerminalBufferWorker {
|
|
|
95
98
|
private serializeCurrentRegions;
|
|
96
99
|
private _render;
|
|
97
100
|
private tickAnimation;
|
|
101
|
+
private handlePotentialBackbufferDirty;
|
|
102
|
+
private scheduleBackbufferVerification;
|
|
103
|
+
private computeExpectedBackbufferLength;
|
|
104
|
+
private backbufferLengthMatchesExpected;
|
|
98
105
|
private computeExpectedBackbuffer;
|
|
99
106
|
private checkBackbufferMatchesExpected;
|
|
100
107
|
private composeScene;
|
|
108
|
+
private getScrollableBackbufferRange;
|
|
109
|
+
private getEarliestRenderableY;
|
|
101
110
|
private composeToBackbuffer;
|
|
102
111
|
/**
|
|
103
112
|
* Recursively composites a region and its children onto the provided canvas.
|
|
@@ -120,6 +129,8 @@ export declare class TerminalBufferWorker {
|
|
|
120
129
|
private syncCursor;
|
|
121
130
|
private appendToBackbuffer;
|
|
122
131
|
private updateTrackingMaps;
|
|
132
|
+
private invalidateRegionNodeCache;
|
|
133
|
+
private getRegionNodeCache;
|
|
123
134
|
private findNodeForRegion;
|
|
124
135
|
private processRegionForScroll;
|
|
125
136
|
private logScene;
|
|
@@ -57,6 +57,9 @@ export class TerminalBufferWorker {
|
|
|
57
57
|
animationController;
|
|
58
58
|
primaryTerminalWriter;
|
|
59
59
|
alternateTerminalWriter;
|
|
60
|
+
regionNodeCache = new Map();
|
|
61
|
+
regionNodeCacheRoot;
|
|
62
|
+
shouldVerifyBackbufferBeforeFullRender = false;
|
|
60
63
|
/**
|
|
61
64
|
* Visible for testing.
|
|
62
65
|
*/
|
|
@@ -311,6 +314,7 @@ export class TerminalBufferWorker {
|
|
|
311
314
|
this.scrollOptimizer.resetTracking(id);
|
|
312
315
|
},
|
|
313
316
|
});
|
|
317
|
+
this.invalidateRegionNodeCache();
|
|
314
318
|
// Track regionWasAtEnd for scrollbars
|
|
315
319
|
for (const update of updates) {
|
|
316
320
|
const region = this.sceneManager.getRegion(update.id);
|
|
@@ -344,21 +348,11 @@ export class TerminalBufferWorker {
|
|
|
344
348
|
}
|
|
345
349
|
}
|
|
346
350
|
}
|
|
347
|
-
if (isActuallyDirty &&
|
|
348
|
-
|
|
349
|
-
!this.terminalWriter.backbufferDirty &&
|
|
350
|
-
!this.isAlternateBufferEnabled) {
|
|
351
|
-
if (this.checkBackbufferMatchesExpected(cameraY)) {
|
|
352
|
-
// False positive, do nothing.
|
|
353
|
-
}
|
|
354
|
-
else {
|
|
351
|
+
if (isActuallyDirty && !this.isAlternateBufferEnabled) {
|
|
352
|
+
this.handlePotentialBackbufferDirty(cameraY, () => {
|
|
355
353
|
this.terminalWriter.backbufferDirty = true;
|
|
356
354
|
this.terminalWriter.backbufferDirtyCurrentFrame = true;
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
else if (isActuallyDirty && !this.isAlternateBufferEnabled) {
|
|
360
|
-
this.terminalWriter.backbufferDirty = true;
|
|
361
|
-
this.terminalWriter.backbufferDirtyCurrentFrame = true;
|
|
355
|
+
});
|
|
362
356
|
}
|
|
363
357
|
}
|
|
364
358
|
const cursorChanged = cursorPosition !== previousCursorPosition &&
|
|
@@ -388,7 +382,7 @@ export class TerminalBufferWorker {
|
|
|
388
382
|
this.resized = true;
|
|
389
383
|
void this.render();
|
|
390
384
|
}
|
|
391
|
-
async fullRender() {
|
|
385
|
+
async fullRender(verifyOnly = false) {
|
|
392
386
|
if (clearDebugLogPerFrame) {
|
|
393
387
|
clearDebugLog();
|
|
394
388
|
}
|
|
@@ -396,7 +390,28 @@ export class TerminalBufferWorker {
|
|
|
396
390
|
clearTimeout(this.terminalWriter.fullRenderTimeout);
|
|
397
391
|
this.terminalWriter.fullRenderTimeout = undefined;
|
|
398
392
|
}
|
|
393
|
+
if (verifyOnly) {
|
|
394
|
+
if (!this.shouldVerifyBackbufferBeforeFullRender) {
|
|
395
|
+
return;
|
|
396
|
+
}
|
|
397
|
+
this.shouldVerifyBackbufferBeforeFullRender = false;
|
|
398
|
+
const rootRegion = this.sceneManager.getRootRegion();
|
|
399
|
+
const cameraY = rootRegion ? this.getCameraY(rootRegion) : 0;
|
|
400
|
+
if (this.checkBackbufferMatchesExpected(cameraY)) {
|
|
401
|
+
this.terminalWriter.backbufferDirty = false;
|
|
402
|
+
this.terminalWriter.backbufferDirtyCurrentFrame = false;
|
|
403
|
+
this.updateTrackingMaps(rootRegion, cameraY, true);
|
|
404
|
+
return;
|
|
405
|
+
}
|
|
406
|
+
this.terminalWriter.backbufferDirty = true;
|
|
407
|
+
}
|
|
408
|
+
else {
|
|
409
|
+
this.shouldVerifyBackbufferBeforeFullRender = false;
|
|
410
|
+
}
|
|
399
411
|
if (!this.terminalWriter.backbufferDirty) {
|
|
412
|
+
if (verifyOnly) {
|
|
413
|
+
return;
|
|
414
|
+
}
|
|
400
415
|
await this.render();
|
|
401
416
|
return;
|
|
402
417
|
}
|
|
@@ -433,7 +448,7 @@ export class TerminalBufferWorker {
|
|
|
433
448
|
if (this.terminalWriter.fullRenderTimeout) {
|
|
434
449
|
clearTimeout(this.terminalWriter.fullRenderTimeout);
|
|
435
450
|
this.terminalWriter.fullRenderTimeout = undefined;
|
|
436
|
-
await this.fullRender();
|
|
451
|
+
await this.fullRender(true);
|
|
437
452
|
}
|
|
438
453
|
}
|
|
439
454
|
done() {
|
|
@@ -460,6 +475,7 @@ export class TerminalBufferWorker {
|
|
|
460
475
|
this.sceneManager.regionWasAtEnd.clear();
|
|
461
476
|
this.scrollOptimizer.maxRegionScrollTops.clear();
|
|
462
477
|
this.scrollOptimizer.lastRegionScrollTops.clear();
|
|
478
|
+
this.invalidateRegionNodeCache();
|
|
463
479
|
this.screen = [];
|
|
464
480
|
this.backbuffer = [];
|
|
465
481
|
this.forceNextRender = false;
|
|
@@ -584,24 +600,17 @@ export class TerminalBufferWorker {
|
|
|
584
600
|
}
|
|
585
601
|
}
|
|
586
602
|
}
|
|
587
|
-
if (isActuallyDirty
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
if (matches) {
|
|
603
|
+
if (isActuallyDirty) {
|
|
604
|
+
this.handlePotentialBackbufferDirty(cameraY, () => {
|
|
605
|
+
this.terminalWriter.backbufferDirtyCurrentFrame = true;
|
|
606
|
+
}, () => {
|
|
592
607
|
this.scrollOptimizer.setMaxPushed(rootRegion.id, cameraY);
|
|
593
608
|
for (const region of this.sceneManager.regions.values()) {
|
|
594
609
|
if (region.overflowToBackbuffer) {
|
|
595
610
|
this.scrollOptimizer.setMaxPushed(region.id, region.scrollTop ?? 0);
|
|
596
611
|
}
|
|
597
612
|
}
|
|
598
|
-
}
|
|
599
|
-
else {
|
|
600
|
-
this.terminalWriter.backbufferDirtyCurrentFrame = true;
|
|
601
|
-
}
|
|
602
|
-
}
|
|
603
|
-
else if (isActuallyDirty) {
|
|
604
|
-
this.terminalWriter.backbufferDirtyCurrentFrame = true;
|
|
613
|
+
});
|
|
605
614
|
}
|
|
606
615
|
}
|
|
607
616
|
this.updateTrackingMaps(rootRegion, cameraY);
|
|
@@ -629,6 +638,56 @@ export class TerminalBufferWorker {
|
|
|
629
638
|
this.animationController.stop();
|
|
630
639
|
}
|
|
631
640
|
}
|
|
641
|
+
handlePotentialBackbufferDirty(cameraY, markDirty, markVerifiedClean) {
|
|
642
|
+
const isAlreadyDirty = this.terminalWriter.backbufferDirtyCurrentFrame ||
|
|
643
|
+
this.terminalWriter.backbufferDirty;
|
|
644
|
+
if (isAlreadyDirty || !this.backbufferLengthMatchesExpected(cameraY)) {
|
|
645
|
+
markDirty();
|
|
646
|
+
return;
|
|
647
|
+
}
|
|
648
|
+
markVerifiedClean?.();
|
|
649
|
+
this.scheduleBackbufferVerification();
|
|
650
|
+
}
|
|
651
|
+
scheduleBackbufferVerification() {
|
|
652
|
+
this.shouldVerifyBackbufferBeforeFullRender = true;
|
|
653
|
+
if (this.terminalWriter.fullRenderTimeout) {
|
|
654
|
+
return;
|
|
655
|
+
}
|
|
656
|
+
this.terminalWriter.fullRenderTimeout = setTimeout(() => {
|
|
657
|
+
void this.fullRender(true);
|
|
658
|
+
}, this.backbufferUpdateDelay);
|
|
659
|
+
}
|
|
660
|
+
computeExpectedBackbufferLength(cameraY) {
|
|
661
|
+
const rootRegion = this.sceneManager.getRootRegion();
|
|
662
|
+
if (!rootRegion) {
|
|
663
|
+
return 0;
|
|
664
|
+
}
|
|
665
|
+
let expectedLength = Math.min(cameraY, this.maxScrollbackLength);
|
|
666
|
+
for (const region of this.sceneManager.regions.values()) {
|
|
667
|
+
if (region.overflowToBackbuffer && region.isScrollable) {
|
|
668
|
+
const node = this.findNodeForRegion(region.id);
|
|
669
|
+
const range = node
|
|
670
|
+
? this.getScrollableBackbufferRange(node, region)
|
|
671
|
+
: undefined;
|
|
672
|
+
if (range && range.height > 0) {
|
|
673
|
+
expectedLength += range.height;
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
return expectedLength;
|
|
678
|
+
}
|
|
679
|
+
backbufferLengthMatchesExpected(cameraY) {
|
|
680
|
+
const expectedLength = this.computeExpectedBackbufferLength(cameraY);
|
|
681
|
+
const actualLength = this.terminalWriter.getBackbufferLength();
|
|
682
|
+
if (expectedLength > actualLength) {
|
|
683
|
+
return false;
|
|
684
|
+
}
|
|
685
|
+
if (actualLength > expectedLength &&
|
|
686
|
+
expectedLength < this.maxScrollbackLength) {
|
|
687
|
+
return false;
|
|
688
|
+
}
|
|
689
|
+
return true;
|
|
690
|
+
}
|
|
632
691
|
computeExpectedBackbuffer(cameraY) {
|
|
633
692
|
const rootRegion = this.sceneManager.getRootRegion();
|
|
634
693
|
if (!rootRegion) {
|
|
@@ -636,26 +695,26 @@ export class TerminalBufferWorker {
|
|
|
636
695
|
}
|
|
637
696
|
const originalBackbuffer = this.backbuffer;
|
|
638
697
|
this.backbuffer = [];
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
this.composeToBackbuffer(node, region, regionBackbufferHeight, regionBackbufferOffset);
|
|
698
|
+
try {
|
|
699
|
+
const rootBackbufferHeight = Math.min(cameraY, this.maxScrollbackLength);
|
|
700
|
+
const rootBackbufferOffset = Math.max(0, cameraY - this.maxScrollbackLength);
|
|
701
|
+
this.composeToBackbuffer(this.sceneManager.root, rootRegion, rootBackbufferHeight, rootBackbufferOffset);
|
|
702
|
+
for (const region of this.sceneManager.regions.values()) {
|
|
703
|
+
if (region.overflowToBackbuffer && region.isScrollable) {
|
|
704
|
+
const node = this.findNodeForRegion(region.id);
|
|
705
|
+
const range = node
|
|
706
|
+
? this.getScrollableBackbufferRange(node, region)
|
|
707
|
+
: undefined;
|
|
708
|
+
if (node && range && range.height > 0) {
|
|
709
|
+
this.composeToBackbuffer(node, region, range.height, range.offset);
|
|
710
|
+
}
|
|
653
711
|
}
|
|
654
712
|
}
|
|
713
|
+
return this.backbuffer;
|
|
714
|
+
}
|
|
715
|
+
finally {
|
|
716
|
+
this.backbuffer = originalBackbuffer;
|
|
655
717
|
}
|
|
656
|
-
const expected = this.backbuffer;
|
|
657
|
-
this.backbuffer = originalBackbuffer;
|
|
658
|
-
return expected;
|
|
659
718
|
}
|
|
660
719
|
checkBackbufferMatchesExpected(cameraY) {
|
|
661
720
|
const expected = this.computeExpectedBackbuffer(cameraY);
|
|
@@ -699,15 +758,12 @@ export class TerminalBufferWorker {
|
|
|
699
758
|
this.composeToBackbuffer(this.sceneManager.root, rootRegion, rootBackbufferHeight, rootBackbufferOffset);
|
|
700
759
|
for (const region of this.sceneManager.regions.values()) {
|
|
701
760
|
if (region.overflowToBackbuffer && region.isScrollable) {
|
|
702
|
-
const scrollTop = region.scrollTop ?? 0;
|
|
703
|
-
const linesOffsetY = region.linesOffsetY ?? 0;
|
|
704
|
-
const maxRequestedHistory = scrollTop - linesOffsetY;
|
|
705
|
-
const actualHistoryToRender = Math.max(0, Math.min(maxRequestedHistory, this.maxScrollbackLength));
|
|
706
|
-
const regionBackbufferHeight = actualHistoryToRender;
|
|
707
|
-
const regionBackbufferOffset = scrollTop - actualHistoryToRender;
|
|
708
761
|
const node = this.findNodeForRegion(region.id);
|
|
709
|
-
|
|
710
|
-
this.
|
|
762
|
+
const range = node
|
|
763
|
+
? this.getScrollableBackbufferRange(node, region)
|
|
764
|
+
: undefined;
|
|
765
|
+
if (node && range && range.height > 0) {
|
|
766
|
+
this.composeToBackbuffer(node, region, range.height, range.offset);
|
|
711
767
|
}
|
|
712
768
|
}
|
|
713
769
|
}
|
|
@@ -720,6 +776,41 @@ export class TerminalBufferWorker {
|
|
|
720
776
|
this.screen = canvas.getLines();
|
|
721
777
|
this.resized = false;
|
|
722
778
|
}
|
|
779
|
+
getScrollableBackbufferRange(node, region) {
|
|
780
|
+
const renderableStart = this.getEarliestRenderableY(node, region);
|
|
781
|
+
if (renderableStart === undefined) {
|
|
782
|
+
return undefined;
|
|
783
|
+
}
|
|
784
|
+
const scrollTop = region.scrollTop ?? 0;
|
|
785
|
+
const maxRequestedHistory = scrollTop - renderableStart;
|
|
786
|
+
const height = Math.max(0, Math.min(maxRequestedHistory, this.maxScrollbackLength));
|
|
787
|
+
return {
|
|
788
|
+
height,
|
|
789
|
+
offset: scrollTop - height,
|
|
790
|
+
};
|
|
791
|
+
}
|
|
792
|
+
getEarliestRenderableY(node, region) {
|
|
793
|
+
let earliest = region.lines.length > 0 ? (region.linesOffsetY ?? 0) : undefined;
|
|
794
|
+
for (const child of node.children) {
|
|
795
|
+
const childRegion = this.sceneManager.getRegion(child.id);
|
|
796
|
+
if (!childRegion) {
|
|
797
|
+
continue;
|
|
798
|
+
}
|
|
799
|
+
const childStart = this.getEarliestRenderableY(child, childRegion);
|
|
800
|
+
if (childStart === undefined) {
|
|
801
|
+
continue;
|
|
802
|
+
}
|
|
803
|
+
const childViewportStart = childRegion.isScrollable
|
|
804
|
+
? Math.max(0, childStart - (childRegion.scrollTop ?? 0))
|
|
805
|
+
: childStart;
|
|
806
|
+
const childContentStart = childRegion.y + childViewportStart;
|
|
807
|
+
earliest =
|
|
808
|
+
earliest === undefined
|
|
809
|
+
? childContentStart
|
|
810
|
+
: Math.min(earliest, childContentStart);
|
|
811
|
+
}
|
|
812
|
+
return earliest;
|
|
813
|
+
}
|
|
723
814
|
composeToBackbuffer(node, region, height, offset) {
|
|
724
815
|
const canvas = Canvas.create(this.columns, height);
|
|
725
816
|
const originalScrollTop = region.scrollTop;
|
|
@@ -890,20 +981,32 @@ export class TerminalBufferWorker {
|
|
|
890
981
|
}
|
|
891
982
|
}
|
|
892
983
|
}
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
984
|
+
invalidateRegionNodeCache() {
|
|
985
|
+
this.regionNodeCache.clear();
|
|
986
|
+
this.regionNodeCacheRoot = undefined;
|
|
987
|
+
}
|
|
988
|
+
getRegionNodeCache() {
|
|
989
|
+
const { root } = this.sceneManager;
|
|
990
|
+
if (!root) {
|
|
991
|
+
this.invalidateRegionNodeCache();
|
|
992
|
+
return this.regionNodeCache;
|
|
993
|
+
}
|
|
994
|
+
if (this.regionNodeCacheRoot === root) {
|
|
995
|
+
return this.regionNodeCache;
|
|
996
|
+
}
|
|
997
|
+
this.regionNodeCache.clear();
|
|
998
|
+
this.regionNodeCacheRoot = root;
|
|
896
999
|
const visit = (node) => {
|
|
897
|
-
|
|
898
|
-
return node;
|
|
1000
|
+
this.regionNodeCache.set(node.id, node);
|
|
899
1001
|
for (const child of node.children) {
|
|
900
|
-
|
|
901
|
-
if (found)
|
|
902
|
-
return found;
|
|
1002
|
+
visit(child);
|
|
903
1003
|
}
|
|
904
|
-
return undefined;
|
|
905
1004
|
};
|
|
906
|
-
|
|
1005
|
+
visit(root);
|
|
1006
|
+
return this.regionNodeCache;
|
|
1007
|
+
}
|
|
1008
|
+
findNodeForRegion(id) {
|
|
1009
|
+
return this.getRegionNodeCache().get(id);
|
|
907
1010
|
}
|
|
908
1011
|
processRegionForScroll(node, offsetX, offsetY, cameraY, scrolledToBackbuffer, compositor) {
|
|
909
1012
|
const region = this.sceneManager.getRegion(node.id);
|