@flighthq/render 0.5.1-edge.1471.4e82419 → 0.5.1-edge.1685.dc0e23a
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/README.md +2 -2
- package/dist/contract.d.ts +8 -11
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +8 -11
- package/dist/contract.js.map +1 -1
- package/dist/enableColorAdjustmentGuards.d.ts.map +1 -1
- package/dist/enableColorAdjustmentGuards.js +4 -10
- package/dist/enableColorAdjustmentGuards.js.map +1 -1
- package/dist/enableColorAdjustments.d.ts.map +1 -1
- package/dist/enableColorAdjustments.js +3 -9
- package/dist/enableColorAdjustments.js.map +1 -1
- package/dist/explainScene2DCoverage.js +5 -5
- package/dist/explainScene2DCoverage.js.map +1 -1
- package/dist/explainScene2DPipelineCoverage.js +2 -2
- package/dist/explainScene2DPipelineCoverage.js.map +1 -1
- package/dist/explainScene2DRender.d.ts +2 -2
- package/dist/explainScene2DRender.d.ts.map +1 -1
- package/dist/explainScene2DRender.js +3 -4
- package/dist/explainScene2DRender.js.map +1 -1
- package/dist/explainScene3DPipelineCoverage.d.ts +2 -2
- package/dist/explainScene3DPipelineCoverage.d.ts.map +1 -1
- package/dist/explainScene3DPipelineCoverage.js +3 -3
- package/dist/explainScene3DPipelineCoverage.js.map +1 -1
- package/dist/imageSurface.d.ts +4 -3
- package/dist/imageSurface.d.ts.map +1 -1
- package/dist/imageSurface.js +15 -12
- package/dist/imageSurface.js.map +1 -1
- package/dist/index.d.ts +14 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -2
- package/dist/index.js.map +1 -1
- package/dist/mergeRenderOptions.d.ts +24 -0
- package/dist/mergeRenderOptions.d.ts.map +1 -0
- package/dist/mergeRenderOptions.js +49 -0
- package/dist/mergeRenderOptions.js.map +1 -0
- package/dist/renderCache.d.ts +4 -4
- package/dist/renderCache.d.ts.map +1 -1
- package/dist/renderCache.js +3 -3
- package/dist/renderCache.js.map +1 -1
- package/dist/renderProxy.d.ts +14 -14
- package/dist/renderProxy.d.ts.map +1 -1
- package/dist/renderProxy.js +13 -12
- package/dist/renderProxy.js.map +1 -1
- package/dist/renderProxyAdapter.d.ts +4 -4
- package/dist/renderProxyAdapter.d.ts.map +1 -1
- package/dist/renderProxyAdapter.js.map +1 -1
- package/dist/renderQueue.d.ts +2 -2
- package/dist/renderQueue.d.ts.map +1 -1
- package/dist/renderQueue.js +0 -2
- package/dist/renderQueue.js.map +1 -1
- package/dist/renderRegistryGuards.js +4 -4
- package/dist/renderRegistryGuards.js.map +1 -1
- package/dist/renderState.d.ts.map +1 -1
- package/dist/renderState.js +5 -7
- package/dist/renderState.js.map +1 -1
- package/dist/renderTarget.d.ts +5 -5
- package/dist/renderTarget.d.ts.map +1 -1
- package/dist/renderTarget.js +3 -3
- package/dist/renderTarget.js.map +1 -1
- package/dist/renderTransform2d.js +1 -1
- package/dist/renderTransform2d.js.map +1 -1
- package/dist/renderViewport.d.ts +3 -3
- package/dist/renderViewport.d.ts.map +1 -1
- package/dist/renderViewport.js +6 -25
- package/dist/renderViewport.js.map +1 -1
- package/dist/renderer.d.ts +4 -4
- package/dist/renderer.d.ts.map +1 -1
- package/dist/renderer.js +17 -24
- package/dist/renderer.js.map +1 -1
- package/package.json +13 -13
- package/src/enableColorAdjustmentGuards.test.ts +9 -15
- package/src/enableColorAdjustments.test.ts +17 -18
- package/src/explainScene2DCoverage.test.ts +15 -14
- package/src/explainScene2DPipelineCoverage.test.ts +9 -9
- package/src/explainScene2DRender.test.ts +8 -8
- package/src/explainScene3DPipelineCoverage.test.ts +20 -20
- package/src/imageSurface.test.ts +64 -49
- package/src/mergeRenderOptions.test.ts +79 -0
- package/src/renderCache.test.ts +5 -5
- package/src/renderMaterial.test.ts +3 -3
- package/src/renderProxy.test.ts +25 -18
- package/src/renderProxyAdapter.test.ts +2 -2
- package/src/renderQueue.test.ts +9 -9
- package/src/renderRegistryGuards.test.ts +3 -3
- package/src/renderState.test.ts +7 -25
- package/src/renderTransform2d.test.ts +0 -14
- package/src/renderViewport.test.ts +19 -35
- package/src/renderer.test.ts +76 -119
- package/src/sceneRender.test.ts +2 -2
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/render`. The `@fligh
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/render@0.5.1-edge.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/render@0.5.1-edge.1685.dc0e23a](https://github.com/flighthq/flight/tree/dc0e23a17453ec75c20ccbf07058a57b5ef10c4c/packages/render)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/dc0e23a17453ec75c20ccbf07058a57b5ef10c4c/LICENSE.md)
|
package/dist/contract.d.ts
CHANGED
|
@@ -1,28 +1,25 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './mergeRenderOptions';
|
|
2
2
|
export * from './enableColorAdjustmentGuards';
|
|
3
3
|
export * from './enableColorAdjustments';
|
|
4
|
+
export * from './enableSceneRenderGuards';
|
|
5
|
+
export * from './explainScene2DCoverage';
|
|
6
|
+
export * from './explainScene2DPipelineCoverage';
|
|
4
7
|
export * from './explainScene2DRender';
|
|
8
|
+
export * from './explainScene3DPipelineCoverage';
|
|
9
|
+
export * from './imageSurface';
|
|
5
10
|
export * from './renderAppearance';
|
|
6
11
|
export * from './renderCache';
|
|
7
|
-
export * from './renderer';
|
|
8
12
|
export * from './renderMaterial';
|
|
9
13
|
export * from './renderProxy';
|
|
10
14
|
export * from './renderProxyAdapter';
|
|
11
15
|
export * from './renderQueue';
|
|
12
|
-
export * from './imageSurface';
|
|
13
|
-
export * from './explainScene2DCoverage';
|
|
14
|
-
export * from './explainScene2DPipelineCoverage';
|
|
15
|
-
export * from './explainScene3DPipelineCoverage';
|
|
16
16
|
export * from './renderRegistryGuards';
|
|
17
17
|
export * from './renderRegistrySignals';
|
|
18
18
|
export * from './renderState';
|
|
19
19
|
export * from './renderTarget';
|
|
20
20
|
export * from './renderTransform2d';
|
|
21
21
|
export * from './renderViewport';
|
|
22
|
+
export * from './renderer';
|
|
23
|
+
export * from './scene2dWorkingColorSpace';
|
|
22
24
|
export * from './sceneRender';
|
|
23
|
-
export { SCENE2D_WORKING_COLOR_SPACE } from './scene2dWorkingColorSpace';
|
|
24
|
-
export { initializeRenderProxy } from './renderProxy';
|
|
25
|
-
export { initializeRenderCache, initializeRenderCacheAdapter } from './renderCache';
|
|
26
|
-
export { initializeRenderQueue } from './renderQueue';
|
|
27
|
-
export { initializeRenderState } from './renderState';
|
|
28
25
|
//# sourceMappingURL=contract.d.ts.map
|
package/dist/contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC"}
|
package/dist/contract.js
CHANGED
|
@@ -1,28 +1,25 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './mergeRenderOptions';
|
|
2
2
|
export * from './enableColorAdjustmentGuards';
|
|
3
3
|
export * from './enableColorAdjustments';
|
|
4
|
+
export * from './enableSceneRenderGuards';
|
|
5
|
+
export * from './explainScene2DCoverage';
|
|
6
|
+
export * from './explainScene2DPipelineCoverage';
|
|
4
7
|
export * from './explainScene2DRender';
|
|
8
|
+
export * from './explainScene3DPipelineCoverage';
|
|
9
|
+
export * from './imageSurface';
|
|
5
10
|
export * from './renderAppearance';
|
|
6
11
|
export * from './renderCache';
|
|
7
|
-
export * from './renderer';
|
|
8
12
|
export * from './renderMaterial';
|
|
9
13
|
export * from './renderProxy';
|
|
10
14
|
export * from './renderProxyAdapter';
|
|
11
15
|
export * from './renderQueue';
|
|
12
|
-
export * from './imageSurface';
|
|
13
|
-
export * from './explainScene2DCoverage';
|
|
14
|
-
export * from './explainScene2DPipelineCoverage';
|
|
15
|
-
export * from './explainScene3DPipelineCoverage';
|
|
16
16
|
export * from './renderRegistryGuards';
|
|
17
17
|
export * from './renderRegistrySignals';
|
|
18
18
|
export * from './renderState';
|
|
19
19
|
export * from './renderTarget';
|
|
20
20
|
export * from './renderTransform2d';
|
|
21
21
|
export * from './renderViewport';
|
|
22
|
+
export * from './renderer';
|
|
23
|
+
export * from './scene2dWorkingColorSpace';
|
|
22
24
|
export * from './sceneRender';
|
|
23
|
-
export { SCENE2D_WORKING_COLOR_SPACE } from './scene2dWorkingColorSpace';
|
|
24
|
-
export { initializeRenderProxy } from './renderProxy';
|
|
25
|
-
export { initializeRenderCache, initializeRenderCacheAdapter } from './renderCache';
|
|
26
|
-
export { initializeRenderQueue } from './renderQueue';
|
|
27
|
-
export { initializeRenderState } from './renderState';
|
|
28
25
|
//# sourceMappingURL=contract.js.map
|
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enableColorAdjustmentGuards.d.ts","sourceRoot":"","sources":["../src/enableColorAdjustmentGuards.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"enableColorAdjustmentGuards.d.ts","sourceRoot":"","sources":["../src/enableColorAdjustmentGuards.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAM5D,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAE3E;AAOD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAIpE"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { logOnce } from '@flighthq/log/contract';
|
|
2
|
-
import {
|
|
3
|
-
import { LogLevel, RegistryEntryState } from '@flighthq/types/contract';
|
|
2
|
+
import { LogLevel } from '@flighthq/types/contract';
|
|
4
3
|
import { getColorAdjustmentUnsupportedGuard, getRenderStateRuntime } from './renderState';
|
|
5
4
|
// Returns whether the color-adjustment deferral guard is installed on `state`.
|
|
6
5
|
export function areColorAdjustmentGuardsEnabled(state) {
|
|
@@ -13,14 +12,9 @@ export function areColorAdjustmentGuardsEnabled(state) {
|
|
|
13
12
|
// Idempotent.
|
|
14
13
|
export function enableColorAdjustmentGuards(state) {
|
|
15
14
|
const runtime = getRenderStateRuntime(state);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
runtime.registries.colorAdjustmentUnsupportedGuard = {
|
|
20
|
-
...table,
|
|
21
|
-
entry: { state: RegistryEntryState.Bound, value: warnUnsupportedColorAdjustment },
|
|
22
|
-
};
|
|
23
|
-
}
|
|
15
|
+
if (runtime.registries.colorAdjustmentUnsupportedGuard === warnUnsupportedColorAdjustment)
|
|
16
|
+
return;
|
|
17
|
+
runtime.registries.colorAdjustmentUnsupportedGuard = warnUnsupportedColorAdjustment;
|
|
24
18
|
}
|
|
25
19
|
function warnUnsupportedColorAdjustment() {
|
|
26
20
|
logOnce('render:unsupported-color-adjustment', LogLevel.Warn, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enableColorAdjustmentGuards.js","sourceRoot":"","sources":["../src/enableColorAdjustmentGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"enableColorAdjustmentGuards.js","sourceRoot":"","sources":["../src/enableColorAdjustmentGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,kCAAkC,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE1F,+EAA+E;AAC/E,MAAM,UAAU,+BAA+B,CAAC,KAAkB;IAChE,OAAO,kCAAkC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AAC3D,CAAC;AAED,qGAAqG;AACrG,oGAAoG;AACpG,oGAAoG;AACpG,8GAA8G;AAC9G,cAAc;AACd,MAAM,UAAU,2BAA2B,CAAC,KAAkB;IAC5D,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,OAAO,CAAC,UAAU,CAAC,+BAA+B,KAAK,8BAA8B;QAAE,OAAO;IAClG,OAAO,CAAC,UAAU,CAAC,+BAA+B,GAAG,8BAA8B,CAAC;AACtF,CAAC;AAED,SAAS,8BAA8B;IACrC,OAAO,CACL,qCAAqC,EACrC,QAAQ,CAAC,IAAI,EACb;QACE,OAAO,EACL,yKAAyK;KAC5K,EACD,QAAQ,CACT,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enableColorAdjustments.d.ts","sourceRoot":"","sources":["../src/enableColorAdjustments.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"enableColorAdjustments.d.ts","sourceRoot":"","sources":["../src/enableColorAdjustments.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAA6D,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAKvH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAEtE;AAMD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAI/D"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { multiplyColorMatrix } from '@flighthq/adjustments/contract';
|
|
2
2
|
import { concatColorScaleBias, createColorScaleBias } from '@flighthq/materials/contract';
|
|
3
3
|
import { getNodeRuntime } from '@flighthq/node/contract';
|
|
4
|
-
import { createSlotTable } from '@flighthq/registry/contract';
|
|
5
|
-
import { RegistryEntryState } from '@flighthq/types/contract';
|
|
6
4
|
import { getColorAdjustmentUnsupportedGuard, getRenderStateRuntime } from './renderState';
|
|
7
5
|
// Returns whether color-adjustment accumulation is installed on `state`.
|
|
8
6
|
export function areColorAdjustmentsEnabled(state) {
|
|
9
|
-
return getRenderStateRuntime(state).registries.colorAdjustments
|
|
7
|
+
return getRenderStateRuntime(state).registries.colorAdjustments != null;
|
|
10
8
|
}
|
|
11
9
|
// Installs color-adjustment accumulation on `state`. The base render walk reaches this module only
|
|
12
10
|
// through the persistent resolver slot, so states that do not opt in retain one empty-slot check and do
|
|
@@ -14,13 +12,9 @@ export function areColorAdjustmentsEnabled(state) {
|
|
|
14
12
|
// that can realize these values call this as part of their own opt-in. Idempotent.
|
|
15
13
|
export function enableColorAdjustments(state) {
|
|
16
14
|
const runtime = getRenderStateRuntime(state);
|
|
17
|
-
|
|
18
|
-
if (table.entry?.state === RegistryEntryState.Bound && table.entry.value === updateRenderProxyColorScaleBias)
|
|
15
|
+
if (runtime.registries.colorAdjustments === updateRenderProxyColorScaleBias)
|
|
19
16
|
return;
|
|
20
|
-
runtime.registries.colorAdjustments =
|
|
21
|
-
...table,
|
|
22
|
-
entry: { state: RegistryEntryState.Bound, value: updateRenderProxyColorScaleBias },
|
|
23
|
-
};
|
|
17
|
+
runtime.registries.colorAdjustments = updateRenderProxyColorScaleBias;
|
|
24
18
|
}
|
|
25
19
|
// Hands the node's resolved color adjustment to the render node. A node's color-adjustment stack
|
|
26
20
|
// (NodeRuntime.colorAdjustments) is fused once into the affine `resolvedColorScaleBias` cache by the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enableColorAdjustments.js","sourceRoot":"","sources":["../src/enableColorAdjustments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"enableColorAdjustments.js","sourceRoot":"","sources":["../src/enableColorAdjustments.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RenderRegistryTable, RequirementFacet, SceneCoverage } from '@flighthq/types/contract';
|
|
2
2
|
import { getRenderStateRuntime } from './renderState';
|
|
3
3
|
// Clears `out`, then reports every requirement in `usage` that any 2D backend answers the same way,
|
|
4
4
|
// with how well this state is wired for it — satisfied entries included, so one call is a manifest.
|
|
@@ -9,7 +9,7 @@ import { getRenderStateRuntime } from './renderState';
|
|
|
9
9
|
// blend realizations, per-backend material renderers — on top of this, rather than restating it.
|
|
10
10
|
//
|
|
11
11
|
// Unlike the 3D seam, node kinds ARE a requirement here: the 2D pipeline resolves every node through
|
|
12
|
-
// `
|
|
12
|
+
// `registerNodeRenderer(state, kind, renderer)`, where the 3D pipeline collects meshes structurally.
|
|
13
13
|
// `catalog` is the caller's complete backend inventory; an unserved requirement uses its first ordered
|
|
14
14
|
// registration as the primary remedy, while a satisfied requirement needs no catalog lookup.
|
|
15
15
|
export function explainScene2DCoverage(out, state, usage, catalog) {
|
|
@@ -30,7 +30,7 @@ function collectScene2DCoverageGaps(out, state, usage, stopAtFirst, catalog) {
|
|
|
30
30
|
// absent from the frame — the loudest failure in this seam and the one worth asking about first.
|
|
31
31
|
for (let i = 0; i < usage.nodeKinds.length; i++) {
|
|
32
32
|
const kind = usage.nodeKinds[i];
|
|
33
|
-
if (runtime.registries.
|
|
33
|
+
if (runtime.registries.nodeRenderers.has(kind)) {
|
|
34
34
|
out?.push({
|
|
35
35
|
coverage: SceneCoverage.Satisfied,
|
|
36
36
|
facet: RequirementFacet.SceneNodeKind,
|
|
@@ -47,10 +47,10 @@ function collectScene2DCoverageGaps(out, state, usage, stopAtFirst, catalog) {
|
|
|
47
47
|
// Only meaningful for a state that rasterizes shapes. A GL or WebGPU state drawing every shape
|
|
48
48
|
// through the mesh path never replays a command, so these entries are reported and simply not acted
|
|
49
49
|
// on — the same shape as reporting 3D node kinds a backend collects structurally.
|
|
50
|
-
const commands = runtime.registries.canvasShapeCommands
|
|
50
|
+
const commands = runtime.registries.canvasShapeCommands;
|
|
51
51
|
for (let i = 0; i < usage.shapeCommandKeys.length; i++) {
|
|
52
52
|
const kind = usage.shapeCommandKeys[i];
|
|
53
|
-
if (commands?.
|
|
53
|
+
if (commands?.has(kind)) {
|
|
54
54
|
out?.push({
|
|
55
55
|
coverage: SceneCoverage.Satisfied,
|
|
56
56
|
facet: RequirementFacet.SceneShapeCommand,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explainScene2DCoverage.js","sourceRoot":"","sources":["../src/explainScene2DCoverage.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"explainScene2DCoverage.js","sourceRoot":"","sources":["../src/explainScene2DCoverage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { getNodeRuntime } from '@flighthq/node/contract';
|
|
2
|
-
import {
|
|
2
|
+
import { getKindMapKeys } from '@flighthq/registry/contract';
|
|
3
3
|
import { getRenderStateRuntime } from './renderState';
|
|
4
4
|
export function explainScene2DPipelineCoverage(state, scene) {
|
|
5
5
|
const usedSet = new Set();
|
|
6
6
|
collectUsedKinds(usedSet, scene);
|
|
7
7
|
const registeredKinds = [];
|
|
8
|
-
|
|
8
|
+
getKindMapKeys(registeredKinds, getRenderStateRuntime(state).registries.nodeRenderers);
|
|
9
9
|
registeredKinds.sort();
|
|
10
10
|
const usedKinds = Array.from(usedSet).sort();
|
|
11
11
|
const registeredSet = new Set(registeredKinds);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explainScene2DPipelineCoverage.js","sourceRoot":"","sources":["../src/explainScene2DPipelineCoverage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"explainScene2DPipelineCoverage.js","sourceRoot":"","sources":["../src/explainScene2DPipelineCoverage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,UAAU,8BAA8B,CAC5C,KAAkB,EAClB,KAAwB;IAExB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAQ,CAAC;IAChC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAEjC,MAAM,eAAe,GAAW,EAAE,CAAC;IACnC,cAAc,CAAC,eAAe,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACvF,eAAe,CAAC,IAAI,EAAE,CAAC;IAEvB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;IAE/C,MAAM,cAAc,GAAW,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,mBAAmB,GAAW,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC;AAC7E,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAc,EAAE,IAAuB;IAC/D,MAAM,KAAK,GAAwB,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;QAC7B,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAkB,CAAC,CAAC,QAAQ,CAAC;QAC7D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { Scene2DRenderExplanation,
|
|
2
|
-
export declare function explainScene2DRender(state: RenderState, source:
|
|
1
|
+
import type { Scene2DRenderExplanation, NodeAny, RenderState } from '@flighthq/types/contract';
|
|
2
|
+
export declare function explainScene2DRender(state: RenderState, source: NodeAny): Scene2DRenderExplanation;
|
|
3
3
|
//# sourceMappingURL=explainScene2DRender.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explainScene2DRender.d.ts","sourceRoot":"","sources":["../src/explainScene2DRender.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,wBAAwB,EAExB,
|
|
1
|
+
{"version":3,"file":"explainScene2DRender.d.ts","sourceRoot":"","sources":["../src/explainScene2DRender.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,wBAAwB,EAExB,OAAO,EACP,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAqBlC,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAG,wBAAwB,CAmBlG"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { RegistryEntryState } from '@flighthq/types/contract';
|
|
2
1
|
import { getRenderProxy2D } from './renderProxy';
|
|
3
2
|
import { getRenderStateRuntime } from './renderState';
|
|
4
3
|
// Recomputes why `source` would or would not draw against `state`, and returns it as plain data. Pure:
|
|
@@ -8,18 +7,18 @@ import { getRenderStateRuntime } from './renderState';
|
|
|
8
7
|
//
|
|
9
8
|
// The reason is root-cause prioritized rather than following buildRenderQueue's literal check order
|
|
10
9
|
// (which drops on proxy===undefined, then !proxy.visible, then renderer===null). no-renderer is
|
|
11
|
-
// surfaced first because it is a static setup error — the "forgot
|
|
10
|
+
// surfaced first because it is a static setup error — the "forgot registerNodeRenderer for this kind"
|
|
12
11
|
// bug — that keeps the node blank no matter how the transient visible/alpha gates are fixed, and it is
|
|
13
12
|
// re-derivable from `kind` alone even before the node is prepared. not-prepared outranks the
|
|
14
13
|
// appearance gates for the same reason: nothing downstream matters until a proxy exists.
|
|
15
14
|
//
|
|
16
|
-
// Colocated with the render functions whose blank frame it explains —
|
|
15
|
+
// Colocated with the render functions whose blank frame it explains — registerNodeRenderer (renderer.ts),
|
|
17
16
|
// prepareScene2DRender (renderProxy.ts), and buildRenderQueue (renderQueue.ts). This is the
|
|
18
17
|
// maintenance seam: a pull query duplicates the draw path's drop conditions, so if the draw path grows
|
|
19
18
|
// a new blank-reason gate, this function must gain the matching check or it silently goes stale.
|
|
20
19
|
export function explainScene2DRender(state, source) {
|
|
21
20
|
const kind = source.kind;
|
|
22
|
-
const hasRenderer = getRenderStateRuntime(state).registries.
|
|
21
|
+
const hasRenderer = getRenderStateRuntime(state).registries.nodeRenderers.has(kind);
|
|
23
22
|
const proxy = getRenderProxy2D(state, source);
|
|
24
23
|
const prepared = proxy !== undefined;
|
|
25
24
|
const appearance = source;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explainScene2DRender.js","sourceRoot":"","sources":["../src/explainScene2DRender.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"explainScene2DRender.js","sourceRoot":"","sources":["../src/explainScene2DRender.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,uGAAuG;AACvG,qGAAqG;AACrG,oGAAoG;AACpG,uFAAuF;AACvF,EAAE;AACF,oGAAoG;AACpG,gGAAgG;AAChG,sGAAsG;AACtG,uGAAuG;AACvG,6FAA6F;AAC7F,yFAAyF;AACzF,EAAE;AACF,0GAA0G;AAC1G,4FAA4F;AAC5F,uGAAuG;AACvG,iGAAiG;AACjG,MAAM,UAAU,oBAAoB,CAAC,KAAkB,EAAE,MAAe;IACtE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,MAAM,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEpF,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,KAAK,KAAK,SAAS,CAAC;IAErC,MAAM,UAAU,GAAG,MAAkC,CAAC;IACtD,MAAM,OAAO,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;IACzE,MAAM,cAAc,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;IAE5E,IAAI,MAAgC,CAAC;IACrC,IAAI,CAAC,WAAW;QAAE,MAAM,GAAG,aAAa,CAAC;SACpC,IAAI,CAAC,QAAQ;QAAE,MAAM,GAAG,cAAc,CAAC;SACvC,IAAI,CAAC,OAAO;QAAE,MAAM,GAAG,aAAa,CAAC;SACrC,IAAI,cAAc,IAAI,CAAC;QAAE,MAAM,GAAG,YAAY,CAAC;;QAC/C,MAAM,GAAG,IAAI,CAAC;IAEnB,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;AAC1E,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function explainScene3DPipelineCoverage(state: RenderState, scene: Readonly<NodeAny>, materialRenderers:
|
|
1
|
+
import type { Kind, NodeAny, RenderState, Scene3DPipelineCoverageExplanation } from '@flighthq/types/contract';
|
|
2
|
+
export declare function explainScene3DPipelineCoverage(state: RenderState, scene: Readonly<NodeAny>, materialRenderers: ReadonlyMap<Kind, unknown> | null): Scene3DPipelineCoverageExplanation;
|
|
3
3
|
//# sourceMappingURL=explainScene3DPipelineCoverage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explainScene3DPipelineCoverage.d.ts","sourceRoot":"","sources":["../src/explainScene3DPipelineCoverage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"explainScene3DPipelineCoverage.d.ts","sourceRoot":"","sources":["../src/explainScene3DPipelineCoverage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,IAAI,EAEJ,OAAO,EACP,WAAW,EACX,kCAAkC,EACnC,MAAM,0BAA0B,CAAC;AAOlC,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxB,iBAAiB,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,GACnD,kCAAkC,CAmDpC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getNodeRuntime } from '@flighthq/node/contract';
|
|
2
|
-
import {
|
|
2
|
+
import { getKindMapKeys } from '@flighthq/registry/contract';
|
|
3
3
|
import { StandardMaterialKind } from '@flighthq/types/contract';
|
|
4
4
|
import { getRenderStateRuntime } from './renderState';
|
|
5
5
|
// Material renderers live on backend-specific registries (GlRenderRegistries, WgpuRenderRegistries),
|
|
@@ -9,11 +9,11 @@ export function explainScene3DPipelineCoverage(state, scene, materialRenderers)
|
|
|
9
9
|
const usedMaterialKindSet = new Set();
|
|
10
10
|
collectUsed3DKinds(usedKindSet, usedMaterialKindSet, scene);
|
|
11
11
|
const registeredKinds = [];
|
|
12
|
-
|
|
12
|
+
getKindMapKeys(registeredKinds, getRenderStateRuntime(state).registries.nodeRenderers);
|
|
13
13
|
registeredKinds.sort();
|
|
14
14
|
const registeredMaterialKinds = [];
|
|
15
15
|
if (materialRenderers !== null) {
|
|
16
|
-
|
|
16
|
+
getKindMapKeys(registeredMaterialKinds, materialRenderers);
|
|
17
17
|
}
|
|
18
18
|
registeredMaterialKinds.sort();
|
|
19
19
|
const usedKinds = Array.from(usedKindSet).sort();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explainScene3DPipelineCoverage.js","sourceRoot":"","sources":["../src/explainScene3DPipelineCoverage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"explainScene3DPipelineCoverage.js","sourceRoot":"","sources":["../src/explainScene3DPipelineCoverage.ts"],"names":[],"mappings":"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"}
|
package/dist/imageSurface.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
1
|
+
import type { CanvasSurface, HostCanvasCapability } from '@flighthq/types/contract';
|
|
2
|
+
export declare function createCanvasHostSurface(host: Readonly<HostCanvasCapability>, width: number, height: number): CanvasSurface | null;
|
|
3
|
+
export declare function destroyCanvasHostSurface(surface: CanvasSurface): void;
|
|
4
|
+
export declare function getCanvasHostSurface(surface: CanvasSurface): Readonly<HostCanvasCapability> | null;
|
|
4
5
|
//# sourceMappingURL=imageSurface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageSurface.d.ts","sourceRoot":"","sources":["../src/imageSurface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"imageSurface.d.ts","sourceRoot":"","sources":["../src/imageSurface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEpF,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EACpC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,aAAa,GAAG,IAAI,CAItB;AAKD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAKrE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,QAAQ,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAElG"}
|
package/dist/imageSurface.js
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
|
-
export function
|
|
2
|
-
const surface =
|
|
1
|
+
export function createCanvasHostSurface(host, width, height) {
|
|
2
|
+
const surface = host.createSurface(width, height);
|
|
3
3
|
if (surface !== null)
|
|
4
|
-
|
|
4
|
+
_surfaceHosts.set(surface, host);
|
|
5
5
|
return surface;
|
|
6
6
|
}
|
|
7
|
-
// A surface must return to the
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
export function
|
|
11
|
-
const
|
|
12
|
-
if (
|
|
7
|
+
// A surface must return to the host that allocated it even when the host reference changes during its
|
|
8
|
+
// lifetime. Delete the ownership record before invoking the host so repeated or reentrant destruction is
|
|
9
|
+
// a no-op and no non-GC resource can be freed twice.
|
|
10
|
+
export function destroyCanvasHostSurface(surface) {
|
|
11
|
+
const host = _surfaceHosts.get(surface);
|
|
12
|
+
if (host === undefined)
|
|
13
13
|
return;
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
_surfaceHosts.delete(surface);
|
|
15
|
+
host.destroySurface(surface);
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
export function getCanvasHostSurface(surface) {
|
|
18
|
+
return _surfaceHosts.get(surface) ?? null;
|
|
19
|
+
}
|
|
20
|
+
const _surfaceHosts = new WeakMap();
|
|
18
21
|
//# sourceMappingURL=imageSurface.js.map
|
package/dist/imageSurface.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageSurface.js","sourceRoot":"","sources":["../src/imageSurface.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"imageSurface.js","sourceRoot":"","sources":["../src/imageSurface.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB,CACrC,IAAoC,EACpC,KAAa,EACb,MAAc;IAEd,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAClD,IAAI,OAAO,KAAK,IAAI;QAAE,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,sGAAsG;AACtG,yGAAyG;AACzG,qDAAqD;AACrD,MAAM,UAAU,wBAAwB,CAAC,OAAsB;IAC7D,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO;IAC/B,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAsB;IACzD,OAAO,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AAC5C,CAAC;AAED,MAAM,aAAa,GAAG,IAAI,OAAO,EAAiD,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export
|
|
1
|
+
export { mergeRenderOptions } from './mergeRenderOptions';
|
|
2
|
+
export * from './enableColorAdjustments';
|
|
3
|
+
export * from './enableSceneRenderGuards';
|
|
4
|
+
export * from './explainScene2DPipelineCoverage';
|
|
5
|
+
export * from './explainScene3DPipelineCoverage';
|
|
6
|
+
export * from './imageSurface';
|
|
7
|
+
export { createRenderCache, registerRenderCacheNodeRenderer, useRenderCache } from './renderCache';
|
|
8
|
+
export { disposeScene2DRender, prepareScene2DRender } from './renderProxy';
|
|
9
|
+
export { enableRenderRegistriesGuards, explainRenderRegistriesMisses } from './renderRegistryGuards';
|
|
10
|
+
export * from './renderRegistrySignals';
|
|
11
|
+
export { destroyRenderState } from './renderState';
|
|
12
|
+
export { registerNodeRenderer, registerNodeRenderers } from './renderer';
|
|
13
|
+
export * from './scene2dWorkingColorSpace';
|
|
14
|
+
export { prepareScene3DRender } from './sceneRender';
|
|
3
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACrG,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACzE,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export
|
|
1
|
+
export { mergeRenderOptions } from './mergeRenderOptions';
|
|
2
|
+
export * from './enableColorAdjustments';
|
|
3
|
+
export * from './enableSceneRenderGuards';
|
|
4
|
+
export * from './explainScene2DPipelineCoverage';
|
|
5
|
+
export * from './explainScene3DPipelineCoverage';
|
|
6
|
+
export * from './imageSurface';
|
|
7
|
+
export { createRenderCache, registerRenderCacheNodeRenderer, useRenderCache } from './renderCache';
|
|
8
|
+
export { disposeScene2DRender, prepareScene2DRender } from './renderProxy';
|
|
9
|
+
export { enableRenderRegistriesGuards, explainRenderRegistriesMisses } from './renderRegistryGuards';
|
|
10
|
+
export * from './renderRegistrySignals';
|
|
11
|
+
export { destroyRenderState } from './renderState';
|
|
12
|
+
export { registerNodeRenderer, registerNodeRenderers } from './renderer';
|
|
13
|
+
export * from './scene2dWorkingColorSpace';
|
|
14
|
+
export { prepareScene3DRender } from './sceneRender';
|
|
3
15
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACrG,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACzE,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { RenderStateOptions } from '@flighthq/types/contract';
|
|
2
|
+
/**
|
|
3
|
+
* Composes render-state option fragments into one, field by field.
|
|
4
|
+
*
|
|
5
|
+
* Every field of `RenderStateOptions` is named explicitly rather than folded by a generic deep merge.
|
|
6
|
+
* That is the point: a generic merge has to GUESS how an unfamiliar field composes, and it guesses
|
|
7
|
+
* silently. Naming each field means adding one to `RenderStateOptions` without deciding how it merges
|
|
8
|
+
* shows up as a compile error here and a failing exhaustiveness test, instead of as a field that
|
|
9
|
+
* quietly takes the last fragment's value in someone's build.
|
|
10
|
+
*
|
|
11
|
+
* The three shapes compose differently, and the difference is load-bearing:
|
|
12
|
+
*
|
|
13
|
+
* - **Kind-keyed maps merge**, later fragments winning per key. Two content files naming different
|
|
14
|
+
* kinds must both survive; two naming the same kind agree.
|
|
15
|
+
* - **Nullable policy functions are last-wins scalars.** A tessellator or a guard is one choice, not a
|
|
16
|
+
* collection, so the most recently stated fragment is the one the caller asked for.
|
|
17
|
+
* - **`undefined` never overwrites.** A fragment that does not mention a field is silent about it, which
|
|
18
|
+
* is different from a fragment that sets it to null.
|
|
19
|
+
*
|
|
20
|
+
* Deterministic and non-mutating: no input map is aliased into the result, and the result depends only
|
|
21
|
+
* on argument order.
|
|
22
|
+
*/
|
|
23
|
+
export declare function mergeRenderOptions(...options: readonly Readonly<RenderStateOptions>[]): RenderStateOptions;
|
|
24
|
+
//# sourceMappingURL=mergeRenderOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mergeRenderOptions.d.ts","sourceRoot":"","sources":["../src/mergeRenderOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,OAAO,EAAE,SAAS,QAAQ,CAAC,kBAAkB,CAAC,EAAE,GAAG,kBAAkB,CAuB1G"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Composes render-state option fragments into one, field by field.
|
|
3
|
+
*
|
|
4
|
+
* Every field of `RenderStateOptions` is named explicitly rather than folded by a generic deep merge.
|
|
5
|
+
* That is the point: a generic merge has to GUESS how an unfamiliar field composes, and it guesses
|
|
6
|
+
* silently. Naming each field means adding one to `RenderStateOptions` without deciding how it merges
|
|
7
|
+
* shows up as a compile error here and a failing exhaustiveness test, instead of as a field that
|
|
8
|
+
* quietly takes the last fragment's value in someone's build.
|
|
9
|
+
*
|
|
10
|
+
* The three shapes compose differently, and the difference is load-bearing:
|
|
11
|
+
*
|
|
12
|
+
* - **Kind-keyed maps merge**, later fragments winning per key. Two content files naming different
|
|
13
|
+
* kinds must both survive; two naming the same kind agree.
|
|
14
|
+
* - **Nullable policy functions are last-wins scalars.** A tessellator or a guard is one choice, not a
|
|
15
|
+
* collection, so the most recently stated fragment is the one the caller asked for.
|
|
16
|
+
* - **`undefined` never overwrites.** A fragment that does not mention a field is silent about it, which
|
|
17
|
+
* is different from a fragment that sets it to null.
|
|
18
|
+
*
|
|
19
|
+
* Deterministic and non-mutating: no input map is aliased into the result, and the result depends only
|
|
20
|
+
* on argument order.
|
|
21
|
+
*/
|
|
22
|
+
export function mergeRenderOptions(...options) {
|
|
23
|
+
const merged = {};
|
|
24
|
+
for (const fragment of options) {
|
|
25
|
+
if (fragment.canvasShapeCommands !== undefined) {
|
|
26
|
+
merged.canvasShapeCommands = new Map([...(merged.canvasShapeCommands ?? []), ...fragment.canvasShapeCommands]);
|
|
27
|
+
}
|
|
28
|
+
if (fragment.colorAdjustments !== undefined)
|
|
29
|
+
merged.colorAdjustments = fragment.colorAdjustments;
|
|
30
|
+
if (fragment.colorAdjustmentUnsupportedGuard !== undefined) {
|
|
31
|
+
merged.colorAdjustmentUnsupportedGuard = fragment.colorAdjustmentUnsupportedGuard;
|
|
32
|
+
}
|
|
33
|
+
if (fragment.effectPaddingResolvers !== undefined) {
|
|
34
|
+
merged.effectPaddingResolvers = new Map([
|
|
35
|
+
...(merged.effectPaddingResolvers ?? []),
|
|
36
|
+
...fragment.effectPaddingResolvers,
|
|
37
|
+
]);
|
|
38
|
+
}
|
|
39
|
+
if (fragment.nodeRenderers !== undefined) {
|
|
40
|
+
merged.nodeRenderers = new Map([...(merged.nodeRenderers ?? []), ...fragment.nodeRenderers]);
|
|
41
|
+
}
|
|
42
|
+
if (fragment.renderRootGuard !== undefined)
|
|
43
|
+
merged.renderRootGuard = fragment.renderRootGuard;
|
|
44
|
+
if (fragment.strokeTessellator !== undefined)
|
|
45
|
+
merged.strokeTessellator = fragment.strokeTessellator;
|
|
46
|
+
}
|
|
47
|
+
return merged;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=mergeRenderOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mergeRenderOptions.js","sourceRoot":"","sources":["../src/mergeRenderOptions.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAG,OAAgD;IACpF,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;QAC/B,IAAI,QAAQ,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAC/C,MAAM,CAAC,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,IAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACjH,CAAC;QACD,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS;YAAE,MAAM,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QACjG,IAAI,QAAQ,CAAC,+BAA+B,KAAK,SAAS,EAAE,CAAC;YAC3D,MAAM,CAAC,+BAA+B,GAAG,QAAQ,CAAC,+BAA+B,CAAC;QACpF,CAAC;QACD,IAAI,QAAQ,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;YAClD,MAAM,CAAC,sBAAsB,GAAG,IAAI,GAAG,CAAC;gBACtC,GAAG,CAAC,MAAM,CAAC,sBAAsB,IAAI,EAAE,CAAC;gBACxC,GAAG,QAAQ,CAAC,sBAAsB;aACnC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACzC,MAAM,CAAC,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS;YAAE,MAAM,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;QAC9F,IAAI,QAAQ,CAAC,iBAAiB,KAAK,SAAS;YAAE,MAAM,CAAC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;IACtG,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|