@flighthq/effects 0.3.0-next.906.07cea63 → 0.3.0
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/bevelEffect.d.ts +3 -1
- package/dist/bevelEffect.d.ts.map +1 -1
- package/dist/bevelEffect.js +12 -0
- package/dist/bevelEffect.js.map +1 -1
- package/dist/blendModeMath.d.ts.map +1 -1
- package/dist/blendModeMath.js +4 -0
- package/dist/blendModeMath.js.map +1 -1
- package/dist/bloomEffect.d.ts +3 -1
- package/dist/bloomEffect.d.ts.map +1 -1
- package/dist/bloomEffect.js +11 -0
- package/dist/bloomEffect.js.map +1 -1
- package/dist/blurEffect.d.ts +3 -1
- package/dist/blurEffect.d.ts.map +1 -1
- package/dist/blurEffect.js +10 -0
- package/dist/blurEffect.js.map +1 -1
- package/dist/bokehDepthOfFieldEffect.d.ts +3 -1
- package/dist/bokehDepthOfFieldEffect.d.ts.map +1 -1
- package/dist/bokehDepthOfFieldEffect.js +11 -0
- package/dist/bokehDepthOfFieldEffect.js.map +1 -1
- package/dist/contactShadowsEffect.d.ts +3 -1
- package/dist/contactShadowsEffect.d.ts.map +1 -1
- package/dist/contactShadowsEffect.js +11 -0
- package/dist/contactShadowsEffect.js.map +1 -1
- package/dist/contract.d.ts +1 -0
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +1 -0
- package/dist/contract.js.map +1 -1
- package/dist/convolutionEffect.d.ts +3 -1
- package/dist/convolutionEffect.d.ts.map +1 -1
- package/dist/convolutionEffect.js +17 -0
- package/dist/convolutionEffect.js.map +1 -1
- package/dist/directionalBlurEffect.d.ts +3 -1
- package/dist/directionalBlurEffect.d.ts.map +1 -1
- package/dist/directionalBlurEffect.js +16 -0
- package/dist/directionalBlurEffect.js.map +1 -1
- package/dist/displacementEffect.d.ts +3 -1
- package/dist/displacementEffect.d.ts.map +1 -1
- package/dist/displacementEffect.js +13 -0
- package/dist/displacementEffect.js.map +1 -1
- package/dist/dropShadowEffect.d.ts +3 -1
- package/dist/dropShadowEffect.d.ts.map +1 -1
- package/dist/dropShadowEffect.js +12 -0
- package/dist/dropShadowEffect.js.map +1 -1
- package/dist/glitchEffect.d.ts +3 -1
- package/dist/glitchEffect.d.ts.map +1 -1
- package/dist/glitchEffect.js +13 -0
- package/dist/glitchEffect.js.map +1 -1
- package/dist/gradientBevelEffect.d.ts +3 -1
- package/dist/gradientBevelEffect.d.ts.map +1 -1
- package/dist/gradientBevelEffect.js +12 -0
- package/dist/gradientBevelEffect.js.map +1 -1
- package/dist/gradientGlowEffect.d.ts +3 -1
- package/dist/gradientGlowEffect.d.ts.map +1 -1
- package/dist/gradientGlowEffect.js +10 -0
- package/dist/gradientGlowEffect.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/innerGlowEffect.d.ts +3 -1
- package/dist/innerGlowEffect.d.ts.map +1 -1
- package/dist/innerGlowEffect.js +10 -0
- package/dist/innerGlowEffect.js.map +1 -1
- package/dist/innerShadowEffect.d.ts +3 -1
- package/dist/innerShadowEffect.d.ts.map +1 -1
- package/dist/innerShadowEffect.js +12 -0
- package/dist/innerShadowEffect.js.map +1 -1
- package/dist/medianEffect.d.ts +3 -1
- package/dist/medianEffect.d.ts.map +1 -1
- package/dist/medianEffect.js +11 -0
- package/dist/medianEffect.js.map +1 -1
- package/dist/outerGlowEffect.d.ts +3 -1
- package/dist/outerGlowEffect.d.ts.map +1 -1
- package/dist/outerGlowEffect.js +10 -0
- package/dist/outerGlowEffect.js.map +1 -1
- package/dist/outlineEffect.d.ts +3 -1
- package/dist/outlineEffect.d.ts.map +1 -1
- package/dist/outlineEffect.js +11 -0
- package/dist/outlineEffect.js.map +1 -1
- package/dist/renderEffectPadding.d.ts +7 -0
- package/dist/renderEffectPadding.d.ts.map +1 -0
- package/dist/renderEffectPadding.js +70 -0
- package/dist/renderEffectPadding.js.map +1 -0
- package/dist/tiltShiftEffect.d.ts +3 -1
- package/dist/tiltShiftEffect.d.ts.map +1 -1
- package/dist/tiltShiftEffect.js +11 -0
- package/dist/tiltShiftEffect.js.map +1 -1
- package/package.json +6 -2
- package/src/bevelEffect.test.ts +24 -1
- package/src/blendModeMath.test.ts +15 -0
- package/src/bloomEffect.test.ts +31 -1
- package/src/blurEffect.test.ts +26 -1
- package/src/bokehDepthOfFieldEffect.test.ts +28 -1
- package/src/contactShadowsEffect.test.ts +28 -1
- package/src/convolutionEffect.test.ts +28 -1
- package/src/directionalBlurEffect.test.ts +28 -1
- package/src/displacementEffect.test.ts +28 -1
- package/src/dropShadowEffect.test.ts +28 -1
- package/src/glitchEffect.test.ts +24 -1
- package/src/gradientBevelEffect.test.ts +32 -1
- package/src/gradientGlowEffect.test.ts +27 -1
- package/src/innerGlowEffect.test.ts +28 -1
- package/src/innerShadowEffect.test.ts +30 -1
- package/src/medianEffect.test.ts +24 -1
- package/src/outerGlowEffect.test.ts +28 -1
- package/src/outlineEffect.test.ts +24 -1
- package/src/renderEffectPadding.test.ts +114 -0
- package/src/tiltShiftEffect.test.ts +28 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { blendNonSeparableRgb, canLerpRenderEffects, computeAcesToneMap, computeAgxToneMap, computeBloomBlurRadius, computeBloomIntensity, computeBloomThreshold, computeBoxBlurPassRadius, computeBoxBlurRadius, computeColorTemperatureRgb, computeCrtMaskParams, computeDepthOfFieldCoc, computeExposureScale, computeFilmicToneMap, computeGaussianKernelWeights, computeGaussianRadiusFromSigma, computeGaussianSigmaForBlurRadius, computeGaussianSigmaFromRadius, computeGodRaysAccumulationScale, computeGodRaysLightCenter, computeGodRaysSampleWeight, computeGodRaysStepSize, computeHalftoneCellParams, computeKuwaharaGaussianWeights, computeKuwaharaSectorOffsets, computeKuwaharaSectorPixelCount, computeKuwaharaSectorSize, computeLinearDepthFromNonlinear, computeLinearSampledGaussian, computeOutlineEdgeParams, computeOutlineThicknessPx, computeReinhardExtendedToneMap, computeReinhardToneMap, computeScanlineParams, computeSeparableBlurPassCount, computeSketchEdgeParams, computeSsaoSampleKernel, computeUncharted2ToneMap, computeWhiteBalanceMultipliers, createAutoExposureEffect, createBarrelDistortionEffect, createBayerMatrix, createBevelEffect, createBlendEffect, createBloomEffect, createBlurEffect, createBokehDepthOfFieldEffect, createCameraMotionBlurEffect, createChromaticAberrationEffect, createCompositeEffect, createContactShadowsEffect, createConvolutionEffect, createCrtEffect, createCustomShaderEffect, createDirectionalBlurEffect, createDisplacementEffect, createDitherEffect, createDropShadowEffect, createFilmEmulationEffect, createFilmGrainEffect, createFxaaEffect, createGaussianKernelWeights, createGlitchEffect, createGodRaysEffect, createGradientBevelEffect, createGradientGlowEffect, createHalftoneEffect, createInnerGlowEffect, createInnerShadowEffect, createKuwaharaEffect, createLensDirtEffect, createLensDistortionEffect, createLensFlareEffect, createMedianEffect, createMotionBlurEffect, createOuterGlowEffect, createOutlineEffect, createPanniniProjectionEffect, createPixelateEffect, createPosterizeEffect, createRadialBlurEffect, createScanlinesEffect, createScreenSpaceFogEffect, createSharpenEffect, createSketchEffect, createSmaaEffect, createSsaoEffect, createSsrEffect, createTaaEffect, createTiltShiftEffect, createToneMapEffect, createVignetteEffect, createVolumetricLightEffect, createWhiteBalanceEffect, getAcesInputMatrix, getAcesOutputMatrix, getAdvancedBlendRgb, getBlurDownsampleLevel, getBlurResidualSigma, getCompositeOperatorFactors, getGaussianKernelSize, getLinearSampledGaussianTapCount, getRenderEffectDefaults, getRenderEffectInputs, getRenderEffectKinds, getSeparableBlendChannel, getSobelKernelCoefficients, isNonSeparableBlendMode, lerpRenderEffect, normalizeRenderEffect, validateRenderEffectList, } from './contract';
|
|
1
|
+
export { blendNonSeparableRgb, canLerpRenderEffects, computeRenderEffectPadding, computeAcesToneMap, computeAgxToneMap, computeBloomBlurRadius, computeBloomIntensity, computeBloomThreshold, computeBoxBlurPassRadius, computeBoxBlurRadius, computeColorTemperatureRgb, computeCrtMaskParams, computeDepthOfFieldCoc, computeExposureScale, computeFilmicToneMap, computeGaussianKernelWeights, computeGaussianRadiusFromSigma, computeGaussianSigmaForBlurRadius, computeGaussianSigmaFromRadius, computeGodRaysAccumulationScale, computeGodRaysLightCenter, computeGodRaysSampleWeight, computeGodRaysStepSize, computeHalftoneCellParams, computeKuwaharaGaussianWeights, computeKuwaharaSectorOffsets, computeKuwaharaSectorPixelCount, computeKuwaharaSectorSize, computeLinearDepthFromNonlinear, computeLinearSampledGaussian, computeOutlineEdgeParams, computeOutlineThicknessPx, computeReinhardExtendedToneMap, computeReinhardToneMap, computeScanlineParams, computeSeparableBlurPassCount, computeSketchEdgeParams, computeSsaoSampleKernel, computeUncharted2ToneMap, computeWhiteBalanceMultipliers, createAutoExposureEffect, createBarrelDistortionEffect, createBayerMatrix, createBevelEffect, createBlendEffect, createBloomEffect, createBlurEffect, createBokehDepthOfFieldEffect, createCameraMotionBlurEffect, createChromaticAberrationEffect, createCompositeEffect, createContactShadowsEffect, createConvolutionEffect, createCrtEffect, createCustomShaderEffect, createDirectionalBlurEffect, createDisplacementEffect, createDitherEffect, createDropShadowEffect, createFilmEmulationEffect, createFilmGrainEffect, createFxaaEffect, createGaussianKernelWeights, createGlitchEffect, createGodRaysEffect, createGradientBevelEffect, createGradientGlowEffect, createHalftoneEffect, createInnerGlowEffect, createInnerShadowEffect, createKuwaharaEffect, createLensDirtEffect, createLensDistortionEffect, createLensFlareEffect, createMedianEffect, createMotionBlurEffect, createOuterGlowEffect, createOutlineEffect, createPanniniProjectionEffect, createPixelateEffect, createPosterizeEffect, createRadialBlurEffect, createScanlinesEffect, createScreenSpaceFogEffect, createSharpenEffect, createSketchEffect, createSmaaEffect, createSsaoEffect, createSsrEffect, createTaaEffect, createTiltShiftEffect, createToneMapEffect, createVignetteEffect, createVolumetricLightEffect, createWhiteBalanceEffect, explainRenderEffectPadding, getAcesInputMatrix, getAcesOutputMatrix, getAdvancedBlendRgb, getBevelEffectPadding, getBloomEffectPadding, getBokehDepthOfFieldEffectPadding, getBlurEffectPadding, getBlurDownsampleLevel, getBlurResidualSigma, getCompositeOperatorFactors, getContactShadowsEffectPadding, getConvolutionEffectPadding, getDirectionalBlurEffectPadding, getDisplacementEffectPadding, getDropShadowEffectPadding, getGaussianKernelSize, getGradientGlowEffectPadding, getGlitchEffectPadding, getGradientBevelEffectPadding, getInnerGlowEffectPadding, getInnerShadowEffectPadding, getLinearSampledGaussianTapCount, getMedianEffectPadding, getOuterGlowEffectPadding, getOutlineEffectPadding, getRenderEffectDefaults, getRenderEffectInputs, getDirectionalRenderEffectPadding, getGaussianRenderEffectPadding, getRenderEffectKinds, getSeparableBlendChannel, getTiltShiftEffectPadding, getSobelKernelCoefficients, isNonSeparableBlendMode, lerpRenderEffect, normalizeRenderEffect, registerBlurEffectPaddingResolver, registerBevelEffectPaddingResolver, registerBloomEffectPaddingResolver, registerBokehDepthOfFieldEffectPaddingResolver, registerContactShadowsEffectPaddingResolver, registerConvolutionEffectPaddingResolver, registerDirectionalBlurEffectPaddingResolver, registerDisplacementEffectPaddingResolver, registerDropShadowEffectPaddingResolver, registerGradientBevelEffectPaddingResolver, registerGradientGlowEffectPaddingResolver, registerGlitchEffectPaddingResolver, registerInnerGlowEffectPaddingResolver, registerInnerShadowEffectPaddingResolver, registerMedianEffectPaddingResolver, registerOuterGlowEffectPaddingResolver, registerOutlineEffectPaddingResolver, registerRenderEffectPaddingResolver, registerTiltShiftEffectPaddingResolver, validateRenderEffectList, } from './contract';
|
|
2
2
|
//# 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,EACL,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,4BAA4B,EAC5B,8BAA8B,EAC9B,iCAAiC,EACjC,8BAA8B,EAC9B,+BAA+B,EAC/B,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,8BAA8B,EAC9B,4BAA4B,EAC5B,+BAA+B,EAC/B,yBAAyB,EACzB,+BAA+B,EAC/B,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,EAC9B,sBAAsB,EACtB,qBAAqB,EACrB,6BAA6B,EAC7B,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,8BAA8B,EAC9B,wBAAwB,EACxB,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,6BAA6B,EAC7B,4BAA4B,EAC5B,+BAA+B,EAC/B,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,eAAe,EACf,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,EAC3B,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,6BAA6B,EAC7B,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,2BAA2B,EAC3B,qBAAqB,EACrB,gCAAgC,EAChC,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,4BAA4B,EAC5B,8BAA8B,EAC9B,iCAAiC,EACjC,8BAA8B,EAC9B,+BAA+B,EAC/B,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,8BAA8B,EAC9B,4BAA4B,EAC5B,+BAA+B,EAC/B,yBAAyB,EACzB,+BAA+B,EAC/B,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,EAC9B,sBAAsB,EACtB,qBAAqB,EACrB,6BAA6B,EAC7B,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,8BAA8B,EAC9B,wBAAwB,EACxB,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,6BAA6B,EAC7B,4BAA4B,EAC5B,+BAA+B,EAC/B,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,eAAe,EACf,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,EAC3B,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,6BAA6B,EAC7B,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,0BAA0B,EAC1B,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,iCAAiC,EACjC,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,2BAA2B,EAC3B,8BAA8B,EAC9B,2BAA2B,EAC3B,+BAA+B,EAC/B,4BAA4B,EAC5B,0BAA0B,EAC1B,qBAAqB,EACrB,4BAA4B,EAC5B,sBAAsB,EACtB,6BAA6B,EAC7B,yBAAyB,EACzB,2BAA2B,EAC3B,gCAAgC,EAChC,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,iCAAiC,EACjC,8BAA8B,EAC9B,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,iCAAiC,EACjC,kCAAkC,EAClC,kCAAkC,EAClC,8CAA8C,EAC9C,2CAA2C,EAC3C,wCAAwC,EACxC,4CAA4C,EAC5C,yCAAyC,EACzC,uCAAuC,EACvC,0CAA0C,EAC1C,yCAAyC,EACzC,mCAAmC,EACnC,sCAAsC,EACtC,wCAAwC,EACxC,mCAAmC,EACnC,sCAAsC,EACtC,oCAAoC,EACpC,mCAAmC,EACnC,sCAAsC,EACtC,wBAAwB,GACzB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { blendNonSeparableRgb, canLerpRenderEffects, computeAcesToneMap, computeAgxToneMap, computeBloomBlurRadius, computeBloomIntensity, computeBloomThreshold, computeBoxBlurPassRadius, computeBoxBlurRadius, computeColorTemperatureRgb, computeCrtMaskParams, computeDepthOfFieldCoc, computeExposureScale, computeFilmicToneMap, computeGaussianKernelWeights, computeGaussianRadiusFromSigma, computeGaussianSigmaForBlurRadius, computeGaussianSigmaFromRadius, computeGodRaysAccumulationScale, computeGodRaysLightCenter, computeGodRaysSampleWeight, computeGodRaysStepSize, computeHalftoneCellParams, computeKuwaharaGaussianWeights, computeKuwaharaSectorOffsets, computeKuwaharaSectorPixelCount, computeKuwaharaSectorSize, computeLinearDepthFromNonlinear, computeLinearSampledGaussian, computeOutlineEdgeParams, computeOutlineThicknessPx, computeReinhardExtendedToneMap, computeReinhardToneMap, computeScanlineParams, computeSeparableBlurPassCount, computeSketchEdgeParams, computeSsaoSampleKernel, computeUncharted2ToneMap, computeWhiteBalanceMultipliers, createAutoExposureEffect, createBarrelDistortionEffect, createBayerMatrix, createBevelEffect, createBlendEffect, createBloomEffect, createBlurEffect, createBokehDepthOfFieldEffect, createCameraMotionBlurEffect, createChromaticAberrationEffect, createCompositeEffect, createContactShadowsEffect, createConvolutionEffect, createCrtEffect, createCustomShaderEffect, createDirectionalBlurEffect, createDisplacementEffect, createDitherEffect, createDropShadowEffect, createFilmEmulationEffect, createFilmGrainEffect, createFxaaEffect, createGaussianKernelWeights, createGlitchEffect, createGodRaysEffect, createGradientBevelEffect, createGradientGlowEffect, createHalftoneEffect, createInnerGlowEffect, createInnerShadowEffect, createKuwaharaEffect, createLensDirtEffect, createLensDistortionEffect, createLensFlareEffect, createMedianEffect, createMotionBlurEffect, createOuterGlowEffect, createOutlineEffect, createPanniniProjectionEffect, createPixelateEffect, createPosterizeEffect, createRadialBlurEffect, createScanlinesEffect, createScreenSpaceFogEffect, createSharpenEffect, createSketchEffect, createSmaaEffect, createSsaoEffect, createSsrEffect, createTaaEffect, createTiltShiftEffect, createToneMapEffect, createVignetteEffect, createVolumetricLightEffect, createWhiteBalanceEffect, getAcesInputMatrix, getAcesOutputMatrix, getAdvancedBlendRgb, getBlurDownsampleLevel, getBlurResidualSigma, getCompositeOperatorFactors, getGaussianKernelSize, getLinearSampledGaussianTapCount, getRenderEffectDefaults, getRenderEffectInputs, getRenderEffectKinds, getSeparableBlendChannel, getSobelKernelCoefficients, isNonSeparableBlendMode, lerpRenderEffect, normalizeRenderEffect, validateRenderEffectList, } from './contract';
|
|
1
|
+
export { blendNonSeparableRgb, canLerpRenderEffects, computeRenderEffectPadding, computeAcesToneMap, computeAgxToneMap, computeBloomBlurRadius, computeBloomIntensity, computeBloomThreshold, computeBoxBlurPassRadius, computeBoxBlurRadius, computeColorTemperatureRgb, computeCrtMaskParams, computeDepthOfFieldCoc, computeExposureScale, computeFilmicToneMap, computeGaussianKernelWeights, computeGaussianRadiusFromSigma, computeGaussianSigmaForBlurRadius, computeGaussianSigmaFromRadius, computeGodRaysAccumulationScale, computeGodRaysLightCenter, computeGodRaysSampleWeight, computeGodRaysStepSize, computeHalftoneCellParams, computeKuwaharaGaussianWeights, computeKuwaharaSectorOffsets, computeKuwaharaSectorPixelCount, computeKuwaharaSectorSize, computeLinearDepthFromNonlinear, computeLinearSampledGaussian, computeOutlineEdgeParams, computeOutlineThicknessPx, computeReinhardExtendedToneMap, computeReinhardToneMap, computeScanlineParams, computeSeparableBlurPassCount, computeSketchEdgeParams, computeSsaoSampleKernel, computeUncharted2ToneMap, computeWhiteBalanceMultipliers, createAutoExposureEffect, createBarrelDistortionEffect, createBayerMatrix, createBevelEffect, createBlendEffect, createBloomEffect, createBlurEffect, createBokehDepthOfFieldEffect, createCameraMotionBlurEffect, createChromaticAberrationEffect, createCompositeEffect, createContactShadowsEffect, createConvolutionEffect, createCrtEffect, createCustomShaderEffect, createDirectionalBlurEffect, createDisplacementEffect, createDitherEffect, createDropShadowEffect, createFilmEmulationEffect, createFilmGrainEffect, createFxaaEffect, createGaussianKernelWeights, createGlitchEffect, createGodRaysEffect, createGradientBevelEffect, createGradientGlowEffect, createHalftoneEffect, createInnerGlowEffect, createInnerShadowEffect, createKuwaharaEffect, createLensDirtEffect, createLensDistortionEffect, createLensFlareEffect, createMedianEffect, createMotionBlurEffect, createOuterGlowEffect, createOutlineEffect, createPanniniProjectionEffect, createPixelateEffect, createPosterizeEffect, createRadialBlurEffect, createScanlinesEffect, createScreenSpaceFogEffect, createSharpenEffect, createSketchEffect, createSmaaEffect, createSsaoEffect, createSsrEffect, createTaaEffect, createTiltShiftEffect, createToneMapEffect, createVignetteEffect, createVolumetricLightEffect, createWhiteBalanceEffect, explainRenderEffectPadding, getAcesInputMatrix, getAcesOutputMatrix, getAdvancedBlendRgb, getBevelEffectPadding, getBloomEffectPadding, getBokehDepthOfFieldEffectPadding, getBlurEffectPadding, getBlurDownsampleLevel, getBlurResidualSigma, getCompositeOperatorFactors, getContactShadowsEffectPadding, getConvolutionEffectPadding, getDirectionalBlurEffectPadding, getDisplacementEffectPadding, getDropShadowEffectPadding, getGaussianKernelSize, getGradientGlowEffectPadding, getGlitchEffectPadding, getGradientBevelEffectPadding, getInnerGlowEffectPadding, getInnerShadowEffectPadding, getLinearSampledGaussianTapCount, getMedianEffectPadding, getOuterGlowEffectPadding, getOutlineEffectPadding, getRenderEffectDefaults, getRenderEffectInputs, getDirectionalRenderEffectPadding, getGaussianRenderEffectPadding, getRenderEffectKinds, getSeparableBlendChannel, getTiltShiftEffectPadding, getSobelKernelCoefficients, isNonSeparableBlendMode, lerpRenderEffect, normalizeRenderEffect, registerBlurEffectPaddingResolver, registerBevelEffectPaddingResolver, registerBloomEffectPaddingResolver, registerBokehDepthOfFieldEffectPaddingResolver, registerContactShadowsEffectPaddingResolver, registerConvolutionEffectPaddingResolver, registerDirectionalBlurEffectPaddingResolver, registerDisplacementEffectPaddingResolver, registerDropShadowEffectPaddingResolver, registerGradientBevelEffectPaddingResolver, registerGradientGlowEffectPaddingResolver, registerGlitchEffectPaddingResolver, registerInnerGlowEffectPaddingResolver, registerInnerShadowEffectPaddingResolver, registerMedianEffectPaddingResolver, registerOuterGlowEffectPaddingResolver, registerOutlineEffectPaddingResolver, registerRenderEffectPaddingResolver, registerTiltShiftEffectPaddingResolver, validateRenderEffectList, } from './contract';
|
|
2
2
|
//# 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,EACL,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,4BAA4B,EAC5B,8BAA8B,EAC9B,iCAAiC,EACjC,8BAA8B,EAC9B,+BAA+B,EAC/B,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,8BAA8B,EAC9B,4BAA4B,EAC5B,+BAA+B,EAC/B,yBAAyB,EACzB,+BAA+B,EAC/B,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,EAC9B,sBAAsB,EACtB,qBAAqB,EACrB,6BAA6B,EAC7B,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,8BAA8B,EAC9B,wBAAwB,EACxB,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,6BAA6B,EAC7B,4BAA4B,EAC5B,+BAA+B,EAC/B,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,eAAe,EACf,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,EAC3B,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,6BAA6B,EAC7B,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,2BAA2B,EAC3B,qBAAqB,EACrB,gCAAgC,EAChC,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,4BAA4B,EAC5B,8BAA8B,EAC9B,iCAAiC,EACjC,8BAA8B,EAC9B,+BAA+B,EAC/B,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,8BAA8B,EAC9B,4BAA4B,EAC5B,+BAA+B,EAC/B,yBAAyB,EACzB,+BAA+B,EAC/B,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,EAC9B,sBAAsB,EACtB,qBAAqB,EACrB,6BAA6B,EAC7B,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,8BAA8B,EAC9B,wBAAwB,EACxB,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,6BAA6B,EAC7B,4BAA4B,EAC5B,+BAA+B,EAC/B,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,eAAe,EACf,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,EAC3B,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,6BAA6B,EAC7B,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,0BAA0B,EAC1B,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,iCAAiC,EACjC,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,2BAA2B,EAC3B,8BAA8B,EAC9B,2BAA2B,EAC3B,+BAA+B,EAC/B,4BAA4B,EAC5B,0BAA0B,EAC1B,qBAAqB,EACrB,4BAA4B,EAC5B,sBAAsB,EACtB,6BAA6B,EAC7B,yBAAyB,EACzB,2BAA2B,EAC3B,gCAAgC,EAChC,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,iCAAiC,EACjC,8BAA8B,EAC9B,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,iCAAiC,EACjC,kCAAkC,EAClC,kCAAkC,EAClC,8CAA8C,EAC9C,2CAA2C,EAC3C,wCAAwC,EACxC,4CAA4C,EAC5C,yCAAyC,EACzC,uCAAuC,EACvC,0CAA0C,EAC1C,yCAAyC,EACzC,mCAAmC,EACnC,sCAAsC,EACtC,wCAAwC,EACxC,mCAAmC,EACnC,sCAAsC,EACtC,oCAAoC,EACpC,mCAAmC,EACnC,sCAAsC,EACtC,wBAAwB,GACzB,MAAM,YAAY,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import type { InnerGlowEffect } from '@flighthq/types/contract';
|
|
1
|
+
import type { InnerGlowEffect, RenderEffectPadding, RenderState } from '@flighthq/types/contract';
|
|
2
2
|
export declare function createInnerGlowEffect(options?: Readonly<Omit<InnerGlowEffect, 'kind'>>): InnerGlowEffect;
|
|
3
|
+
export declare function getInnerGlowEffectPadding(effect: Readonly<InnerGlowEffect>): RenderEffectPadding;
|
|
4
|
+
export declare function registerInnerGlowEffectPaddingResolver(state: RenderState): void;
|
|
3
5
|
//# sourceMappingURL=innerGlowEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"innerGlowEffect.d.ts","sourceRoot":"","sources":["../src/innerGlowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"innerGlowEffect.d.ts","sourceRoot":"","sources":["../src/innerGlowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgB,mBAAmB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAKhH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAM,GAAG,eAAe,CAE5G;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,mBAAmB,CAEhG;AAED,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAE/E"}
|
package/dist/innerGlowEffect.js
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
|
+
import { getGaussianRenderEffectPadding, registerRenderEffectPaddingResolver } from './renderEffectPadding';
|
|
1
2
|
// Inner-glow composite effect: tint the inverted silhouette, blur inward, clip to the source alpha, then draw or hide the source.
|
|
2
3
|
export function createInnerGlowEffect(options = {}) {
|
|
3
4
|
return { kind: 'InnerGlowEffect', ...options };
|
|
4
5
|
}
|
|
6
|
+
export function getInnerGlowEffectPadding(effect) {
|
|
7
|
+
return getGaussianRenderEffectPadding(effect.blurX ?? 6, effect.blurY ?? 6);
|
|
8
|
+
}
|
|
9
|
+
export function registerInnerGlowEffectPaddingResolver(state) {
|
|
10
|
+
registerRenderEffectPaddingResolver(state, 'InnerGlowEffect', resolveInnerGlowEffectPadding);
|
|
11
|
+
}
|
|
12
|
+
function resolveInnerGlowEffectPadding(effect) {
|
|
13
|
+
return getInnerGlowEffectPadding(effect);
|
|
14
|
+
}
|
|
5
15
|
//# sourceMappingURL=innerGlowEffect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"innerGlowEffect.js","sourceRoot":"","sources":["../src/innerGlowEffect.ts"],"names":[],"mappings":"AAEA,kIAAkI;AAClI,MAAM,UAAU,qBAAqB,CAAC,UAAmD,EAAE;IACzF,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,OAAO,EAAE,CAAC;AACjD,CAAC"}
|
|
1
|
+
{"version":3,"file":"innerGlowEffect.js","sourceRoot":"","sources":["../src/innerGlowEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,8BAA8B,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAE5G,kIAAkI;AAClI,MAAM,UAAU,qBAAqB,CAAC,UAAmD,EAAE;IACzF,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,OAAO,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAiC;IACzE,OAAO,8BAA8B,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,sCAAsC,CAAC,KAAkB;IACvE,mCAAmC,CAAC,KAAK,EAAE,iBAAiB,EAAE,6BAA6B,CAAC,CAAC;AAC/F,CAAC;AAED,SAAS,6BAA6B,CAAC,MAA8B;IACnE,OAAO,yBAAyB,CAAC,MAAmC,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import type { InnerShadowEffect } from '@flighthq/types/contract';
|
|
1
|
+
import type { InnerShadowEffect, RenderEffectPadding, RenderState } from '@flighthq/types/contract';
|
|
2
2
|
export declare function createInnerShadowEffect(options?: Readonly<Omit<InnerShadowEffect, 'kind'>>): InnerShadowEffect;
|
|
3
|
+
export declare function getInnerShadowEffectPadding(effect: Readonly<InnerShadowEffect>): RenderEffectPadding;
|
|
4
|
+
export declare function registerInnerShadowEffectPaddingResolver(state: RenderState): void;
|
|
3
5
|
//# sourceMappingURL=innerShadowEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"innerShadowEffect.d.ts","sourceRoot":"","sources":["../src/innerShadowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"innerShadowEffect.d.ts","sourceRoot":"","sources":["../src/innerShadowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAgB,mBAAmB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAKlH,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAM,GAAG,iBAAiB,CAElH;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CASpG;AAED,wBAAgB,wCAAwC,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAEjF"}
|
|
@@ -1,5 +1,17 @@
|
|
|
1
|
+
import { getDirectionalRenderEffectPadding, registerRenderEffectPaddingResolver } from './renderEffectPadding';
|
|
1
2
|
// Inner-shadow composite effect: tint the inverted silhouette, blur, offset by angle/distance, clip to the source alpha, then draw or hide the source.
|
|
2
3
|
export function createInnerShadowEffect(options = {}) {
|
|
3
4
|
return { kind: 'InnerShadowEffect', ...options };
|
|
4
5
|
}
|
|
6
|
+
export function getInnerShadowEffectPadding(effect) {
|
|
7
|
+
const angle = ((effect.angle ?? 45) * Math.PI) / 180;
|
|
8
|
+
const distance = effect.distance ?? 4;
|
|
9
|
+
return getDirectionalRenderEffectPadding(effect.blurX ?? 4, effect.blurY ?? 4, Math.cos(angle) * distance, Math.sin(angle) * distance);
|
|
10
|
+
}
|
|
11
|
+
export function registerInnerShadowEffectPaddingResolver(state) {
|
|
12
|
+
registerRenderEffectPaddingResolver(state, 'InnerShadowEffect', resolveInnerShadowEffectPadding);
|
|
13
|
+
}
|
|
14
|
+
function resolveInnerShadowEffectPadding(effect) {
|
|
15
|
+
return getInnerShadowEffectPadding(effect);
|
|
16
|
+
}
|
|
5
17
|
//# sourceMappingURL=innerShadowEffect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"innerShadowEffect.js","sourceRoot":"","sources":["../src/innerShadowEffect.ts"],"names":[],"mappings":"AAEA,uJAAuJ;AACvJ,MAAM,UAAU,uBAAuB,CAAC,UAAqD,EAAE;IAC7F,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,OAAO,EAAE,CAAC;AACnD,CAAC"}
|
|
1
|
+
{"version":3,"file":"innerShadowEffect.js","sourceRoot":"","sources":["../src/innerShadowEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iCAAiC,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAE/G,uJAAuJ;AACvJ,MAAM,UAAU,uBAAuB,CAAC,UAAqD,EAAE;IAC7F,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,OAAO,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAAmC;IAC7E,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,OAAO,iCAAiC,CACtC,MAAM,CAAC,KAAK,IAAI,CAAC,EACjB,MAAM,CAAC,KAAK,IAAI,CAAC,EACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,EAC1B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wCAAwC,CAAC,KAAkB;IACzE,mCAAmC,CAAC,KAAK,EAAE,mBAAmB,EAAE,+BAA+B,CAAC,CAAC;AACnG,CAAC;AAED,SAAS,+BAA+B,CAAC,MAA8B;IACrE,OAAO,2BAA2B,CAAC,MAAqC,CAAC,CAAC;AAC5E,CAAC"}
|
package/dist/medianEffect.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import type { MedianEffect } from '@flighthq/types/contract';
|
|
1
|
+
import type { MedianEffect, RenderEffectPadding, RenderState } from '@flighthq/types/contract';
|
|
2
2
|
export declare function createMedianEffect(options?: Readonly<Omit<MedianEffect, 'kind'>>): MedianEffect;
|
|
3
|
+
export declare function getMedianEffectPadding(effect: Readonly<MedianEffect>): RenderEffectPadding;
|
|
4
|
+
export declare function registerMedianEffectPaddingResolver(state: RenderState): void;
|
|
3
5
|
//# sourceMappingURL=medianEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"medianEffect.d.ts","sourceRoot":"","sources":["../src/medianEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"medianEffect.d.ts","sourceRoot":"","sources":["../src/medianEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAgB,mBAAmB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAI7G,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAM,GAAG,YAAY,CAEnG;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,mBAAmB,CAG1F;AAED,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAE5E"}
|
package/dist/medianEffect.js
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
|
+
import { registerRenderEffectPaddingResolver } from './renderEffectPadding';
|
|
1
2
|
export function createMedianEffect(options = {}) {
|
|
2
3
|
return { kind: 'MedianEffect', ...options };
|
|
3
4
|
}
|
|
5
|
+
export function getMedianEffectPadding(effect) {
|
|
6
|
+
const radius = Math.max(0, Math.round(effect.radius ?? 1));
|
|
7
|
+
return { bottom: radius, left: radius, right: radius, top: radius };
|
|
8
|
+
}
|
|
9
|
+
export function registerMedianEffectPaddingResolver(state) {
|
|
10
|
+
registerRenderEffectPaddingResolver(state, 'MedianEffect', resolveMedianEffectPadding);
|
|
11
|
+
}
|
|
12
|
+
function resolveMedianEffectPadding(effect) {
|
|
13
|
+
return getMedianEffectPadding(effect);
|
|
14
|
+
}
|
|
4
15
|
//# sourceMappingURL=medianEffect.js.map
|
package/dist/medianEffect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"medianEffect.js","sourceRoot":"","sources":["../src/medianEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,UAAgD,EAAE;IACnF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC;AAC9C,CAAC"}
|
|
1
|
+
{"version":3,"file":"medianEffect.js","sourceRoot":"","sources":["../src/medianEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAE5E,MAAM,UAAU,kBAAkB,CAAC,UAAgD,EAAE;IACnF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAA8B;IACnE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,KAAkB;IACpE,mCAAmC,CAAC,KAAK,EAAE,cAAc,EAAE,0BAA0B,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,0BAA0B,CAAC,MAA8B;IAChE,OAAO,sBAAsB,CAAC,MAAgC,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import type { OuterGlowEffect } from '@flighthq/types/contract';
|
|
1
|
+
import type { OuterGlowEffect, RenderEffectPadding, RenderState } from '@flighthq/types/contract';
|
|
2
2
|
export declare function createOuterGlowEffect(options?: Readonly<Omit<OuterGlowEffect, 'kind'>>): OuterGlowEffect;
|
|
3
|
+
export declare function getOuterGlowEffectPadding(effect: Readonly<OuterGlowEffect>): RenderEffectPadding;
|
|
4
|
+
export declare function registerOuterGlowEffectPaddingResolver(state: RenderState): void;
|
|
3
5
|
//# sourceMappingURL=outerGlowEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outerGlowEffect.d.ts","sourceRoot":"","sources":["../src/outerGlowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"outerGlowEffect.d.ts","sourceRoot":"","sources":["../src/outerGlowEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgB,mBAAmB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAKhH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAM,GAAG,eAAe,CAE5G;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,mBAAmB,CAEhG;AAED,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAE/E"}
|
package/dist/outerGlowEffect.js
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
|
+
import { getGaussianRenderEffectPadding, registerRenderEffectPaddingResolver } from './renderEffectPadding';
|
|
1
2
|
// Outer-glow composite effect: tint the scene silhouette, blur it centered (no offset), then apply sourceMode compositing.
|
|
2
3
|
export function createOuterGlowEffect(options = {}) {
|
|
3
4
|
return { kind: 'OuterGlowEffect', ...options };
|
|
4
5
|
}
|
|
6
|
+
export function getOuterGlowEffectPadding(effect) {
|
|
7
|
+
return getGaussianRenderEffectPadding(effect.blurX ?? 6, effect.blurY ?? 6);
|
|
8
|
+
}
|
|
9
|
+
export function registerOuterGlowEffectPaddingResolver(state) {
|
|
10
|
+
registerRenderEffectPaddingResolver(state, 'OuterGlowEffect', resolveOuterGlowEffectPadding);
|
|
11
|
+
}
|
|
12
|
+
function resolveOuterGlowEffectPadding(effect) {
|
|
13
|
+
return getOuterGlowEffectPadding(effect);
|
|
14
|
+
}
|
|
5
15
|
//# sourceMappingURL=outerGlowEffect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outerGlowEffect.js","sourceRoot":"","sources":["../src/outerGlowEffect.ts"],"names":[],"mappings":"AAEA,2HAA2H;AAC3H,MAAM,UAAU,qBAAqB,CAAC,UAAmD,EAAE;IACzF,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,OAAO,EAAE,CAAC;AACjD,CAAC"}
|
|
1
|
+
{"version":3,"file":"outerGlowEffect.js","sourceRoot":"","sources":["../src/outerGlowEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,8BAA8B,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAE5G,2HAA2H;AAC3H,MAAM,UAAU,qBAAqB,CAAC,UAAmD,EAAE;IACzF,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,OAAO,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAiC;IACzE,OAAO,8BAA8B,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,sCAAsC,CAAC,KAAkB;IACvE,mCAAmC,CAAC,KAAK,EAAE,iBAAiB,EAAE,6BAA6B,CAAC,CAAC;AAC/F,CAAC;AAED,SAAS,6BAA6B,CAAC,MAA8B;IACnE,OAAO,yBAAyB,CAAC,MAAmC,CAAC,CAAC;AACxE,CAAC"}
|
package/dist/outlineEffect.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import type { OutlineEffect } from '@flighthq/types/contract';
|
|
1
|
+
import type { OutlineEffect, RenderEffectPadding, RenderState } from '@flighthq/types/contract';
|
|
2
2
|
export declare function createOutlineEffect(options?: Readonly<Omit<OutlineEffect, 'kind'>>): OutlineEffect;
|
|
3
|
+
export declare function getOutlineEffectPadding(effect: Readonly<OutlineEffect>): RenderEffectPadding;
|
|
4
|
+
export declare function registerOutlineEffectPaddingResolver(state: RenderState): void;
|
|
3
5
|
//# sourceMappingURL=outlineEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outlineEffect.d.ts","sourceRoot":"","sources":["../src/outlineEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"outlineEffect.d.ts","sourceRoot":"","sources":["../src/outlineEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAgB,mBAAmB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAI9G,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAM,GAAG,aAAa,CAEtG;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,mBAAmB,CAG5F;AAED,wBAAgB,oCAAoC,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAE7E"}
|
package/dist/outlineEffect.js
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
|
+
import { registerRenderEffectPaddingResolver } from './renderEffectPadding';
|
|
1
2
|
export function createOutlineEffect(options = {}) {
|
|
2
3
|
return { kind: 'OutlineEffect', ...options };
|
|
3
4
|
}
|
|
5
|
+
export function getOutlineEffectPadding(effect) {
|
|
6
|
+
const thickness = Math.ceil(Math.max(0, effect.thickness ?? 1));
|
|
7
|
+
return { bottom: thickness, left: thickness, right: thickness, top: thickness };
|
|
8
|
+
}
|
|
9
|
+
export function registerOutlineEffectPaddingResolver(state) {
|
|
10
|
+
registerRenderEffectPaddingResolver(state, 'OutlineEffect', resolveOutlineEffectPadding);
|
|
11
|
+
}
|
|
12
|
+
function resolveOutlineEffectPadding(effect) {
|
|
13
|
+
return getOutlineEffectPadding(effect);
|
|
14
|
+
}
|
|
4
15
|
//# sourceMappingURL=outlineEffect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outlineEffect.js","sourceRoot":"","sources":["../src/outlineEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CAAC,UAAiD,EAAE;IACrF,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;AAC/C,CAAC"}
|
|
1
|
+
{"version":3,"file":"outlineEffect.js","sourceRoot":"","sources":["../src/outlineEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAE5E,MAAM,UAAU,mBAAmB,CAAC,UAAiD,EAAE;IACrF,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAA+B;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;IAChE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,oCAAoC,CAAC,KAAkB;IACrE,mCAAmC,CAAC,KAAK,EAAE,eAAe,EAAE,2BAA2B,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,2BAA2B,CAAC,MAA8B;IACjE,OAAO,uBAAuB,CAAC,MAAiC,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Kind, RenderEffect, RenderEffectPadding, RenderEffectPaddingExplanation, RenderEffectPaddingResolver, RenderState } from '@flighthq/types/contract';
|
|
2
|
+
export declare function computeRenderEffectPadding(state: RenderState, effects: Readonly<RenderEffect> | ReadonlyArray<Readonly<RenderEffect>>): RenderEffectPadding;
|
|
3
|
+
export declare function explainRenderEffectPadding(state: RenderState, effects: Readonly<RenderEffect> | ReadonlyArray<Readonly<RenderEffect>>): RenderEffectPaddingExplanation;
|
|
4
|
+
export declare function getDirectionalRenderEffectPadding(blurX: number, blurY: number, offsetX: number, offsetY: number): RenderEffectPadding;
|
|
5
|
+
export declare function getGaussianRenderEffectPadding(blurX: number, blurY: number): RenderEffectPadding;
|
|
6
|
+
export declare function registerRenderEffectPaddingResolver(state: RenderState, kind: Kind, resolver: RenderEffectPaddingResolver | null): void;
|
|
7
|
+
//# sourceMappingURL=renderEffectPadding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderEffectPadding.d.ts","sourceRoot":"","sources":["../src/renderEffectPadding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EACJ,YAAY,EACZ,mBAAmB,EACnB,8BAA8B,EAC9B,2BAA2B,EAC3B,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAMlC,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,GACtE,mBAAmB,CAOrB;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,GACtE,8BAA8B,CAyBhC;AAGD,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,mBAAmB,CAUrB;AAGD,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAIhG;AAED,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,2BAA2B,GAAG,IAAI,GAC3C,IAAI,CAIN"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { getRenderStateRuntime } from '@flighthq/render/contract';
|
|
2
|
+
import { RenderRegistry } from '@flighthq/types/contract';
|
|
3
|
+
// Computes the footprint of one effect or a sequential effect chain. Spatial effects add their
|
|
4
|
+
// directional footprints per side; pointwise effects register the zero resolver. An unregistered kind
|
|
5
|
+
// contributes the silent zero sentinel and emits only through the opt-in shared registry-miss signal.
|
|
6
|
+
export function computeRenderEffectPadding(state, effects) {
|
|
7
|
+
const list = Array.isArray(effects) ? effects : [effects];
|
|
8
|
+
const explanation = explainRenderEffectPadding(state, list);
|
|
9
|
+
const emitMiss = getRenderStateRuntime(state).registryMiss;
|
|
10
|
+
if (emitMiss !== null)
|
|
11
|
+
for (const kind of explanation.missingKinds)
|
|
12
|
+
emitMiss(RenderRegistry.EffectPaddingResolver, kind);
|
|
13
|
+
return explanation.padding;
|
|
14
|
+
}
|
|
15
|
+
export function explainRenderEffectPadding(state, effects) {
|
|
16
|
+
const list = Array.isArray(effects) ? effects : [effects];
|
|
17
|
+
const registry = getRenderStateRuntime(state).renderEffectPaddingResolverRegistry;
|
|
18
|
+
let bottom = 0;
|
|
19
|
+
let left = 0;
|
|
20
|
+
let right = 0;
|
|
21
|
+
let top = 0;
|
|
22
|
+
const missingKinds = [];
|
|
23
|
+
for (const effect of list) {
|
|
24
|
+
const resolver = registry?.get(effect.kind);
|
|
25
|
+
if (resolver === undefined) {
|
|
26
|
+
if (!missingKinds.includes(effect.kind))
|
|
27
|
+
missingKinds.push(effect.kind);
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
const padding = resolver(effect);
|
|
31
|
+
bottom += sanitizePadding(padding.bottom);
|
|
32
|
+
left += sanitizePadding(padding.left);
|
|
33
|
+
right += sanitizePadding(padding.right);
|
|
34
|
+
top += sanitizePadding(padding.top);
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
missingKinds,
|
|
38
|
+
padding: { bottom, left, right, top },
|
|
39
|
+
status: missingKinds.length === 0 ? 'complete' : 'missing-resolver',
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// Adds a screen-space Y-down offset to a Gaussian footprint without wasting the opposite inset.
|
|
43
|
+
export function getDirectionalRenderEffectPadding(blurX, blurY, offsetX, offsetY) {
|
|
44
|
+
const gaussian = getGaussianRenderEffectPadding(blurX, blurY);
|
|
45
|
+
const dx = Math.abs(offsetX) < 1e-10 ? 0 : offsetX;
|
|
46
|
+
const dy = Math.abs(offsetY) < 1e-10 ? 0 : offsetY;
|
|
47
|
+
return {
|
|
48
|
+
bottom: Math.ceil(gaussian.bottom + Math.max(0, dy)),
|
|
49
|
+
left: Math.ceil(gaussian.left + Math.max(0, -dx)),
|
|
50
|
+
right: Math.ceil(gaussian.right + Math.max(0, dx)),
|
|
51
|
+
top: Math.ceil(gaussian.top + Math.max(0, -dy)),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
// Converts Gaussian standard deviations into the three-sigma footprint used by the per-node lane.
|
|
55
|
+
export function getGaussianRenderEffectPadding(blurX, blurY) {
|
|
56
|
+
const horizontal = Math.ceil(Math.max(0, blurX) * 3);
|
|
57
|
+
const vertical = Math.ceil(Math.max(0, blurY) * 3);
|
|
58
|
+
return { bottom: vertical, left: horizontal, right: horizontal, top: vertical };
|
|
59
|
+
}
|
|
60
|
+
export function registerRenderEffectPaddingResolver(state, kind, resolver) {
|
|
61
|
+
const runtime = getRenderStateRuntime(state);
|
|
62
|
+
if (resolver === null)
|
|
63
|
+
runtime.renderEffectPaddingResolverRegistry?.delete(kind);
|
|
64
|
+
else
|
|
65
|
+
(runtime.renderEffectPaddingResolverRegistry ??= new Map()).set(kind, resolver);
|
|
66
|
+
}
|
|
67
|
+
function sanitizePadding(value) {
|
|
68
|
+
return Number.isFinite(value) ? Math.max(0, value) : 0;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=renderEffectPadding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderEffectPadding.js","sourceRoot":"","sources":["../src/renderEffectPadding.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import type { TiltShiftEffect } from '@flighthq/types/contract';
|
|
1
|
+
import type { RenderEffectPadding, RenderState, TiltShiftEffect } from '@flighthq/types/contract';
|
|
2
2
|
export declare function createTiltShiftEffect(options?: Readonly<Omit<TiltShiftEffect, 'kind'>>): TiltShiftEffect;
|
|
3
|
+
export declare function getTiltShiftEffectPadding(effect: Readonly<TiltShiftEffect>): RenderEffectPadding;
|
|
4
|
+
export declare function registerTiltShiftEffectPaddingResolver(state: RenderState): void;
|
|
3
5
|
//# sourceMappingURL=tiltShiftEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiltShiftEffect.d.ts","sourceRoot":"","sources":["../src/tiltShiftEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"tiltShiftEffect.d.ts","sourceRoot":"","sources":["../src/tiltShiftEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,mBAAmB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAIhH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAM,GAAG,eAAe,CAE5G;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,mBAAmB,CAGhG;AAED,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAE/E"}
|
package/dist/tiltShiftEffect.js
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
|
+
import { registerRenderEffectPaddingResolver } from './renderEffectPadding';
|
|
1
2
|
export function createTiltShiftEffect(options = {}) {
|
|
2
3
|
return { kind: 'TiltShiftEffect', ...options };
|
|
3
4
|
}
|
|
5
|
+
export function getTiltShiftEffectPadding(effect) {
|
|
6
|
+
const vertical = Math.ceil(Math.max(0, effect.blur ?? 4) * 3);
|
|
7
|
+
return { bottom: vertical, left: 0, right: 0, top: vertical };
|
|
8
|
+
}
|
|
9
|
+
export function registerTiltShiftEffectPaddingResolver(state) {
|
|
10
|
+
registerRenderEffectPaddingResolver(state, 'TiltShiftEffect', resolveTiltShiftEffectPadding);
|
|
11
|
+
}
|
|
12
|
+
function resolveTiltShiftEffectPadding(effect) {
|
|
13
|
+
return getTiltShiftEffectPadding(effect);
|
|
14
|
+
}
|
|
4
15
|
//# sourceMappingURL=tiltShiftEffect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiltShiftEffect.js","sourceRoot":"","sources":["../src/tiltShiftEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qBAAqB,CAAC,UAAmD,EAAE;IACzF,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,OAAO,EAAE,CAAC;AACjD,CAAC"}
|
|
1
|
+
{"version":3,"file":"tiltShiftEffect.js","sourceRoot":"","sources":["../src/tiltShiftEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAE5E,MAAM,UAAU,qBAAqB,CAAC,UAAmD,EAAE;IACzF,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,OAAO,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAiC;IACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,sCAAsC,CAAC,KAAkB;IACvE,mCAAmC,CAAC,KAAK,EAAE,iBAAiB,EAAE,6BAA6B,CAAC,CAAC;AAC/F,CAAC;AAED,SAAS,6BAA6B,CAAC,MAA8B;IACnE,OAAO,yBAAyB,CAAC,MAAmC,CAAC,CAAC;AACxE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/effects",
|
|
3
|
-
"version": "0.3.0
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"author": "Joshua Granick and other contributors",
|
|
5
|
+
"license": "MIT",
|
|
4
6
|
"repository": {
|
|
5
7
|
"type": "git",
|
|
6
8
|
"url": "https://github.com/flighthq/flight.git",
|
|
@@ -36,7 +38,9 @@
|
|
|
36
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
37
39
|
},
|
|
38
40
|
"dependencies": {
|
|
39
|
-
"@flighthq/
|
|
41
|
+
"@flighthq/render": "0.3.0",
|
|
42
|
+
"@flighthq/signals": "0.3.0",
|
|
43
|
+
"@flighthq/types": "0.3.0"
|
|
40
44
|
},
|
|
41
45
|
"devDependencies": {
|
|
42
46
|
"typescript": "^5.3.0"
|
package/src/bevelEffect.test.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createRenderState, getRenderStateRuntime } from '@flighthq/render/contract';
|
|
2
|
+
|
|
3
|
+
import { createBevelEffect, getBevelEffectPadding, registerBevelEffectPaddingResolver } from './bevelEffect';
|
|
2
4
|
|
|
3
5
|
describe('createBevelEffect', () => {
|
|
4
6
|
it('tags the intent type', () => {
|
|
@@ -12,3 +14,24 @@ describe('createBevelEffect', () => {
|
|
|
12
14
|
});
|
|
13
15
|
});
|
|
14
16
|
});
|
|
17
|
+
|
|
18
|
+
describe('getBevelEffectPadding', () => {
|
|
19
|
+
it('adds the directional offset only to the reached sides of the Gaussian footprint', () => {
|
|
20
|
+
expect(getBevelEffectPadding(createBevelEffect({ angle: 180, blurX: 2, blurY: 3, distance: 5 }))).toEqual({
|
|
21
|
+
bottom: 9,
|
|
22
|
+
left: 11,
|
|
23
|
+
right: 6,
|
|
24
|
+
top: 9,
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
describe('registerBevelEffectPaddingResolver', () => {
|
|
30
|
+
it('registers the bevel footprint on only the supplied state', () => {
|
|
31
|
+
const state = createRenderState();
|
|
32
|
+
const other = createRenderState();
|
|
33
|
+
registerBevelEffectPaddingResolver(state);
|
|
34
|
+
expect(getRenderStateRuntime(state).renderEffectPaddingResolverRegistry?.has('BevelEffect')).toBe(true);
|
|
35
|
+
expect(getRenderStateRuntime(other).renderEffectPaddingResolverRegistry).toBeNull();
|
|
36
|
+
});
|
|
37
|
+
});
|
|
@@ -88,6 +88,21 @@ describe('getAdvancedBlendRgb', () => {
|
|
|
88
88
|
});
|
|
89
89
|
|
|
90
90
|
describe('getSeparableBlendChannel', () => {
|
|
91
|
+
// The faithful twins of the fixed-function BlendMode.Darken/Lighten. The channel function is the same
|
|
92
|
+
// W3C min/max; what the effect path adds is the (1-a)*dst + a*B(src,dst) coverage term that MIN/MAX
|
|
93
|
+
// blend state cannot carry — which is the whole reason both tiers carry these two.
|
|
94
|
+
it('Darken and Lighten are the W3C per-channel min and max', () => {
|
|
95
|
+
expect(getSeparableBlendChannel(AdvancedBlendMode.Darken, 0.6, 0.3)).toBeCloseTo(0.3, 6);
|
|
96
|
+
expect(getSeparableBlendChannel(AdvancedBlendMode.Darken, 0.2, 0.9)).toBeCloseTo(0.2, 6);
|
|
97
|
+
expect(getSeparableBlendChannel(AdvancedBlendMode.Lighten, 0.6, 0.3)).toBeCloseTo(0.6, 6);
|
|
98
|
+
expect(getSeparableBlendChannel(AdvancedBlendMode.Lighten, 0.2, 0.9)).toBeCloseTo(0.9, 6);
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
it('Darken and Lighten are separable, not HSL', () => {
|
|
102
|
+
expect(isNonSeparableBlendMode(AdvancedBlendMode.Darken)).toBe(false);
|
|
103
|
+
expect(isNonSeparableBlendMode(AdvancedBlendMode.Lighten)).toBe(false);
|
|
104
|
+
});
|
|
105
|
+
|
|
91
106
|
it('Overlay equals HardLight with operands swapped', () => {
|
|
92
107
|
const cb = 0.6;
|
|
93
108
|
const cs = 0.3;
|
package/src/bloomEffect.test.ts
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createRenderState, getRenderStateRuntime } from '@flighthq/render/contract';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
computeBloomBlurRadius,
|
|
5
|
+
computeBloomIntensity,
|
|
6
|
+
computeBloomThreshold,
|
|
7
|
+
createBloomEffect,
|
|
8
|
+
getBloomEffectPadding,
|
|
9
|
+
registerBloomEffectPaddingResolver,
|
|
10
|
+
} from './bloomEffect';
|
|
2
11
|
|
|
3
12
|
describe('computeBloomBlurRadius', () => {
|
|
4
13
|
it('defaults to 8 when radius is unset', () => {
|
|
@@ -39,3 +48,24 @@ describe('createBloomEffect', () => {
|
|
|
39
48
|
expect(createBloomEffect({ threshold: 0.5, intensity: 2 })).toMatchObject({ threshold: 0.5, intensity: 2 });
|
|
40
49
|
});
|
|
41
50
|
});
|
|
51
|
+
|
|
52
|
+
describe('getBloomEffectPadding', () => {
|
|
53
|
+
it('uses a three-sigma footprint for the blurred bright branch', () => {
|
|
54
|
+
expect(getBloomEffectPadding(createBloomEffect({ radius: 2 }))).toEqual({
|
|
55
|
+
bottom: 6,
|
|
56
|
+
left: 6,
|
|
57
|
+
right: 6,
|
|
58
|
+
top: 6,
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
describe('registerBloomEffectPaddingResolver', () => {
|
|
64
|
+
it('registers the bloom footprint on only the supplied state', () => {
|
|
65
|
+
const state = createRenderState();
|
|
66
|
+
const other = createRenderState();
|
|
67
|
+
registerBloomEffectPaddingResolver(state);
|
|
68
|
+
expect(getRenderStateRuntime(state).renderEffectPaddingResolverRegistry?.has('BloomEffect')).toBe(true);
|
|
69
|
+
expect(getRenderStateRuntime(other).renderEffectPaddingResolverRegistry).toBeNull();
|
|
70
|
+
});
|
|
71
|
+
});
|
package/src/blurEffect.test.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createRenderState, getRenderStateRuntime } from '@flighthq/render/contract';
|
|
2
|
+
|
|
3
|
+
import { createBlurEffect, getBlurEffectPadding, registerBlurEffectPaddingResolver } from './blurEffect';
|
|
2
4
|
|
|
3
5
|
describe('createBlurEffect', () => {
|
|
4
6
|
it('sets the kind', () => {
|
|
@@ -15,3 +17,26 @@ describe('createBlurEffect', () => {
|
|
|
15
17
|
expect(effect.blurY).toBe(3);
|
|
16
18
|
});
|
|
17
19
|
});
|
|
20
|
+
|
|
21
|
+
describe('getBlurEffectPadding', () => {
|
|
22
|
+
it('derives directional Gaussian footprint from ceil(3 * sigma) on each axis', () => {
|
|
23
|
+
expect(getBlurEffectPadding(createBlurEffect({ blurX: 2.1, blurY: 3.2 }))).toEqual({
|
|
24
|
+
bottom: 10,
|
|
25
|
+
left: 7,
|
|
26
|
+
right: 7,
|
|
27
|
+
top: 10,
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
describe('registerBlurEffectPaddingResolver', () => {
|
|
33
|
+
it('registers the blur resolver on only the supplied state', () => {
|
|
34
|
+
const state = createRenderState();
|
|
35
|
+
const other = createRenderState();
|
|
36
|
+
|
|
37
|
+
registerBlurEffectPaddingResolver(state);
|
|
38
|
+
|
|
39
|
+
expect(getRenderStateRuntime(state).renderEffectPaddingResolverRegistry?.has('BlurEffect')).toBe(true);
|
|
40
|
+
expect(getRenderStateRuntime(other).renderEffectPaddingResolverRegistry).toBeNull();
|
|
41
|
+
});
|
|
42
|
+
});
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createRenderState, getRenderStateRuntime } from '@flighthq/render/contract';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
createBokehDepthOfFieldEffect,
|
|
5
|
+
getBokehDepthOfFieldEffectPadding,
|
|
6
|
+
registerBokehDepthOfFieldEffectPaddingResolver,
|
|
7
|
+
} from './bokehDepthOfFieldEffect';
|
|
2
8
|
|
|
3
9
|
describe('createBokehDepthOfFieldEffect', () => {
|
|
4
10
|
it('tags the intent type', () => {
|
|
@@ -13,3 +19,24 @@ describe('createBokehDepthOfFieldEffect', () => {
|
|
|
13
19
|
});
|
|
14
20
|
});
|
|
15
21
|
});
|
|
22
|
+
|
|
23
|
+
describe('getBokehDepthOfFieldEffectPadding', () => {
|
|
24
|
+
it('uses the maximum disc radius on every side', () => {
|
|
25
|
+
expect(getBokehDepthOfFieldEffectPadding(createBokehDepthOfFieldEffect({ maxBlur: 4.2 }))).toEqual({
|
|
26
|
+
bottom: 5,
|
|
27
|
+
left: 5,
|
|
28
|
+
right: 5,
|
|
29
|
+
top: 5,
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
describe('registerBokehDepthOfFieldEffectPaddingResolver', () => {
|
|
35
|
+
it('registers the bokeh footprint on only the supplied state', () => {
|
|
36
|
+
const state = createRenderState();
|
|
37
|
+
const other = createRenderState();
|
|
38
|
+
registerBokehDepthOfFieldEffectPaddingResolver(state);
|
|
39
|
+
expect(getRenderStateRuntime(state).renderEffectPaddingResolverRegistry?.has('BokehDepthOfFieldEffect')).toBe(true);
|
|
40
|
+
expect(getRenderStateRuntime(other).renderEffectPaddingResolverRegistry).toBeNull();
|
|
41
|
+
});
|
|
42
|
+
});
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createRenderState, getRenderStateRuntime } from '@flighthq/render/contract';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
createContactShadowsEffect,
|
|
5
|
+
getContactShadowsEffectPadding,
|
|
6
|
+
registerContactShadowsEffectPaddingResolver,
|
|
7
|
+
} from './contactShadowsEffect';
|
|
2
8
|
|
|
3
9
|
describe('createContactShadowsEffect', () => {
|
|
4
10
|
it('carries options', () => {
|
|
@@ -12,3 +18,24 @@ describe('createContactShadowsEffect', () => {
|
|
|
12
18
|
expect(createContactShadowsEffect().kind).toBe('ContactShadowsEffect');
|
|
13
19
|
});
|
|
14
20
|
});
|
|
21
|
+
|
|
22
|
+
describe('getContactShadowsEffectPadding', () => {
|
|
23
|
+
it('keeps the screen-space depth treatment inside the current target', () => {
|
|
24
|
+
expect(getContactShadowsEffectPadding(createContactShadowsEffect({ distance: 8 }))).toEqual({
|
|
25
|
+
bottom: 0,
|
|
26
|
+
left: 0,
|
|
27
|
+
right: 0,
|
|
28
|
+
top: 0,
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
describe('registerContactShadowsEffectPaddingResolver', () => {
|
|
34
|
+
it('registers the explicit zero footprint on only the supplied state', () => {
|
|
35
|
+
const state = createRenderState();
|
|
36
|
+
const other = createRenderState();
|
|
37
|
+
registerContactShadowsEffectPaddingResolver(state);
|
|
38
|
+
expect(getRenderStateRuntime(state).renderEffectPaddingResolverRegistry?.has('ContactShadowsEffect')).toBe(true);
|
|
39
|
+
expect(getRenderStateRuntime(other).renderEffectPaddingResolverRegistry).toBeNull();
|
|
40
|
+
});
|
|
41
|
+
});
|