@visactor/vrender-core
Version:
```typescript import { xxx } from '@visactor/vrender-core'; ```
36 lines (30 loc) • 1.84 kB
JavaScript
;
function scheduleStageSharedStateRefresh(stage) {
stage && "released" !== stage.releaseStatus && stage.renderNextFrame();
}
function enqueueGraphicSharedStateRefresh(stage, graphic) {
var _a;
if (!stage) return;
(null !== (_a = stage._pendingSharedStateRefreshGraphics) && void 0 !== _a ? _a : stage._pendingSharedStateRefreshGraphics = new Set).add(graphic);
}
function markScopeActiveDescendantsDirty(scope, stage) {
scope.subtreeActiveDescendants.size && (scope.subtreeActiveDescendants.forEach((graphic => {
var _a;
graphic.sharedStateDirty = !0;
enqueueGraphicSharedStateRefresh(null !== (_a = null != stage ? stage : graphic.stage) && void 0 !== _a ? _a : scope.ownerStage, graphic);
})), scheduleStageSharedStateRefresh(null != stage ? stage : scope.ownerStage));
}
function flushStageSharedStateRefresh(stage) {
const pending = stage._pendingSharedStateRefreshGraphics;
if (!pending || !pending.size) return;
const graphics = Array.from(pending.values());
pending.clear(), graphics.forEach((graphic => {
"released" !== graphic.releaseStatus && graphic.stage === stage && graphic.sharedStateDirty && graphic.refreshSharedStateBeforeRender();
}));
}
Object.defineProperty(exports, "__esModule", {
value: !0
}), exports.flushStageSharedStateRefresh = exports.markScopeActiveDescendantsDirty = exports.enqueueGraphicSharedStateRefresh = exports.scheduleStageSharedStateRefresh = void 0,
exports.scheduleStageSharedStateRefresh = scheduleStageSharedStateRefresh, exports.enqueueGraphicSharedStateRefresh = enqueueGraphicSharedStateRefresh,
exports.markScopeActiveDescendantsDirty = markScopeActiveDescendantsDirty, exports.flushStageSharedStateRefresh = flushStageSharedStateRefresh;
//# sourceMappingURL=shared-state-refresh.js.map