@cueframe/kernel 0.2.2 → 0.2.3
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/dist/_members/animate/index.d.ts +8 -2
- package/dist/_members/animate/layout/FlexLayout.d.ts +69 -0
- package/dist/_members/animate/layout/fit.d.ts +44 -0
- package/dist/_members/animate/layout/index.d.ts +3 -0
- package/dist/_members/animate/layout/solveFlex.d.ts +70 -0
- package/dist/_members/animate/media/MediaTileScene.d.ts +65 -0
- package/dist/_members/animate/media/recipes.d.ts +61 -0
- package/dist/_members/animate/scene/FocusPass.d.ts +76 -0
- package/dist/_members/animate/scene/UnlitPlane.d.ts +45 -0
- package/dist/_members/animate/scene/__oracle__/cssProjection.d.ts +24 -0
- package/dist/_members/animate/scene/assets.d.ts +21 -0
- package/dist/_members/animate/scene/backdrop.d.ts +7 -0
- package/dist/_members/animate/scene/coordinates.d.ts +58 -0
- package/dist/_members/animate/scene/deviceOpacity.d.ts +18 -0
- package/dist/_members/animate/scene/errors.d.ts +14 -0
- package/dist/_members/animate/scene/finishing.d.ts +69 -0
- package/dist/_members/animate/scene/finishingMath.d.ts +60 -0
- package/dist/_members/animate/scene/finishingPass.d.ts +35 -0
- package/dist/_members/animate/scene/focusBlur.d.ts +56 -0
- package/dist/_members/animate/scene/focusResources.d.ts +190 -0
- package/dist/_members/animate/scene/focusShaders.d.ts +68 -0
- package/dist/_members/animate/scene/fontReadiness.d.ts +27 -0
- package/dist/_members/animate/scene/grainNoise.d.ts +118 -0
- package/dist/_members/animate/scene/index.d.ts +19 -0
- package/dist/_members/animate/scene/internal.d.ts +29 -0
- package/dist/_members/animate/scene/planeFit.d.ts +46 -0
- package/dist/_members/animate/scene/preparedWorldText.d.ts +25 -0
- package/dist/_members/animate/scene/rasterCache.d.ts +30 -0
- package/dist/_members/animate/scene/rasterReadiness.d.ts +33 -0
- package/dist/_members/animate/scene/readiness.d.ts +69 -0
- package/dist/_members/animate/scene/redraw.d.ts +10 -0
- package/dist/_members/animate/scene/render.d.ts +9 -0
- package/dist/_members/animate/scene/scaling.d.ts +13 -0
- package/dist/_members/animate/scene/text.d.ts +40 -0
- package/dist/_members/animate/scene/textLayout.d.ts +78 -0
- package/dist/_members/animate/scene/textureImageSize.d.ts +4 -0
- package/dist/_members/animate/scene/useSceneImageTexture.d.ts +21 -0
- package/dist/_members/animate/scene/useWorldTextTexture.d.ts +21 -0
- package/dist/_members/animate/scene/v2/MeasuredPlaneGeometry.d.ts +7 -0
- package/dist/_members/animate/scene/v2/PhotographicStudioRig.d.ts +11 -0
- package/dist/_members/animate/scene/v2/PreparedSceneShotV1.d.ts +12 -0
- package/dist/_members/animate/scene/v2/SceneShotV2.d.ts +59 -0
- package/dist/_members/animate/scene/v2/builders.d.ts +170 -0
- package/dist/_members/animate/scene/v2/finishes.d.ts +152 -0
- package/dist/_members/animate/scene/v2/lighting.d.ts +119 -0
- package/dist/_members/animate/scene/v2/observePmremTargets.d.ts +4 -0
- package/dist/_members/animate/scene/v2/preparationFacts.d.ts +32 -0
- package/dist/_members/animate/scene/v2/preparedSurface.d.ts +17 -0
- package/dist/_members/animate/scene/v2/projectedResolution.d.ts +2 -0
- package/dist/_members/animate/scene/v2/renderTargetObserver.d.ts +5 -0
- package/dist/_members/animate/scene/v2/runtimeAllocations.d.ts +55 -0
- package/dist/_members/animate/scene/v2/shadow.d.ts +23 -0
- package/dist/_members/animate/scene/v2/slabGeometry.d.ts +134 -0
- package/dist/_members/animate/scene/v2/slots.d.ts +73 -0
- package/dist/_members/animate/scene/v2/videoBinding.d.ts +39 -0
- package/dist/_members/animate/scene/worldBounds.d.ts +19 -0
- package/dist/_members/animate/scene/worldTextRaster.d.ts +87 -0
- package/dist/_members/animate/scene/worldTextTexture.d.ts +32 -0
- package/dist/_members/animate/stage/PerspectiveStage.d.ts +73 -0
- package/dist/_members/animate/stage/camera.d.ts +143 -0
- package/dist/_members/animate/stage/dof.d.ts +9 -0
- package/dist/_members/animate/stage/index.d.ts +6 -0
- package/dist/_members/animate/stage/presets.d.ts +17 -0
- package/dist/_members/animate/three/DeviceMesh.d.ts +256 -0
- package/dist/_members/animate/three/SceneCameraRig.d.ts +12 -0
- package/dist/_members/animate/three/StageCameraRig.d.ts +7 -0
- package/dist/_members/animate/three/StudioRig.d.ts +228 -0
- package/dist/_members/animate/three/ThreeCanvas.d.ts +22 -0
- package/dist/_members/animate/three/defaultScreen.d.ts +23 -0
- package/dist/_members/animate/three/index.d.ts +7 -1
- package/dist/_members/animate/three/textureLifecycle.d.ts +29 -0
- package/dist/_members/animate/three/toneMapping.d.ts +113 -0
- package/dist/_members/animate/three/useImageTexture.d.ts +17 -0
- package/dist/_members/authoring/index.d.ts +2 -0
- package/dist/_members/authoring/scene/index.d.ts +6 -0
- package/dist/_members/authoring/scene/materialize.d.ts +47 -0
- package/dist/_members/authoring/scene/validate.d.ts +80 -0
- package/dist/_members/authoring/scene/wrapper.d.ts +41 -0
- package/dist/_members/component-runtime/allowedImports.d.ts +3 -0
- package/dist/_members/component-runtime/allowedImports.d.ts.map +1 -0
- package/dist/_members/component-runtime/bake.d.ts +8 -0
- package/dist/_members/component-runtime/bake.d.ts.map +1 -1
- package/dist/_members/component-runtime/browserFirewall.d.ts +7 -1
- package/dist/_members/component-runtime/browserFirewall.d.ts.map +1 -1
- package/dist/_members/component-runtime/browserOptions.d.ts +59 -3
- package/dist/_members/component-runtime/browserOptions.d.ts.map +1 -1
- package/dist/_members/component-runtime/canonicalIdentity.d.ts +14 -0
- package/dist/_members/component-runtime/canonicalIdentity.d.ts.map +1 -1
- package/dist/_members/component-runtime/contracts.d.ts +341 -1
- package/dist/_members/component-runtime/contracts.d.ts.map +1 -1
- package/dist/_members/component-runtime/fixtures/imageTileDriftWall.d.ts +5 -0
- package/dist/_members/component-runtime/fixtures/imageTileDriftWall.d.ts.map +1 -0
- package/dist/_members/component-runtime/fixtures/mediaTileMixed.d.ts +5 -0
- package/dist/_members/component-runtime/fixtures/mediaTileMixed.d.ts.map +1 -0
- package/dist/_members/component-runtime/fixtures/mediaTileVideo.d.ts +8 -0
- package/dist/_members/component-runtime/fixtures/mediaTileVideo.d.ts.map +1 -0
- package/dist/_members/component-runtime/importPolicy.d.ts +3 -2
- package/dist/_members/component-runtime/importPolicy.d.ts.map +1 -1
- package/dist/_members/component-runtime/index.d.ts +3 -0
- package/dist/_members/component-runtime/index.d.ts.map +1 -1
- package/dist/_members/component-runtime/livePreviewProxy.d.ts +7 -0
- package/dist/_members/component-runtime/livePreviewProxy.d.ts.map +1 -0
- package/dist/_members/component-runtime/localRoot.d.ts +37 -0
- package/dist/_members/component-runtime/localRoot.d.ts.map +1 -0
- package/dist/_members/component-runtime/mediaResolution.d.ts +25 -0
- package/dist/_members/component-runtime/mediaResolution.d.ts.map +1 -0
- package/dist/_members/component-runtime/render.d.ts +151 -13
- package/dist/_members/component-runtime/render.d.ts.map +1 -1
- package/dist/_members/component-runtime/renderDiagnostics.d.ts +14 -0
- package/dist/_members/component-runtime/renderDiagnostics.d.ts.map +1 -0
- package/dist/_members/component-runtime/sceneAdmission.d.ts +47 -0
- package/dist/_members/component-runtime/sceneAdmission.d.ts.map +1 -0
- package/dist/_members/component-runtime/sourceWorkspace.d.ts +8 -0
- package/dist/_members/component-runtime/sourceWorkspace.d.ts.map +1 -1
- package/dist/_members/component-runtime/webglProbe.d.ts +191 -0
- package/dist/_members/component-runtime/webglProbe.d.ts.map +1 -0
- package/dist/_members/composition/fonts/bundledFaces.d.ts +150 -0
- package/dist/_members/composition/fonts/captionFaces.d.ts +268 -0
- package/dist/_members/composition/fonts.d.ts +11 -4
- package/dist/_members/composition/graphics-plan/schemas.d.ts +4 -4
- package/dist/_members/composition/ops/types.d.ts +1 -1
- package/dist/_members/composition/primitive-catalog/types.d.ts +1 -0
- package/dist/_members/composition/projection/behind-readiness.d.ts +3 -0
- package/dist/_members/composition/projection/brandKit.d.ts +6 -0
- package/dist/_members/composition/projection/composition-floor.d.ts +2 -1
- package/dist/_members/composition/scene/animation.d.ts +25 -0
- package/dist/_members/composition/scene/budget.d.ts +29 -0
- package/dist/_members/composition/scene/budgetPolicy.d.mts +13 -0
- package/dist/_members/composition/scene/clipRules.d.ts +119 -0
- package/dist/_members/composition/scene/constraints.d.ts +61 -0
- package/dist/_members/composition/scene/device.d.ts +21 -0
- package/dist/_members/composition/scene/examples.d.ts +11 -0
- package/dist/_members/composition/scene/index.d.ts +11 -0
- package/dist/_members/composition/scene/photographicRig.d.ts +242 -0
- package/dist/_members/composition/scene/preparedRender.d.ts +239 -0
- package/dist/_members/composition/scene/resolution.d.ts +178 -0
- package/dist/_members/composition/scene/schema.d.ts +351 -0
- package/dist/_members/composition/scene/videoSchedule.d.ts +43 -0
- package/dist/_members/composition/validators/brandKit.d.ts +1 -0
- package/dist/_members/composition/validators/render.d.ts +2 -0
- package/dist/_members/composition-ops/index.d.ts +45 -0
- package/dist/_members/composition-ops/opRecorder.d.ts +1 -1
- package/dist/_members/core/render/compositionRender.d.ts +41 -9
- package/dist/_members/core/render/index.d.ts +9 -2
- package/dist/_members/core/render/sceneCaptureIdentity.d.ts +14 -0
- package/dist/_members/core/render/sceneShotPlan.d.ts +142 -0
- package/dist/_members/core/render/sceneShotPreparation.d.ts +57 -0
- package/dist/_members/core/render/slabDescriptor.d.ts +21 -0
- package/dist/_members/core/render/trackProjection.d.ts +33 -0
- package/dist/_members/core/render/types.d.ts +142 -0
- package/dist/_members/errors/registry.d.ts +6 -0
- package/dist/_members/mcp/adapter.d.ts +5 -0
- package/dist/_members/mcp/generated/sceneContract.d.ts +155 -0
- package/dist/_members/mcp/sceneShot.d.ts +38 -0
- package/dist/_members/mcp/sceneShotExample.d.ts +22 -0
- package/dist/_members/media-model/api.d.ts +1 -0
- package/dist/_members/media-model/media-kind.d.ts +1 -1
- package/dist/_members/media-model/testing/mediaStoreContract.d.ts +1 -1
- package/dist/_members/primitives/effects/index.d.ts +1 -0
- package/dist/_members/primitives/effects/stage-camera/config.d.ts +50 -0
- package/dist/_members/primitives/effects/stage-camera/index.d.ts +31 -0
- package/dist/_members/primitives/layouts/flex-layout/config.d.ts +73 -0
- package/dist/_members/primitives/layouts/flex-layout/index.d.ts +4 -0
- package/dist/_members/primitives/layouts/index.d.ts +1 -0
- package/dist/_members/primitives/layouts/picture-in-picture/config.d.ts +1 -1
- package/dist/_members/primitives/lib/frameScale.d.ts +4 -0
- package/dist/_members/primitives/lib/index.d.ts +1 -0
- package/dist/_members/primitives/lib/palette.d.ts +30 -30
- package/dist/_members/primitives/lib/text/contrast.d.ts +2 -1
- package/dist/_members/primitives/lib/text/spec.d.ts +0 -8
- package/dist/_members/primitives/lib/types.d.ts +2 -0
- package/dist/_members/primitives/scenes/device-showcase/config.d.ts +41 -0
- package/dist/_members/primitives/scenes/device-showcase/index.d.ts +36 -0
- package/dist/_members/primitives/scenes/hero-device-assemble/config.d.ts +1 -0
- package/dist/_members/primitives/scenes/hero-device-assemble/index.d.ts +2 -1
- package/dist/_members/primitives/scenes/index.d.ts +1 -0
- package/dist/_members/primitives/ui-blocks/badge-pop/config.d.ts +1 -1
- package/dist/_members/primitives/ui-blocks/device-mockup-zoom/config.d.ts +1 -0
- package/dist/_members/primitives/ui-blocks/device-mockup-zoom/index.d.ts +2 -1
- package/dist/_members/primitives/ui-blocks/terminal-simulator/config.d.ts +1 -1
- package/dist/_members/primitives/ui-blocks/toast-notification/config.d.ts +1 -1
- package/dist/_members/render-harness/cardAssetAdmission.d.ts.map +1 -1
- package/dist/_members/render-harness/cardRender.d.ts.map +1 -1
- package/dist/_members/render-harness/css-tree-subpaths.d.ts +11 -0
- package/dist/_members/render-harness/extractSegments.d.ts +1 -0
- package/dist/_members/render-harness/extractSegments.d.ts.map +1 -1
- package/dist/_members/render-harness/imageHeader.d.ts +14 -0
- package/dist/_members/render-harness/imageHeader.d.ts.map +1 -0
- package/dist/_members/render-harness/index.d.ts +6 -0
- package/dist/_members/render-harness/index.d.ts.map +1 -1
- package/dist/_members/render-harness/materializeSources.d.ts +46 -2
- package/dist/_members/render-harness/materializeSources.d.ts.map +1 -1
- package/dist/_members/render-harness/nodeScenePreparation.d.ts +97 -0
- package/dist/_members/render-harness/nodeScenePreparation.d.ts.map +1 -0
- package/dist/_members/render-harness/remotion-runtime.d.ts +16 -2
- package/dist/_members/render-harness/renderInputAssets.d.ts +1 -1
- package/dist/_members/render-harness/renderInputAssets.d.ts.map +1 -1
- package/dist/_members/render-harness/resolveAssets.d.ts +2 -2
- package/dist/_members/render-harness/resolveAssets.d.ts.map +1 -1
- package/dist/_members/render-harness/sceneShotAssets.d.ts +17 -0
- package/dist/_members/render-harness/sceneShotAssets.d.ts.map +1 -0
- package/dist/animate/preparation-facts.d.ts +1 -0
- package/dist/animate/preparation-facts.js +22 -0
- package/dist/animate.js +336 -1005
- package/dist/authoring/build-tools.js +7 -6
- package/dist/authoring/context.js +5 -4
- package/dist/authoring/prompts.js +1 -1
- package/dist/authoring/scene.d.ts +1 -0
- package/dist/authoring/scene.js +50 -0
- package/dist/authoring/tools.js +6 -5
- package/dist/authoring.js +49 -29
- package/dist/chunk-2L7PYYJK.js +23 -0
- package/dist/{chunk-ZN6P3KOJ.js → chunk-32TH76H3.js} +2 -2
- package/dist/chunk-5DJ3IEJR.js +4424 -0
- package/dist/chunk-6BVVCRRD.js +26488 -0
- package/dist/{chunk-DQKSCHFC.js → chunk-6EWRIAZA.js} +187 -66
- package/dist/{chunk-YQ7FFW3G.js → chunk-6VWICHOZ.js} +26 -5
- package/dist/{chunk-RETQFTGY.js → chunk-A74FZCPY.js} +42 -5
- package/dist/{chunk-C5SEPOWD.js → chunk-AS5EXBNS.js} +1792 -707
- package/dist/{chunk-U5LBYS3N.js → chunk-B3GSTQLR.js} +339 -272
- package/dist/chunk-BVA3537Z.js +63 -0
- package/dist/{chunk-DHKQ47Q6.js → chunk-DAARYRNT.js} +6 -1
- package/dist/chunk-DQLYWNLC.js +2063 -0
- package/dist/chunk-E6WHXIDF.js +3619 -0
- package/dist/{chunk-HXKTZPRH.js → chunk-E7GIZEPS.js} +1 -1
- package/dist/{chunk-M2TLRXEO.js → chunk-EXY4JJPH.js} +1 -1
- package/dist/{chunk-GEGRJKKO.js → chunk-F2DJL7P7.js} +1 -1
- package/dist/{chunk-AWT3P5ZN.js → chunk-FVDFPJHT.js} +1 -1
- package/dist/{chunk-EMGFZ3PR.js → chunk-FWSJLHSV.js} +5 -1
- package/dist/{chunk-TMIBBD5E.js → chunk-I5QWBM3M.js} +280 -113
- package/dist/{chunk-IBMJ33EL.js → chunk-I5RX2QZT.js} +1 -1
- package/dist/{chunk-4FOOBSEE.js → chunk-J3DIUG24.js} +1 -0
- package/dist/{chunk-AD5HWBCE.js → chunk-JX53CVJV.js} +14 -5
- package/dist/{chunk-LNBVTDFR.js → chunk-L2AHS3AW.js} +1 -1
- package/dist/{chunk-BDMTUEEZ.js → chunk-LT4PWSR2.js} +2 -2
- package/dist/chunk-MH3UPKWR.js +3415 -0
- package/dist/{chunk-RFXR7ATW.js → chunk-NUKDEOK6.js} +13 -1
- package/dist/{chunk-IJ7PVJTK.js → chunk-ODUWCQI3.js} +3 -2
- package/dist/chunk-QAGGJHAF.js +16 -0
- package/dist/chunk-QS36DMFG.js +332 -0
- package/dist/{chunk-G5BFI32U.js → chunk-RAXHCRVV.js} +1 -1
- package/dist/{chunk-BIBYZJL3.js → chunk-RL5SO653.js} +3 -3
- package/dist/{chunk-ZSZABOE5.js → chunk-S5H6GH6M.js} +1 -1
- package/dist/{chunk-EEXCDFY5.js → chunk-SD25VQDE.js} +1 -1
- package/dist/{chunk-7REW2MW3.js → chunk-SX523NDS.js} +10 -10
- package/dist/chunk-TARKDVP6.js +430 -0
- package/dist/{chunk-IHFREGFA.js → chunk-TCHPRGC5.js} +18 -2
- package/dist/{chunk-ZCAQHNPI.js → chunk-UKGNHZS4.js} +1 -1
- package/dist/{chunk-WQSGVRFU.js → chunk-UY77TMKD.js} +31 -44
- package/dist/chunk-VKATKWWR.js +1462 -0
- package/dist/{chunk-CX2IIQ4R.js → chunk-W2245F6G.js} +29 -29
- package/dist/{chunk-XHUYWVYK.js → chunk-WBNFSG6T.js} +1 -1
- package/dist/chunk-WIHXXF3X.js +221 -0
- package/dist/{chunk-XVBOSPZI.js → chunk-X74EEFXV.js} +6 -6
- package/dist/{chunk-7KEUL3FI.js → chunk-XF2QMKRG.js} +9 -1
- package/dist/{chunk-HFC3MKXA.js → chunk-Y4HPN4BC.js} +1 -0
- package/dist/{chunk-D43J23QX.js → chunk-YFSBFCXO.js} +1018 -42
- package/dist/{chunk-6ID2J64H.js → chunk-YHC3RXS7.js} +162 -25
- package/dist/{chunk-KKEY5MIW.js → chunk-ZS3A3QUM.js} +16 -16
- package/dist/{chunk-LQUWKBST.js → chunk-ZVG446DJ.js} +139 -10
- package/dist/component-runtime/browserOptions.js +14 -3
- package/dist/component-runtime/contracts.js +35 -3
- package/dist/component-runtime/identity/browser.js +1 -1
- package/dist/component-runtime/identity.js +2 -2
- package/dist/component-runtime/importPolicy.js +2 -2
- package/dist/component-runtime/mediaResolution.d.ts +1 -0
- package/dist/component-runtime/mediaResolution.js +11 -0
- package/dist/component-runtime/render.js +38 -5
- package/dist/component-runtime.js +118 -14
- package/dist/compose.js +26 -20
- package/dist/composition/fonts.js +64 -67
- package/dist/composition/graphics-plan.js +3 -2
- package/dist/composition/ops.js +4 -3
- package/dist/composition/primitive-catalog.js +1 -1
- package/dist/composition/projection.js +10 -3
- package/dist/composition/scene/budget-policy.d.ts +1 -0
- package/dist/composition/scene/budget-policy.js +17 -0
- package/dist/composition/scene/schema.json +2757 -0
- package/dist/composition/scene.d.ts +1 -0
- package/dist/composition/scene.js +275 -0
- package/dist/composition/validators.js +3 -2
- package/dist/composition-ops.js +103 -13
- package/dist/composition.js +12 -5
- package/dist/{context-4GSDBFT3.js → context-IUPQ54V4.js} +5 -4
- package/dist/core/render.js +54 -3
- package/dist/core/select.js +2 -2
- package/dist/core.js +6 -3
- package/dist/director/ai-sdk.js +3 -3
- package/dist/director/domain.js +2 -2
- package/dist/director.js +3 -3
- package/dist/errors.js +1 -1
- package/dist/mcp/adapter.js +4 -4
- package/dist/mcp/core.js +1 -1
- package/dist/mcp/curation.js +1 -1
- package/dist/mcp/server.js +4 -4
- package/dist/mcp.js +4 -4
- package/dist/media-model/media-kind.js +2 -0
- package/dist/media-model/testing.js +16 -11
- package/dist/media-model.js +1 -1
- package/dist/nle-export.js +26 -20
- package/dist/primitives/backgrounds.js +2 -2
- package/dist/primitives/captions.js +21 -11
- package/dist/primitives/effects.js +14 -4
- package/dist/primitives/graphics.json +3 -0
- package/dist/primitives/hero-text.js +4 -3
- package/dist/primitives/layouts.js +9 -2
- package/dist/primitives/lib/frameScale.d.ts +1 -0
- package/dist/primitives/lib/frameScale.js +11 -0
- package/dist/primitives/lib/index.js +18 -10
- package/dist/primitives/lib/palette.js +1 -1
- package/dist/primitives/lib/text/contrast.js +2 -1
- package/dist/primitives/lib/text/typeface.js +1 -1
- package/dist/primitives/lib.js +18 -10
- package/dist/primitives/params-required.json +3 -0
- package/dist/primitives/scenes.js +12 -3
- package/dist/primitives/text.js +5 -5
- package/dist/primitives/transitions.js +2 -2
- package/dist/primitives/ui-blocks.js +6 -5
- package/dist/primitives/version-map.json +5 -2
- package/dist/primitives.js +20 -13
- package/dist/render-harness/cardAssetAdmission.js +2 -2
- package/dist/render-harness/renderInputAssets.js +2 -2
- package/dist/render-harness.js +874 -124
- package/package.json +49 -15
- package/dist/_members/animate/three/drei.d.ts +0 -6
- package/dist/_members/component-runtime/fixtures/webgpuTiledRefraction.d.ts +0 -9
- package/dist/_members/component-runtime/fixtures/webgpuTiledRefraction.d.ts.map +0 -1
- package/dist/chunk-5OTQ7M43.js +0 -718
- package/dist/chunk-CGHTMZNC.js +0 -6
- package/dist/chunk-KVMVYRXX.js +0 -9527
- package/dist/chunk-WYQX4QIK.js +0 -544
- /package/dist/{chunk-H5LMJKZU.js → chunk-JVDUSOYG.js} +0 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import type { SceneBakeScaleSelection } from "./resolution.js";
|
|
2
|
+
import type { SceneChannelV2, SceneObjectV2, SceneShotSpecV2, SceneSurfaceBindingV2, SceneVec3 } from "./schema.js";
|
|
3
|
+
import type { SceneSeparationResultV2 } from "./constraints.js";
|
|
4
|
+
import { type SceneSealedVideoScheduleV1, type SceneVerifiedPresentationIndexV1 } from "./videoSchedule.js";
|
|
5
|
+
export type ScenePreparedJson = null | boolean | number | string | ScenePreparedJson[] | {
|
|
6
|
+
[key: string]: ScenePreparedJson;
|
|
7
|
+
};
|
|
8
|
+
export interface SceneExactRateV1 {
|
|
9
|
+
num: number;
|
|
10
|
+
den: number;
|
|
11
|
+
}
|
|
12
|
+
export interface SceneBuilderPartDescriptorV1 {
|
|
13
|
+
partId: string;
|
|
14
|
+
materialRole: string;
|
|
15
|
+
triangles: number;
|
|
16
|
+
mounted: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface SceneBuilderSlotDescriptorV1 {
|
|
19
|
+
slot: string;
|
|
20
|
+
attachment: {
|
|
21
|
+
partId: string;
|
|
22
|
+
materialRole: string;
|
|
23
|
+
};
|
|
24
|
+
dimensions: {
|
|
25
|
+
width: number;
|
|
26
|
+
height: number;
|
|
27
|
+
};
|
|
28
|
+
projectionQuad: readonly [SceneVec3, SceneVec3, SceneVec3, SceneVec3];
|
|
29
|
+
uvOrigin: "top-left" | "bottom-left";
|
|
30
|
+
fit: "contain" | "cover" | "stretch";
|
|
31
|
+
alpha: "opaque" | "straight" | "premultiplied";
|
|
32
|
+
depth: "write" | "test-only";
|
|
33
|
+
required: boolean;
|
|
34
|
+
bakeScales: readonly (2 | 3)[];
|
|
35
|
+
}
|
|
36
|
+
export interface SceneBuilderAllocationDescriptorV1 {
|
|
37
|
+
owner: string;
|
|
38
|
+
name: string;
|
|
39
|
+
domain: "gl" | "cpu";
|
|
40
|
+
resource: "texture" | "renderbuffer" | "geometry" | "pmrem-source" | "pmrem-target" | "encoded-image" | "decoded-image" | "encoded-video" | "decoded-video";
|
|
41
|
+
format: string;
|
|
42
|
+
bytes: number;
|
|
43
|
+
lifetime: "preparation" | "context";
|
|
44
|
+
}
|
|
45
|
+
export interface SceneBuilderDescriptorV1 {
|
|
46
|
+
kind: SceneObjectV2["kind"];
|
|
47
|
+
builderVersion: number;
|
|
48
|
+
tessellationVersion: number;
|
|
49
|
+
budgetTriangles: number;
|
|
50
|
+
parts: readonly SceneBuilderPartDescriptorV1[];
|
|
51
|
+
surfaceSlots: readonly SceneBuilderSlotDescriptorV1[];
|
|
52
|
+
materialRoles: readonly string[];
|
|
53
|
+
localBounds: {
|
|
54
|
+
center: SceneVec3;
|
|
55
|
+
halfExtents: SceneVec3;
|
|
56
|
+
};
|
|
57
|
+
allocations: readonly SceneBuilderAllocationDescriptorV1[];
|
|
58
|
+
}
|
|
59
|
+
export interface ScenePlanOutputV1 {
|
|
60
|
+
width: number;
|
|
61
|
+
height: number;
|
|
62
|
+
fps: SceneExactRateV1;
|
|
63
|
+
durationInFrames: number;
|
|
64
|
+
}
|
|
65
|
+
export interface ScenePreparedFontFaceV1 {
|
|
66
|
+
family: string;
|
|
67
|
+
weight: number;
|
|
68
|
+
style: "normal" | "italic";
|
|
69
|
+
url?: string;
|
|
70
|
+
paths: readonly string[];
|
|
71
|
+
}
|
|
72
|
+
export interface ScenePreparedObjectV1 {
|
|
73
|
+
authoredId: string;
|
|
74
|
+
parentId: string | null;
|
|
75
|
+
kind: SceneObjectV2["kind"];
|
|
76
|
+
builder: SceneBuilderDescriptorV1 | null;
|
|
77
|
+
parts: readonly {
|
|
78
|
+
id: string;
|
|
79
|
+
partId: string;
|
|
80
|
+
materialRole: string;
|
|
81
|
+
triangles: number;
|
|
82
|
+
mounted: boolean;
|
|
83
|
+
}[];
|
|
84
|
+
}
|
|
85
|
+
export interface SceneCaptureIdentityFactsV1 {
|
|
86
|
+
componentId: string;
|
|
87
|
+
sourceVersionId: string;
|
|
88
|
+
params: ScenePreparedJson;
|
|
89
|
+
assetBindings: ScenePreparedJson;
|
|
90
|
+
layoutWidth: number;
|
|
91
|
+
layoutHeight: number;
|
|
92
|
+
bakeScale: 2 | 3;
|
|
93
|
+
captureFrame: number;
|
|
94
|
+
durationInFrames: number;
|
|
95
|
+
fps: SceneExactRateV1;
|
|
96
|
+
seed: string;
|
|
97
|
+
brandFacts: ScenePreparedJson;
|
|
98
|
+
fontFacts: ScenePreparedJson;
|
|
99
|
+
mediaFacts: ScenePreparedJson;
|
|
100
|
+
rasterWidth: number;
|
|
101
|
+
rasterHeight: number;
|
|
102
|
+
runtimeIdentity: string;
|
|
103
|
+
dependencyIdentity: string;
|
|
104
|
+
browserProduct: string;
|
|
105
|
+
browserVersion: string;
|
|
106
|
+
browserExecutableSha256: string;
|
|
107
|
+
headless: boolean;
|
|
108
|
+
rasterAffectingFlags: ScenePreparedJson;
|
|
109
|
+
os: string;
|
|
110
|
+
arch: string;
|
|
111
|
+
deviceScaleFactor: number;
|
|
112
|
+
colorProfile: string;
|
|
113
|
+
requestedGlBackend: string;
|
|
114
|
+
actualGlBackend: string;
|
|
115
|
+
actualRenderer: string;
|
|
116
|
+
gpuIdentity: string | null;
|
|
117
|
+
}
|
|
118
|
+
export interface SceneVerifiedImageFactsV1 {
|
|
119
|
+
handle: string;
|
|
120
|
+
mimeType: "image/png" | "image/jpeg" | "image/webp";
|
|
121
|
+
byteLength: number;
|
|
122
|
+
width: number;
|
|
123
|
+
height: number;
|
|
124
|
+
decodedSha256: string;
|
|
125
|
+
}
|
|
126
|
+
export interface SceneVerifiedVideoFactsV1 {
|
|
127
|
+
handle: string;
|
|
128
|
+
mimeType: "video/mp4" | "video/webm";
|
|
129
|
+
byteLength: number;
|
|
130
|
+
width: number;
|
|
131
|
+
height: number;
|
|
132
|
+
encodedSha256: string;
|
|
133
|
+
presentationIndex: SceneVerifiedPresentationIndexV1;
|
|
134
|
+
}
|
|
135
|
+
export interface ScenePreparedSurfaceBaseV1 {
|
|
136
|
+
path: string;
|
|
137
|
+
authoredObjectId: string;
|
|
138
|
+
slot: string;
|
|
139
|
+
binding: SceneSurfaceBindingV2;
|
|
140
|
+
descriptor: SceneBuilderSlotDescriptorV1;
|
|
141
|
+
bakeScale?: 2 | 3;
|
|
142
|
+
bakeScaleReason?: "declared" | "default-sufficient" | "raised-by-resolution-check";
|
|
143
|
+
resolutionCheck?: SceneBakeScaleSelection;
|
|
144
|
+
}
|
|
145
|
+
export interface SceneSealedSurfaceV1 extends ScenePreparedSurfaceBaseV1 {
|
|
146
|
+
realized: {
|
|
147
|
+
source: "color";
|
|
148
|
+
color: string;
|
|
149
|
+
} | {
|
|
150
|
+
source: "image";
|
|
151
|
+
image: SceneVerifiedImageFactsV1;
|
|
152
|
+
} | {
|
|
153
|
+
source: "video";
|
|
154
|
+
video: SceneVerifiedVideoFactsV1;
|
|
155
|
+
schedule: SceneSealedVideoScheduleV1;
|
|
156
|
+
} | {
|
|
157
|
+
source: "component";
|
|
158
|
+
captureIdentitySha256: string;
|
|
159
|
+
captureIdentityFacts: SceneCaptureIdentityFactsV1;
|
|
160
|
+
image: SceneVerifiedImageFactsV1 & {
|
|
161
|
+
mimeType: "image/png";
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
export interface ScenePlanAllocationLedgerV1 {
|
|
166
|
+
owner: string;
|
|
167
|
+
invariant: "one-plan-one-webgl-context";
|
|
168
|
+
allocations: readonly SceneBuilderAllocationDescriptorV1[];
|
|
169
|
+
byOwner: Readonly<Record<string, {
|
|
170
|
+
contextGlBytes: number;
|
|
171
|
+
preparationGlBytes: number;
|
|
172
|
+
cpuBytes: number;
|
|
173
|
+
}>>;
|
|
174
|
+
surfaceTextureBytes: number;
|
|
175
|
+
contextGlBytes: number;
|
|
176
|
+
preparationPeakGlBytes: number;
|
|
177
|
+
cpuBytes: number;
|
|
178
|
+
peakDeclaredLiveBytes: number;
|
|
179
|
+
budgetTriangles: number;
|
|
180
|
+
instantiatedTriangles: number;
|
|
181
|
+
exclusions: {
|
|
182
|
+
crossContextAndHostAggregation: "W7";
|
|
183
|
+
videoDecode: "W6" | "binding-owned";
|
|
184
|
+
browserProcess: "host-owned";
|
|
185
|
+
sourceBundles: "host-owned";
|
|
186
|
+
captureSession: "provider-owned";
|
|
187
|
+
driverAllocations: "excluded-unmeasured";
|
|
188
|
+
compositorSurfaces: "excluded-unmeasured";
|
|
189
|
+
decoderCaches: "excluded-unmeasured";
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
export interface SealedSceneShotPlanV1 {
|
|
193
|
+
version: 1;
|
|
194
|
+
status: "sealed";
|
|
195
|
+
sealSha256: string;
|
|
196
|
+
scene: SceneShotSpecV2;
|
|
197
|
+
output: ScenePlanOutputV1;
|
|
198
|
+
cameraIdentity: {
|
|
199
|
+
position: readonly [number, number, number];
|
|
200
|
+
fov: number;
|
|
201
|
+
near: number;
|
|
202
|
+
far: number;
|
|
203
|
+
};
|
|
204
|
+
motion: {
|
|
205
|
+
channels: SceneChannelV2[];
|
|
206
|
+
contentDurationInFrames: number;
|
|
207
|
+
finalContentFrame: number;
|
|
208
|
+
cameraClipPlanes: readonly {
|
|
209
|
+
near: number;
|
|
210
|
+
far: number;
|
|
211
|
+
}[];
|
|
212
|
+
};
|
|
213
|
+
objects: ScenePreparedObjectV1[];
|
|
214
|
+
surfaces: SceneSealedSurfaceV1[];
|
|
215
|
+
separation: SceneSeparationResultV2;
|
|
216
|
+
rigIdentity: ScenePreparedJson;
|
|
217
|
+
rigAllocations: readonly SceneBuilderAllocationDescriptorV1[];
|
|
218
|
+
fonts: readonly ScenePreparedFontFaceV1[];
|
|
219
|
+
ledger: ScenePlanAllocationLedgerV1;
|
|
220
|
+
}
|
|
221
|
+
export declare class ScenePreparedPlanRefusal extends Error {
|
|
222
|
+
readonly path: string;
|
|
223
|
+
constructor(path: string, message: string);
|
|
224
|
+
}
|
|
225
|
+
/** Canonical allocation rows independently checked against the Three constructors by animate. */
|
|
226
|
+
export declare function sceneW5PresetAllocationsV1(object: Extract<SceneObjectV2, {
|
|
227
|
+
kind: 'laptop' | 'phone' | 'page';
|
|
228
|
+
}>): SceneBuilderAllocationDescriptorV1[];
|
|
229
|
+
export declare function sceneW5WorldTextAllocationsV1(object: Extract<SceneObjectV2, {
|
|
230
|
+
kind: 'text';
|
|
231
|
+
space: 'world';
|
|
232
|
+
}>, referenceWidth: number, outputWidth: number): SceneBuilderAllocationDescriptorV1[];
|
|
233
|
+
export declare function sceneW5GeneratedRigAllocationsV1(edge: number, width: number, height: number): SceneBuilderAllocationDescriptorV1[];
|
|
234
|
+
export declare const SCENE_CAPTURE_IDENTITY_FIELDS_V1: readonly ["componentId", "sourceVersionId", "params", "assetBindings", "layoutWidth", "layoutHeight", "bakeScale", "captureFrame", "durationInFrames", "fps", "seed", "brandFacts", "fontFacts", "mediaFacts", "rasterWidth", "rasterHeight", "runtimeIdentity", "dependencyIdentity", "browserProduct", "browserVersion", "browserExecutableSha256", "headless", "rasterAffectingFlags", "os", "arch", "deviceScaleFactor", "colorProfile", "requestedGlBackend", "actualGlBackend", "actualRenderer", "gpuIdentity"];
|
|
235
|
+
/** Canonical portable JSON used for byte-stable plan hashing across Node and browser hosts. */
|
|
236
|
+
export declare function canonicalScenePreparedJsonV1(value: unknown, path?: string): string;
|
|
237
|
+
/** Strict top-level parser for the portable render boundary; nested authored scene uses its public V2 parser. */
|
|
238
|
+
export declare function parseSealedSceneShotPlanV1(value: unknown): SealedSceneShotPlanV1;
|
|
239
|
+
export declare function verifySealedSceneShotPlanV1(value: unknown, sha256: (canonical: string) => Promise<string>): Promise<SealedSceneShotPlanV1>;
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Report §5.6.2 — THE PROJECTED-RESOLUTION CHECK, and amendment A2's bake-scale selection.
|
|
3
|
+
*
|
|
4
|
+
* One rule doing three jobs, which is why it is written out exactly rather than left to a comment:
|
|
5
|
+
* it selects a 3× bake over the 2× default, it raises the refusal that A2 says must replace any
|
|
6
|
+
* silent reduction of quality, and it carries the lifecycle rule that says when it re-runs.
|
|
7
|
+
*
|
|
8
|
+
* Preparation owns selection and sealing. This portable pure module is shared by preparation and
|
|
9
|
+
* the runtime assertion so their projection arithmetic cannot drift:
|
|
10
|
+
*
|
|
11
|
+
* - call `selectSceneBakeScale` once at PREPARATION, over the sealed schedule's complete frame
|
|
12
|
+
* enumeration (`f = 0 … D−1`), not per frame at render time;
|
|
13
|
+
* - write `bakeScale`, `bakeScaleReason`, `rasterWidth/Height` and `resolutionCheck` into the
|
|
14
|
+
* sealed surface (report §5.9's `SealedSurface`), and let the render lane READ them;
|
|
15
|
+
* - keep this module's arithmetic — the render lane may not re-derive a seal, and the seal and
|
|
16
|
+
* the runtime check disagreeing invisibly is the failure this note exists to prevent.
|
|
17
|
+
*
|
|
18
|
+
* **Revalidation.** Sealed against one output size. It re-runs on a change to output width/height,
|
|
19
|
+
* `referenceSize`, any camera channel, any transform on the slot's object or its ancestors, the
|
|
20
|
+
* slot's declared dimensions, `layout`, or `bakeScale`. Capture PIXELS survive a revalidation when
|
|
21
|
+
* the capture identity still matches — the camera is not a capture-identity input, so a camera-only
|
|
22
|
+
* change revalidates this check WITHOUT invalidating the capture (report §2.2, §2.3).
|
|
23
|
+
*/
|
|
24
|
+
import type { SceneCameraV2, SceneTransformV2, SceneVec3 } from './schema.js';
|
|
25
|
+
/**
|
|
26
|
+
* **The bound: at least one source texel per output pixel, on both axes, at every frame.**
|
|
27
|
+
*
|
|
28
|
+
* 1.0 is the magnification boundary itself, so it needs no tuning: below it the renderer is
|
|
29
|
+
* inventing detail, which is the resampled-UI failure the bake exists to avoid. It is a chosen
|
|
30
|
+
* bound placed at a physical boundary, not a measured one.
|
|
31
|
+
*/
|
|
32
|
+
export declare const RESOLUTION_BOUND = 1;
|
|
33
|
+
/** The bake scales first delivery admits. Every preset admits both (report §5.6). */
|
|
34
|
+
export declare const ALLOWED_BAKE_SCALES: readonly (2 | 3)[];
|
|
35
|
+
/** Amendment A2: the default is 2× declared layout pixels. */
|
|
36
|
+
export declare const DEFAULT_BAKE_SCALE: 2;
|
|
37
|
+
/** Production camera depth policy shared by preparation and the Three camera adapter. */
|
|
38
|
+
export declare function sceneCameraPlanesV2(referenceHeight: number, fov: number, scale: number): {
|
|
39
|
+
near: number;
|
|
40
|
+
far: number;
|
|
41
|
+
};
|
|
42
|
+
export type SceneBakeScale = 2 | 3;
|
|
43
|
+
export type SceneResolutionRefusalCode = 'scene_surface_resolution_insufficient' | 'scene_surface_behind_eye';
|
|
44
|
+
/**
|
|
45
|
+
* A typed refusal carrying its path and everything a corrective needs.
|
|
46
|
+
*
|
|
47
|
+
* A corrective may only name a bake scale the CONTRACT allows. §4.5 records the version of this
|
|
48
|
+
* helper that suggested an unauthorable "1×"; the rule that replaced it is why `neededScale` is
|
|
49
|
+
* drawn from `ALLOWED_BAKE_SCALES` and is `null` rather than invented when none reaches the bound.
|
|
50
|
+
*/
|
|
51
|
+
export declare class SceneResolutionRefusal extends Error {
|
|
52
|
+
readonly code: SceneResolutionRefusalCode;
|
|
53
|
+
readonly path: string;
|
|
54
|
+
readonly detail: Record<string, unknown>;
|
|
55
|
+
constructor(code: SceneResolutionRefusalCode, message: string, path: string, detail: Record<string, unknown>);
|
|
56
|
+
}
|
|
57
|
+
/** The slot rectangle's own declared size, in reference px (report §5.6's descriptor). */
|
|
58
|
+
export interface SceneSlotRect {
|
|
59
|
+
width: number;
|
|
60
|
+
height: number;
|
|
61
|
+
}
|
|
62
|
+
/** One evaluated frame's pose: the camera, and the transform chain OUTERMOST FIRST. */
|
|
63
|
+
export interface SceneEvaluatedPose {
|
|
64
|
+
camera: SceneCameraV2;
|
|
65
|
+
chain: readonly SceneTransformV2[];
|
|
66
|
+
/** Builder-resolved tl,tr,br,bl attachment quad; required by authoritative preparation. */
|
|
67
|
+
projectionQuad?: readonly [SceneVec3, SceneVec3, SceneVec3, SceneVec3];
|
|
68
|
+
}
|
|
69
|
+
export interface SceneOutputSize {
|
|
70
|
+
width: number;
|
|
71
|
+
height: number;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* One world point projected to OUTPUT pixels through the §5.3 camera; `null` at or behind the eye.
|
|
75
|
+
*
|
|
76
|
+
* The camera's rotation is orthonormal, so its inverse is the transpose applied to `world − eye`.
|
|
77
|
+
*/
|
|
78
|
+
export declare function projectToOutputPixels(world: readonly [number, number, number], camera: SceneCameraV2, output: SceneOutputSize, scale: number): [number, number] | null;
|
|
79
|
+
export type ProjectedSlotEdges = {
|
|
80
|
+
behindEye: true;
|
|
81
|
+
corner: 'tl' | 'tr' | 'br' | 'bl';
|
|
82
|
+
} | {
|
|
83
|
+
behindEye: false;
|
|
84
|
+
widthPx: number;
|
|
85
|
+
heightPx: number;
|
|
86
|
+
corners: Record<'tl' | 'tr' | 'br' | 'bl', [number, number]>;
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* The projected U and V EDGE LENGTHS of a slot rectangle, in output pixels, at one frame.
|
|
90
|
+
*
|
|
91
|
+
* **Edges, not areas.** An area ratio hides a one-axis stretch entirely, and a one-axis stretch is
|
|
92
|
+
* exactly what resamples a capture. Each axis is taken as the MEAN of the two opposite edges of the
|
|
93
|
+
* projected quad: exact under an affine projection and the correct first-order value under
|
|
94
|
+
* perspective. The shorter edge alone would over-refuse a strongly foreshortened slot and the
|
|
95
|
+
* longer alone would under-refuse it.
|
|
96
|
+
*/
|
|
97
|
+
export declare function projectedSlotEdges({ slot, chain, camera, output, referenceSize, projectionQuad, path, frame }: {
|
|
98
|
+
slot: SceneSlotRect;
|
|
99
|
+
chain: readonly SceneTransformV2[];
|
|
100
|
+
camera: SceneCameraV2;
|
|
101
|
+
output: SceneOutputSize;
|
|
102
|
+
referenceSize: SceneOutputSize;
|
|
103
|
+
projectionQuad?: readonly [SceneVec3, SceneVec3, SceneVec3, SceneVec3];
|
|
104
|
+
path?: string;
|
|
105
|
+
frame?: number;
|
|
106
|
+
}): ProjectedSlotEdges;
|
|
107
|
+
export interface SceneResolutionCheckArgs {
|
|
108
|
+
/** The authored layer id, for the refusal path. */
|
|
109
|
+
surfaceId: string;
|
|
110
|
+
/** The slot's friendly name, for the refusal path. */
|
|
111
|
+
slotName: string;
|
|
112
|
+
slot: SceneSlotRect;
|
|
113
|
+
/** The component's DECLARED layout, in layout px. `raster = layout · bakeScale`. */
|
|
114
|
+
layout: {
|
|
115
|
+
width: number;
|
|
116
|
+
height: number;
|
|
117
|
+
};
|
|
118
|
+
/** D: the content frame count of the sealed schedule. The enumeration is complete, not sampled. */
|
|
119
|
+
contentDuration: number;
|
|
120
|
+
output: SceneOutputSize;
|
|
121
|
+
referenceSize: SceneOutputSize;
|
|
122
|
+
/** The evaluated pose at content frame `f`. */
|
|
123
|
+
evaluate: (frame: number) => SceneEvaluatedPose;
|
|
124
|
+
}
|
|
125
|
+
export interface SceneResolutionWorst {
|
|
126
|
+
frame: number;
|
|
127
|
+
densityU: number;
|
|
128
|
+
densityV: number;
|
|
129
|
+
axis: 'U' | 'V';
|
|
130
|
+
widthPx: number;
|
|
131
|
+
heightPx: number;
|
|
132
|
+
}
|
|
133
|
+
export interface SceneResolutionResult {
|
|
134
|
+
raster: {
|
|
135
|
+
width: number;
|
|
136
|
+
height: number;
|
|
137
|
+
};
|
|
138
|
+
bakeScale: SceneBakeScale;
|
|
139
|
+
worstDensity: number;
|
|
140
|
+
worstAt: SceneResolutionWorst;
|
|
141
|
+
meetsBound: boolean;
|
|
142
|
+
bound: number;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* The metric, over every content frame of the sealed schedule.
|
|
146
|
+
*
|
|
147
|
+
* ```
|
|
148
|
+
* densityU(f) = rasterWidth / projectedSlotWidthPx(f)
|
|
149
|
+
* densityV(f) = rasterHeight / projectedSlotHeightPx(f)
|
|
150
|
+
* density(f) = min(densityU(f), densityV(f)) <- the WORSE axis governs
|
|
151
|
+
* worst = min over f in [0, D−1] of density(f)
|
|
152
|
+
* ```
|
|
153
|
+
*
|
|
154
|
+
* Both axes, because a slot seen edge-on is minified on one and magnified on the other, and it is
|
|
155
|
+
* the magnified axis that resamples the capture. The outgoing transition hold adds no frames: it
|
|
156
|
+
* repeats `D−1`, which is already in the set.
|
|
157
|
+
*/
|
|
158
|
+
export declare function checkSurfaceResolution(args: SceneResolutionCheckArgs & {
|
|
159
|
+
bakeScale: SceneBakeScale;
|
|
160
|
+
}): SceneResolutionResult;
|
|
161
|
+
export interface SceneBakeScaleSelection {
|
|
162
|
+
selected: SceneBakeScale;
|
|
163
|
+
/** Report §5.9's `bakeScaleReason`, so the seal records WHY and a consumer can verify it. */
|
|
164
|
+
reason: 'declared' | 'default-sufficient' | 'raised-by-resolution-check';
|
|
165
|
+
results: Record<SceneBakeScale, SceneResolutionResult>;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* **Selection (amendment A2, adopted).** The SMALLEST allowed scale meeting the bound, starting at
|
|
169
|
+
* the 2× default. An explicitly declared scale that meets the bound is honoured; one that does not
|
|
170
|
+
* is a REFUSAL — the author's declaration is never silently raised, and quality is never silently
|
|
171
|
+
* reduced and never bought by disabling anti-aliasing.
|
|
172
|
+
*
|
|
173
|
+
* Both of A2's qualifications are part of the record and neither is contradicted here: the spike's
|
|
174
|
+
* 2.5 % glyph-edge difference and I0's 0.29 % bar-edge difference between 2× and 3× do **not**
|
|
175
|
+
* prove invisibility, and "twelve faces" is not a guaranteed capacity because materials and other
|
|
176
|
+
* allocations share the 256 MiB budget.
|
|
177
|
+
*/
|
|
178
|
+
export declare function selectSceneBakeScale(args: SceneResolutionCheckArgs, declared?: SceneBakeScale): SceneBakeScaleSelection;
|