@mindexec/cli 0.2.432 → 0.2.433
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/package.json +1 -1
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +1 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-renderer.js +71 -151
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-render-plan.js +863 -21
- package/wwwroot/_content/MindExecution.Shared/js/renderers/CSS3DRenderer.js +3 -3
- package/wwwroot/_framework/{MindExecution.Plugins.Concept.slcp5au0e8.dll → MindExecution.Plugins.Concept.gmo0tv41kt.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.PlanMaster.nk8wgsetbw.dll → MindExecution.Plugins.PlanMaster.ts9iffoyt9.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.YouTube.rrrfswr6up.dll → MindExecution.Plugins.YouTube.m4ag6l6urx.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Shared.23xj2d2olw.dll → MindExecution.Shared.u07hdbavl1.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Web.4a5lf7nem7.dll → MindExecution.Web.m9h5r0uvry.dll} +0 -0
- package/wwwroot/_framework/blazor.boot.json +11 -11
- package/wwwroot/index.html +1 -1
- package/wwwroot/service-worker-assets.js +17 -17
- package/wwwroot/service-worker.js +1 -1
package/package.json
CHANGED
|
@@ -1736,14 +1736,7 @@
|
|
|
1736
1736
|
atlasContext.fillRect(0, 0, IMAGE_LOD_ATLAS_SIZE, IMAGE_LOD_ATLAS_SIZE);
|
|
1737
1737
|
}
|
|
1738
1738
|
this.imageAtlasTexture = new THREE.CanvasTexture(this.imageAtlasCanvas);
|
|
1739
|
-
this.imageAtlasTexture
|
|
1740
|
-
this.imageAtlasTexture.minFilter = THREE.LinearFilter;
|
|
1741
|
-
this.imageAtlasTexture.magFilter = THREE.LinearFilter;
|
|
1742
|
-
this.imageAtlasTexture.wrapS = THREE.ClampToEdgeWrapping;
|
|
1743
|
-
this.imageAtlasTexture.wrapT = THREE.ClampToEdgeWrapping;
|
|
1744
|
-
this.imageAtlasTexture.flipY = false;
|
|
1745
|
-
this.imageAtlasTexture.generateMipmaps = false;
|
|
1746
|
-
this.imageAtlasTexture.needsUpdate = true;
|
|
1739
|
+
window.MindMapRenderPlan?.configureImageAtlasTexture?.(this.imageAtlasTexture, THREE);
|
|
1747
1740
|
}
|
|
1748
1741
|
|
|
1749
1742
|
const nodeVertexShader = `
|
|
@@ -1956,6 +1949,7 @@
|
|
|
1956
1949
|
polygonOffsetUnits: -10.0
|
|
1957
1950
|
});
|
|
1958
1951
|
|
|
1952
|
+
const imageAtlasOutputColorChunk = window.MindMapRenderPlan?.getImageAtlasOutputColorChunk?.(THREE) || '';
|
|
1959
1953
|
const imageLodMaterial = new THREE.ShaderMaterial({
|
|
1960
1954
|
uniforms: {
|
|
1961
1955
|
uImageAtlas: { value: this.imageAtlasTexture },
|
|
@@ -2016,7 +2010,7 @@
|
|
|
2016
2010
|
color = mix(color, borderColor, borderMask * (vSelected > 0.5 ? 0.92 : 0.36));
|
|
2017
2011
|
|
|
2018
2012
|
gl_FragColor = vec4(color, 1.0);
|
|
2019
|
-
|
|
2013
|
+
${imageAtlasOutputColorChunk}
|
|
2020
2014
|
}
|
|
2021
2015
|
`,
|
|
2022
2016
|
transparent: false,
|
|
@@ -3420,7 +3414,7 @@
|
|
|
3420
3414
|
}
|
|
3421
3415
|
|
|
3422
3416
|
hasResidentDirtyWork(camera = this._module?.camera, module = this._module) {
|
|
3423
|
-
return
|
|
3417
|
+
return window.MindMapRenderPlan?.hasResidentDirtyWork?.(this, camera, module, getLodBandForCameraZ, buildLodSelectionKey, isAnimatedGifImageModel) === true;
|
|
3424
3418
|
}
|
|
3425
3419
|
|
|
3426
3420
|
willLodBandChange(camera) {
|
|
@@ -4018,17 +4012,10 @@
|
|
|
4018
4012
|
}
|
|
4019
4013
|
|
|
4020
4014
|
_clearFullResImageVisuals(nodeObjectsById) {
|
|
4021
|
-
|
|
4022
|
-
|
|
4023
|
-
for (const nodeId of this._fullResImageVisualIds) {
|
|
4024
|
-
const entry = nodeObjectsById?.get?.(nodeId) || null;
|
|
4025
|
-
if (entry) this._hideImageLodFullVisual(entry);
|
|
4026
|
-
}
|
|
4027
|
-
|
|
4028
|
-
this._fullResImageVisualIds.clear();
|
|
4015
|
+
window.MindMapRenderPlan?.clearFullResImageVisuals?.(this, nodeObjectsById);
|
|
4029
4016
|
}
|
|
4030
4017
|
|
|
4031
|
-
_syncFullResImageVisuals(visibleIds, nodeObjectsById, module, lodBand) {
|
|
4018
|
+
_syncFullResImageVisuals(visibleIds, nodeObjectsById, module, lodBand, selectionKey = '') {
|
|
4032
4019
|
if (this.isInLODMode !== false || !nodeObjectsById) {
|
|
4033
4020
|
this._clearFullResImageVisuals(nodeObjectsById);
|
|
4034
4021
|
return;
|
|
@@ -4058,7 +4045,10 @@
|
|
|
4058
4045
|
if (!entry) continue;
|
|
4059
4046
|
|
|
4060
4047
|
if (supportsCss3dNodeModel(entry?.model)) {
|
|
4061
|
-
|
|
4048
|
+
if (window.MindMapRenderPlan?.restoreParkedFullResCss?.(
|
|
4049
|
+
this, entry, module, nodeObjectsById, selectionKey, lodBand, nodeId) !== true) {
|
|
4050
|
+
this._syncCssImageBodyBridge(entry, module);
|
|
4051
|
+
}
|
|
4062
4052
|
continue;
|
|
4063
4053
|
}
|
|
4064
4054
|
|
|
@@ -4663,6 +4653,7 @@
|
|
|
4663
4653
|
}
|
|
4664
4654
|
|
|
4665
4655
|
entry.cssObject = cssObject;
|
|
4656
|
+
window.MindMapRenderPlan?.cachePreparedResidentCss?.(this, entry, module, module.nodeObjectsById);
|
|
4666
4657
|
return true;
|
|
4667
4658
|
}
|
|
4668
4659
|
|
|
@@ -4672,8 +4663,7 @@
|
|
|
4672
4663
|
!Array.isArray(prioritizedVisible) ||
|
|
4673
4664
|
!nodeObjectsById ||
|
|
4674
4665
|
!module ||
|
|
4675
|
-
this.isLoading
|
|
4676
|
-
module.isZooming === true) {
|
|
4666
|
+
this.isLoading) {
|
|
4677
4667
|
return;
|
|
4678
4668
|
}
|
|
4679
4669
|
|
|
@@ -4684,12 +4674,12 @@
|
|
|
4684
4674
|
if (!nodeId || this._css3dPrewarmQueuedIds.has(nodeId)) continue;
|
|
4685
4675
|
|
|
4686
4676
|
const entry = nodeObjectsById.get(nodeId);
|
|
4687
|
-
if (!entry || entry.cssObject || !supportsCss3dNodeModel(entry.model)) continue;
|
|
4677
|
+
if (!entry || (entry.cssObject && entry.isCssDirty !== true) || !supportsCss3dNodeModel(entry.model)) continue;
|
|
4688
4678
|
if (allowPanTextPrewarm && !isTextLikeModel(entry.model)) continue;
|
|
4689
4679
|
if (shouldShowAgentConsoleInLodBand(lodBand) && hasAgentConsoleOpenForEntry(entry)) continue;
|
|
4690
4680
|
|
|
4691
4681
|
this._css3dPrewarmQueuedIds.add(nodeId);
|
|
4692
|
-
this._css3dPrewarmQueue.push({ nodeId, module });
|
|
4682
|
+
this._css3dPrewarmQueue.push({ nodeId, module, nodeObjectsById, entry });
|
|
4693
4683
|
}
|
|
4694
4684
|
|
|
4695
4685
|
if (this._css3dPrewarmQueue.length > 0 && !this._css3dPrewarmProcessing) {
|
|
@@ -4715,6 +4705,7 @@
|
|
|
4715
4705
|
const module = this._module || null;
|
|
4716
4706
|
const allowPanTextPrewarm = module?.isPanning === true && module?.isZooming !== true;
|
|
4717
4707
|
if ((module?.isPanning === true && !allowPanTextPrewarm) || module?.isZooming === true) {
|
|
4708
|
+
shouldContinue = this._css3dPrewarmQueue.length > 0;
|
|
4718
4709
|
return;
|
|
4719
4710
|
}
|
|
4720
4711
|
|
|
@@ -4740,11 +4731,17 @@
|
|
|
4740
4731
|
|
|
4741
4732
|
this._css3dPrewarmQueuedIds.delete(nodeId);
|
|
4742
4733
|
const itemModule = item.module || this._module;
|
|
4734
|
+
if (itemModule !== this._module || item.nodeObjectsById !== itemModule?.nodeObjectsById) continue;
|
|
4743
4735
|
const entry = itemModule?.nodeObjectsById?.get(nodeId);
|
|
4744
|
-
if (!entry || entry.cssObject || !supportsCss3dNodeModel(entry.model)) continue;
|
|
4736
|
+
if (!entry || entry !== item.entry || (entry.cssObject && entry.isCssDirty !== true) || !supportsCss3dNodeModel(entry.model)) continue;
|
|
4745
4737
|
if (allowPanTextPrewarm && !isTextLikeModel(entry.model)) continue;
|
|
4746
4738
|
|
|
4747
|
-
this._ensureHiddenCss3dObject(entry, itemModule);
|
|
4739
|
+
if (!entry.cssObject && !this._ensureHiddenCss3dObject(entry, itemModule)) continue;
|
|
4740
|
+
if (entry.isCssDirty === true && window.MindMapCss3DManager?.syncCss3dContent) {
|
|
4741
|
+
window.MindMapCss3DManager.syncCss3dContent(entry.model, entry.cssObject);
|
|
4742
|
+
entry.isCssDirty = false;
|
|
4743
|
+
}
|
|
4744
|
+
window.MindMapRenderPlan?.cachePreparedResidentCss?.(this, entry, itemModule, item.nodeObjectsById);
|
|
4748
4745
|
count++;
|
|
4749
4746
|
}
|
|
4750
4747
|
|
|
@@ -5037,6 +5034,7 @@
|
|
|
5037
5034
|
if (!entry || !isCssMediaFallbackModel(entry?.model)) {
|
|
5038
5035
|
return false;
|
|
5039
5036
|
}
|
|
5037
|
+
if (window.MindMapRenderPlan?.reuseActiveCssMediaFallback?.(this,entry,module)) return true;
|
|
5040
5038
|
|
|
5041
5039
|
if (!entry.cssObject?.element && !this._ensureHiddenCss3dObject(entry, module)) {
|
|
5042
5040
|
return false;
|
|
@@ -5153,6 +5151,12 @@
|
|
|
5153
5151
|
const isNodeSelected = nodeId
|
|
5154
5152
|
? isNodeSelectedForLod(nodeId, multiSelectedIds, selectedNodeId)
|
|
5155
5153
|
: false;
|
|
5154
|
+
const hasInteractiveOwner = module?.draggedNodeId === nodeId || this._getCurrentHoveredNodeId(module) === nodeId;
|
|
5155
|
+
if (contentType === 'image' && !isAnimatedGifImageModel(entry.model) &&
|
|
5156
|
+
this._hasActiveImageLodInstance(nodeId) && !isNodeSelected && !hasInteractiveOwner) {
|
|
5157
|
+
this._hideCssMediaLodFallback(entry, { forceMediaGlFallback: true });
|
|
5158
|
+
return false;
|
|
5159
|
+
}
|
|
5156
5160
|
const shouldKeep = contentType === 'image'
|
|
5157
5161
|
? (entry.isVisibleInFrustum === true || isNodeSelected === true)
|
|
5158
5162
|
: entry.isVisibleInFrustum === true;
|
|
@@ -5172,7 +5176,7 @@
|
|
|
5172
5176
|
|
|
5173
5177
|
const allowImageCssFallbacks = this._shouldUseCssImageFallbackInResidentLod(module, lodBand);
|
|
5174
5178
|
|
|
5175
|
-
for (const nodeId of
|
|
5179
|
+
for (const nodeId of window.MindMapRenderPlan?.fallbackBatch?.(this, this._lodImageCssFallbackNodeIds) || []) {
|
|
5176
5180
|
const entry = nodeObjectsById.get(nodeId) || null;
|
|
5177
5181
|
if (!entry || !isCssMediaFallbackModel(entry.model)) {
|
|
5178
5182
|
this._lodImageCssFallbackNodeIds.delete(nodeId);
|
|
@@ -5311,39 +5315,7 @@
|
|
|
5311
5315
|
}
|
|
5312
5316
|
|
|
5313
5317
|
hasPendingNearCssWarmup(module) {
|
|
5314
|
-
|
|
5315
|
-
return false;
|
|
5316
|
-
}
|
|
5317
|
-
|
|
5318
|
-
if (this._css3dProcessing || this._css3dQueuedMap.size > 0 || this._hasCss3dQueueItems()) {
|
|
5319
|
-
return true;
|
|
5320
|
-
}
|
|
5321
|
-
|
|
5322
|
-
if (this._nearEntryBoostFrames > 0) {
|
|
5323
|
-
return true;
|
|
5324
|
-
}
|
|
5325
|
-
|
|
5326
|
-
const moduleRef = module || this._module || null;
|
|
5327
|
-
const visibleIds = this._getNearVisibleIds(moduleRef);
|
|
5328
|
-
const nodeObjectsById = moduleRef?.nodeObjectsById || null;
|
|
5329
|
-
if (!visibleIds || !nodeObjectsById || visibleIds.size === 0) {
|
|
5330
|
-
return false;
|
|
5331
|
-
}
|
|
5332
|
-
|
|
5333
|
-
for (const nodeId of visibleIds) {
|
|
5334
|
-
if (this._nearCssVisibleIds.has(nodeId)) {
|
|
5335
|
-
continue;
|
|
5336
|
-
}
|
|
5337
|
-
|
|
5338
|
-
const entry = nodeObjectsById.get(nodeId);
|
|
5339
|
-
if (!entry?.glObject || !supportsCss3dNodeModel(entry.model)) {
|
|
5340
|
-
continue;
|
|
5341
|
-
}
|
|
5342
|
-
|
|
5343
|
-
return true;
|
|
5344
|
-
}
|
|
5345
|
-
|
|
5346
|
-
return false;
|
|
5318
|
+
return window.MindMapRenderPlan?.hasPendingNearCssWarmup?.(this, module, buildLodSelectionKey, isCss3dRendererEnabled, supportsCss3dNodeModel) === true;
|
|
5347
5319
|
}
|
|
5348
5320
|
|
|
5349
5321
|
|
|
@@ -5668,40 +5640,8 @@
|
|
|
5668
5640
|
return { warmMax, queueMax, perIdle, budgetMs };
|
|
5669
5641
|
}
|
|
5670
5642
|
|
|
5671
|
-
|
|
5672
|
-
|
|
5673
|
-
const fps = Number(module?._currentFps || 60);
|
|
5674
|
-
let frames = 12;
|
|
5675
|
-
|
|
5676
|
-
if (visibleCount >= 72) {
|
|
5677
|
-
frames = 16;
|
|
5678
|
-
}
|
|
5679
|
-
if (visibleCount >= 144) {
|
|
5680
|
-
frames = 20;
|
|
5681
|
-
}
|
|
5682
|
-
if (visibleCount >= 240) {
|
|
5683
|
-
frames = 24;
|
|
5684
|
-
}
|
|
5685
|
-
|
|
5686
|
-
if (avgFrameTime > 22 || fps < 42) {
|
|
5687
|
-
frames = Math.max(10, frames - 4);
|
|
5688
|
-
}
|
|
5689
|
-
|
|
5690
|
-
return frames;
|
|
5691
|
-
}
|
|
5692
|
-
|
|
5693
|
-
_getAdaptiveNearCssActivationConfig(visibleCount = 0, module = this._module, isNearBoostFrame = false) {
|
|
5694
|
-
const visibleBudget = Number.isFinite(Number(visibleCount))
|
|
5695
|
-
? Math.max(1, Math.ceil(Number(visibleCount)))
|
|
5696
|
-
: Number.MAX_SAFE_INTEGER;
|
|
5697
|
-
|
|
5698
|
-
// NEAR/NORMAL is the readable full-res CSS3D path. Splitting activation
|
|
5699
|
-
// across frames makes some nodes move or reveal later than others, which
|
|
5700
|
-
// is visually worse than a bounded one-tick activation cost.
|
|
5701
|
-
return {
|
|
5702
|
-
maxPerFrame: visibleBudget,
|
|
5703
|
-
budgetMs: Number.MAX_SAFE_INTEGER
|
|
5704
|
-
};
|
|
5643
|
+
_getAdaptiveNearCssActivationConfig(visibleCount = 0) {
|
|
5644
|
+
return { maxPerFrame: Math.max(1, Math.ceil(Number(visibleCount) || 1)), budgetMs: Number.MAX_SAFE_INTEGER };
|
|
5705
5645
|
}
|
|
5706
5646
|
|
|
5707
5647
|
updateLOD(camera, nodeObjectsById, module) {
|
|
@@ -5857,10 +5797,11 @@
|
|
|
5857
5797
|
}
|
|
5858
5798
|
|
|
5859
5799
|
if (modeChanged) {
|
|
5860
|
-
const
|
|
5800
|
+
const transitionPlan = window.MindMapRenderPlan;
|
|
5801
|
+
transitionPlan?.beginResidentCssTransition?.(
|
|
5802
|
+
this, module, nodeObjectsById, previousLodBand, lodBand, lodSelectionKey);
|
|
5861
5803
|
this.isInLODMode = shouldUseLOD;
|
|
5862
5804
|
this._updateMeshVisibility(); // Use helper to respect loading state
|
|
5863
|
-
console.log(`[LODRenderer] Mode switched to: ${shouldUseLOD ? 'LOD' : 'FULL-RES'} (Band=${lodBand}, Z=${cameraZ.toFixed(0)})`);
|
|
5864
5805
|
|
|
5865
5806
|
if (this.isInLODMode) {
|
|
5866
5807
|
this._lodVisualEpoch++;
|
|
@@ -5870,11 +5811,12 @@
|
|
|
5870
5811
|
if (shouldUseLOD) {
|
|
5871
5812
|
this._finishFullResHandoff('enter-lod');
|
|
5872
5813
|
this._clearFullResImageVisuals(nodeObjectsById);
|
|
5814
|
+
if ((this.imageInstanceData?.nodeIds?.length || 0) > 0) {
|
|
5815
|
+
perfTime('lodImageInstances', () => this._applyImageInstanceData());
|
|
5816
|
+
}
|
|
5873
5817
|
this._fullResMotionHiddenGlIds.clear();
|
|
5874
5818
|
this._currentLodBand = lodBand;
|
|
5875
|
-
|
|
5876
|
-
this._markLineDetailsDirty();
|
|
5877
|
-
}
|
|
5819
|
+
transitionPlan?.ensureResidentLineDetails?.(this, lodBand);
|
|
5878
5820
|
if (this.instancedHaloMesh) this.instancedHaloMesh.visible = shouldShowInstancedHaloInLodBand(lodBand);
|
|
5879
5821
|
this.instancedMesh.visible = true;
|
|
5880
5822
|
if (this.isLoading) {
|
|
@@ -5895,6 +5837,7 @@
|
|
|
5895
5837
|
cssIdsToHide.add(nodeId);
|
|
5896
5838
|
}
|
|
5897
5839
|
const currentNodeMap = this._module?.nodeObjectsById;
|
|
5840
|
+
const activeCssOwnerId = module?.draggedNodeId || this._getCurrentHoveredNodeId(module);
|
|
5898
5841
|
for (const nodeId of this._activeFullResCssNodeIds) cssIdsToHide.add(nodeId);
|
|
5899
5842
|
this._clearCss3dQueue();
|
|
5900
5843
|
this._clearCss3dPrewarmQueue();
|
|
@@ -5909,7 +5852,6 @@
|
|
|
5909
5852
|
this._primeWarmCss3dCache(prioritizedWarm, currentNodeMap, lodBand);
|
|
5910
5853
|
this._queueCss3dPrewarm(prioritizedWarm, currentNodeMap, module, lodBand);
|
|
5911
5854
|
if (currentNodeMap && cssIdsToHide.size > 0) {
|
|
5912
|
-
const hideStart = performance.now();
|
|
5913
5855
|
perfTime('lodCleanup', () => {
|
|
5914
5856
|
for (const nodeId of cssIdsToHide) {
|
|
5915
5857
|
const entry = currentNodeMap.get(nodeId);
|
|
@@ -5919,15 +5861,18 @@
|
|
|
5919
5861
|
const isTextLike = isTextLikeModel(model);
|
|
5920
5862
|
const shouldKeepConsoleProxy = false;
|
|
5921
5863
|
if (!isLivePortalCss && isTextLike) {
|
|
5922
|
-
|
|
5923
|
-
entry
|
|
5924
|
-
entry.cssObject.element?.style?.setProperty?.('display', 'none', 'important');
|
|
5925
|
-
}
|
|
5926
|
-
entry.currentType = 'GL';
|
|
5864
|
+
transitionPlan?.parkFullResCss?.(
|
|
5865
|
+
this, entry, module, currentNodeMap, lodSelectionKey, 'text');
|
|
5927
5866
|
if (entry.glObject) this._hideTextLodFullVisual(entry);
|
|
5928
5867
|
this._setGlowVisibility(entry, false);
|
|
5929
5868
|
continue;
|
|
5930
5869
|
}
|
|
5870
|
+
const contentType = getNodeContentType(model);
|
|
5871
|
+
const isNodeSelected = isNodeSelectedForLod(nodeId, multiSelectedIds, selectedNodeId);
|
|
5872
|
+
if (!isLivePortalCss && contentType === 'image' &&
|
|
5873
|
+
transitionPlan?.parkReadyResidentImage?.(
|
|
5874
|
+
this, entry, module, currentNodeMap, lodSelectionKey, nodeId,
|
|
5875
|
+
isAnimatedGifImageModel(model), isNodeSelected, activeCssOwnerId === nodeId)) continue;
|
|
5931
5876
|
const element = entry.cssObject?.element || null;
|
|
5932
5877
|
if (!isLivePortalCss && isCssMediaFallbackModel(model) &&
|
|
5933
5878
|
entry.cssObject?.visible === true && element && element.style.display !== 'none') {
|
|
@@ -5956,9 +5901,7 @@
|
|
|
5956
5901
|
entry.currentType = 'GL';
|
|
5957
5902
|
}
|
|
5958
5903
|
|
|
5959
|
-
const contentType = getNodeContentType(model);
|
|
5960
5904
|
const isImage = isImageLodProxyModel(model);
|
|
5961
|
-
const isNodeSelected = isNodeSelectedForLod(nodeId, multiSelectedIds, selectedNodeId);
|
|
5962
5905
|
if (!isLivePortalCss && isTextLike && entry.glObject) {
|
|
5963
5906
|
this._hideTextLodFullVisual(entry);
|
|
5964
5907
|
} else if (isImage) {
|
|
@@ -5979,7 +5922,6 @@
|
|
|
5979
5922
|
module._css3dVisualChangedSinceLastRender = true;
|
|
5980
5923
|
}
|
|
5981
5924
|
});
|
|
5982
|
-
console.log(`[LODRenderer] CSS3D hidden synchronously in ${(performance.now() - hideStart).toFixed(1)}ms (${cssIdsToHide.size} active)`);
|
|
5983
5925
|
}
|
|
5984
5926
|
|
|
5985
5927
|
if (module?.renderDebugFlags?.enableCss3dWillChange === true &&
|
|
@@ -6020,7 +5962,7 @@
|
|
|
6020
5962
|
this._lastNearCssNoWorkKey = '';
|
|
6021
5963
|
const nearVisibleIds = this._getNearVisibleIds(module);
|
|
6022
5964
|
this._clearWarmCss3dCache(this._module?.nodeObjectsById, nearVisibleIds);
|
|
6023
|
-
this._nearEntryBoostFrames =
|
|
5965
|
+
this._nearEntryBoostFrames = 0;
|
|
6024
5966
|
this._lodCleanupPending = true;
|
|
6025
5967
|
|
|
6026
5968
|
if (module?.renderDebugFlags?.enableCss3dWillChange === true &&
|
|
@@ -6095,7 +6037,7 @@
|
|
|
6095
6037
|
}
|
|
6096
6038
|
|
|
6097
6039
|
perfTime('fullResImages', () => {
|
|
6098
|
-
this._syncFullResImageVisuals(visibleIds, nodeObjectsById, module, lodBand);
|
|
6040
|
+
this._syncFullResImageVisuals(visibleIds, nodeObjectsById, module, lodBand, lodSelectionKey);
|
|
6099
6041
|
});
|
|
6100
6042
|
|
|
6101
6043
|
const prioritizedVisible = this._getNearVisiblePriority(visibleIds, nodeObjectsById, camera);
|
|
@@ -6229,9 +6171,13 @@
|
|
|
6229
6171
|
// visible CSS3D surface in-place so the expanded NORMAL
|
|
6230
6172
|
// band cannot show a blank low-detail shell while a
|
|
6231
6173
|
// deferred queue waits for motion/cooldown.
|
|
6232
|
-
|
|
6174
|
+
if (renderPlan?.restoreParkedFullResCss?.(
|
|
6175
|
+
this, entry, module, nodeObjectsById, lodSelectionKey, lodBand, nodeId) !== true) {
|
|
6176
|
+
this._showNodeCss3d(entry, module);
|
|
6177
|
+
}
|
|
6233
6178
|
processedCount++;
|
|
6234
6179
|
}
|
|
6180
|
+
renderPlan?.completeFullResTransition?.(this, allowedCssIds.size);
|
|
6235
6181
|
});
|
|
6236
6182
|
|
|
6237
6183
|
perfTime('fullResHandoff', () => {
|
|
@@ -6394,6 +6340,10 @@
|
|
|
6394
6340
|
});
|
|
6395
6341
|
}
|
|
6396
6342
|
|
|
6343
|
+
const committedResidentTextCount = window.MindMapRenderPlan?.syncCommittedResidentTextCount?.(
|
|
6344
|
+
this, hasResidentLodInstances, FORCE_RESIDENT_INSTANCES_IN_MID_FAR === true) ?? -1;
|
|
6345
|
+
if (committedResidentTextCount >= 0) totalTextLikeCount = committedResidentTextCount;
|
|
6346
|
+
|
|
6397
6347
|
const nextVisibleSubsetMode = shouldUseLOD && this._shouldUseVisibleSubsetLod(totalTextLikeCount, lodBand);
|
|
6398
6348
|
if (this._lodUsesVisibleSubset !== nextVisibleSubsetMode) {
|
|
6399
6349
|
this._lodUsesVisibleSubset = nextVisibleSubsetMode;
|
|
@@ -6419,9 +6369,7 @@
|
|
|
6419
6369
|
} else if (lodBand === 'MID') {
|
|
6420
6370
|
this._setInstancedBaseColor(0xffffff);
|
|
6421
6371
|
this._setInstancedDefaultBorderColor(0xd1d5db);
|
|
6422
|
-
if (previousResidentBand === 'FAR')
|
|
6423
|
-
this._markLineDetailsDirty();
|
|
6424
|
-
}
|
|
6372
|
+
if (previousResidentBand === 'FAR') window.MindMapRenderPlan?.ensureResidentLineDetails?.(this, lodBand);
|
|
6425
6373
|
}
|
|
6426
6374
|
}
|
|
6427
6375
|
const shouldSyncTemplateCss3d =
|
|
@@ -6884,7 +6832,7 @@
|
|
|
6884
6832
|
this._cachedImageNodeCount = imageNodeIds.length;
|
|
6885
6833
|
}
|
|
6886
6834
|
|
|
6887
|
-
_updateImageInstanceData(nodeObjectsById) {
|
|
6835
|
+
_updateImageInstanceData(nodeObjectsById, prepareOnly = false) {
|
|
6888
6836
|
const imagePositions = [];
|
|
6889
6837
|
const imageSizes = [];
|
|
6890
6838
|
const imageSelections = [];
|
|
@@ -6911,13 +6859,13 @@
|
|
|
6911
6859
|
|
|
6912
6860
|
if (contentType === 'image' &&
|
|
6913
6861
|
this._shouldUseCssImageFallbackInResidentLod(this._module, this._currentLodBand)) {
|
|
6914
|
-
this._hideImageLodFullVisual(entry);
|
|
6862
|
+
if (!prepareOnly) this._hideImageLodFullVisual(entry);
|
|
6915
6863
|
return;
|
|
6916
6864
|
}
|
|
6917
6865
|
|
|
6918
6866
|
const obj = entry.glObject || entry.cssObject;
|
|
6919
6867
|
if (!obj) {
|
|
6920
|
-
this._hideImageLodFullVisual(entry);
|
|
6868
|
+
if (!prepareOnly) this._hideImageLodFullVisual(entry);
|
|
6921
6869
|
return;
|
|
6922
6870
|
}
|
|
6923
6871
|
|
|
@@ -6928,7 +6876,7 @@
|
|
|
6928
6876
|
entry.isVisibleInFrustum === true ||
|
|
6929
6877
|
isNodeSelected === true;
|
|
6930
6878
|
if (!shouldKeepImageInstance) {
|
|
6931
|
-
this._hideImageLodFullVisual(entry);
|
|
6879
|
+
if (!prepareOnly) this._hideImageLodFullVisual(entry);
|
|
6932
6880
|
return;
|
|
6933
6881
|
}
|
|
6934
6882
|
|
|
@@ -6943,7 +6891,7 @@
|
|
|
6943
6891
|
if (!isRetryDeferred && isLoadPending) {
|
|
6944
6892
|
imageBatchPendingIds.add(nodeId);
|
|
6945
6893
|
}
|
|
6946
|
-
if (contentType === 'image') {
|
|
6894
|
+
if (!prepareOnly && contentType === 'image') {
|
|
6947
6895
|
this._syncImageLodTransitionVisual(
|
|
6948
6896
|
entry,
|
|
6949
6897
|
this._currentLodBand || 'MID',
|
|
@@ -6951,7 +6899,7 @@
|
|
|
6951
6899
|
this._module,
|
|
6952
6900
|
interactionState
|
|
6953
6901
|
);
|
|
6954
|
-
} else {
|
|
6902
|
+
} else if (!prepareOnly) {
|
|
6955
6903
|
this._syncCssMediaLodFallback(entry, this._module);
|
|
6956
6904
|
}
|
|
6957
6905
|
return;
|
|
@@ -6967,10 +6915,10 @@
|
|
|
6967
6915
|
imageUvRects.push(uvRect[0], uvRect[1], uvRect[2], uvRect[3]);
|
|
6968
6916
|
imageNodeIds.push(nodeId);
|
|
6969
6917
|
this._imageNodeIdToIndex.set(nodeId, imageNodeIds.length - 1);
|
|
6970
|
-
if (contentType !== 'image') {
|
|
6918
|
+
if (!prepareOnly && contentType !== 'image') {
|
|
6971
6919
|
this._hideCssMediaLodFallback(entry);
|
|
6972
6920
|
}
|
|
6973
|
-
this._hideImageLodFullVisual(entry);
|
|
6921
|
+
if (!prepareOnly) this._hideImageLodFullVisual(entry);
|
|
6974
6922
|
});
|
|
6975
6923
|
|
|
6976
6924
|
if (imageBatchPendingIds.size > 0) {
|
|
@@ -7135,35 +7083,7 @@
|
|
|
7135
7083
|
}
|
|
7136
7084
|
|
|
7137
7085
|
_hasAnimatedGifCssFallbackCandidates(module = this._module) {
|
|
7138
|
-
|
|
7139
|
-
if (!nodeObjectsById) {
|
|
7140
|
-
return false;
|
|
7141
|
-
}
|
|
7142
|
-
|
|
7143
|
-
const candidateIds = [];
|
|
7144
|
-
const pushId = (value) => {
|
|
7145
|
-
const id = String(value || '').trim();
|
|
7146
|
-
if (id) candidateIds.push(id);
|
|
7147
|
-
};
|
|
7148
|
-
|
|
7149
|
-
module?._visibleIds?.forEach?.(pushId);
|
|
7150
|
-
module?._prevVisibleIds?.forEach?.(pushId);
|
|
7151
|
-
pushId(module?.selectedNodeIdJs);
|
|
7152
|
-
module?.multiSelectedNodeIds?.forEach?.(pushId);
|
|
7153
|
-
this._lodImageCssFallbackNodeIds?.forEach?.(pushId);
|
|
7154
|
-
|
|
7155
|
-
const seenIds = new Set();
|
|
7156
|
-
for (const nodeId of candidateIds) {
|
|
7157
|
-
if (seenIds.has(nodeId)) continue;
|
|
7158
|
-
seenIds.add(nodeId);
|
|
7159
|
-
|
|
7160
|
-
const entry = nodeObjectsById.get(nodeId) || null;
|
|
7161
|
-
if (isAnimatedGifImageModel(entry?.model)) {
|
|
7162
|
-
return true;
|
|
7163
|
-
}
|
|
7164
|
-
}
|
|
7165
|
-
|
|
7166
|
-
return false;
|
|
7086
|
+
return window.MindMapRenderPlan?.hasAnimatedGifCssFallbackCandidates?.(this, module, isAnimatedGifImageModel) === true;
|
|
7167
7087
|
}
|
|
7168
7088
|
|
|
7169
7089
|
_shouldPreserveCssMediaFallbackForInteraction(entry, module = this._module) {
|