MCPcopy Create free account
hub / github.com/bea4dev/ShojiWM / evaluateLayerEffects

Function evaluateLayerEffects

tools/decoration-runtime.ts:2431–2461  ·  view source on GitHub ↗
(
  events: CompositorEventController,
  effectConfig: RuntimeEffectConfig,
  outputName: string,
  snapshots: WaylandLayerSnapshot[],
)

Source from the content-addressed store, hash-verified

2429 if (uniformPatches !== null && uniformPatches.length > 0) {
2430 return {
2431 treeUpdate: "uniforms",
2432 uniformPatches,
2433 transform: entry.cache.lastTransform,
2434 managedWindow: entry.cache.lastManagedWindow,
2435 windowEffects: evaluateWindowEffects(effectConfig, windowId, entry),
2436 dirtyNodeIds: Array.from(
2437 new Set(uniformPatches.map((patch) => patch.nodeId)),
2438 ),
2439 nextPollInMs: hasWindowAnimations(windowId) ? 0 : peekNextPollDelay(),
2440 };
2441 }
2442 }
2443 const reevaluateNodeIds =
2444 dirtyUniformBindingKeys.length > 0
2445 ? Array.from(
2446 new Set([
2447 ...dirtyNodeIds,
2448 ...entry.cache.shaderUniformBindings
2449 .filter((binding) =>
2450 dirtyUniformBindingKeys.includes(binding.key)
2451 )
2452 .map((binding) => binding.nodeId),
2453 ]),
2454 )
2455 : dirtyNodeIds;
2456 // A full window dirty can coincide with node-scoped dirty marks from
2457 // derived signals. Passing those node ids to reevaluate() selects the
2458 // serialized-tree patch path, which deliberately does not recreate the
2459 // composition root or its ManagedWindow props. State transitions such as
2460 // unminimize would then leave the old idle/opacity static state behind and
2461 // disappear again once the visual animation completed.
2462 const reevaluated = forceFullReevaluation
2463 ? entry.cache.reevaluate()
2464 : entry.cache.reevaluate(reevaluateNodeIds);

Callers 1

mainFunction · 0.85

Calls 6

hasActiveAnimationsFunction · 0.90
syncLayerSnapshotsFunction · 0.85
evaluateLayerEffectFunction · 0.85
peekNextPollDelayFunction · 0.85
pushMethod · 0.80
getMethod · 0.65

Tested by

no test coverage detected