@codexo/exojs 0.14.0 → 0.15.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/CHANGELOG.md +132 -0
- package/README.md +2 -4
- package/dist/esm/animation/Tween.d.ts.map +1 -1
- package/dist/esm/animation/Tween.js +0 -1
- package/dist/esm/animation/Tween.js.map +1 -1
- package/dist/esm/animation/TweenManager.d.ts +44 -5
- package/dist/esm/animation/TweenManager.d.ts.map +1 -1
- package/dist/esm/animation/TweenManager.js +57 -5
- package/dist/esm/animation/TweenManager.js.map +1 -1
- package/dist/esm/animation/TweenSequencer.d.ts +139 -0
- package/dist/esm/animation/TweenSequencer.d.ts.map +1 -0
- package/dist/esm/animation/TweenSequencer.js +305 -0
- package/dist/esm/animation/TweenSequencer.js.map +1 -0
- package/dist/esm/animation/index.d.ts +1 -0
- package/dist/esm/animation/index.d.ts.map +1 -1
- package/dist/esm/audio/WorkletEffect.d.ts +34 -20
- package/dist/esm/audio/WorkletEffect.d.ts.map +1 -1
- package/dist/esm/audio/WorkletEffect.js +92 -25
- package/dist/esm/audio/WorkletEffect.js.map +1 -1
- package/dist/esm/core/Application.d.ts +43 -5
- package/dist/esm/core/Application.d.ts.map +1 -1
- package/dist/esm/core/Application.js +83 -9
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/BuildInfo.js +2 -2
- package/dist/esm/core/Codec.d.ts +41 -0
- package/dist/esm/core/Codec.d.ts.map +1 -0
- package/dist/esm/core/Codec.js +79 -0
- package/dist/esm/core/Codec.js.map +1 -0
- package/dist/esm/core/FixedTimestep.d.ts +28 -0
- package/dist/esm/core/FixedTimestep.d.ts.map +1 -0
- package/dist/esm/core/FixedTimestep.js +62 -0
- package/dist/esm/core/FixedTimestep.js.map +1 -0
- package/dist/esm/core/Scene.d.ts +14 -0
- package/dist/esm/core/Scene.d.ts.map +1 -1
- package/dist/esm/core/Scene.js +18 -0
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.d.ts +7 -0
- package/dist/esm/core/SceneManager.d.ts.map +1 -1
- package/dist/esm/core/SceneManager.js +20 -4
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +36 -6
- package/dist/esm/core/SceneNode.d.ts.map +1 -1
- package/dist/esm/core/SceneNode.js +63 -11
- package/dist/esm/core/SceneNode.js.map +1 -1
- package/dist/esm/core/Stage.d.ts +7 -0
- package/dist/esm/core/Stage.d.ts.map +1 -1
- package/dist/esm/core/SystemRegistry.d.ts +5 -0
- package/dist/esm/core/SystemRegistry.d.ts.map +1 -1
- package/dist/esm/core/SystemRegistry.js +10 -0
- package/dist/esm/core/SystemRegistry.js.map +1 -1
- package/dist/esm/core/index.d.ts +4 -0
- package/dist/esm/core/index.d.ts.map +1 -1
- package/dist/esm/core/logging.d.ts +34 -0
- package/dist/esm/core/logging.d.ts.map +1 -0
- package/dist/esm/core/logging.js +59 -0
- package/dist/esm/core/logging.js.map +1 -0
- package/dist/esm/core/serialization/commonFields.d.ts.map +1 -1
- package/dist/esm/core/serialization/commonFields.js +6 -0
- package/dist/esm/core/serialization/commonFields.js.map +1 -1
- package/dist/esm/core/serialization/renderingSerializers.d.ts.map +1 -1
- package/dist/esm/core/serialization/renderingSerializers.js +14 -5
- package/dist/esm/core/serialization/renderingSerializers.js.map +1 -1
- package/dist/esm/index.js +7 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/Gamepad.d.ts +10 -0
- package/dist/esm/input/Gamepad.d.ts.map +1 -1
- package/dist/esm/input/Gamepad.js +12 -0
- package/dist/esm/input/Gamepad.js.map +1 -1
- package/dist/esm/input/InputManager.d.ts.map +1 -1
- package/dist/esm/input/InputManager.js +5 -0
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/InteractionManager.js +4 -4
- package/dist/esm/input/InteractionManager.js.map +1 -1
- package/dist/esm/math/collision-detection.js +1 -1
- package/dist/esm/rendering/BackendTargetPass.d.ts +1 -1
- package/dist/esm/rendering/BackendTargetPass.d.ts.map +1 -1
- package/dist/esm/rendering/CallbackRenderPass.d.ts +14 -10
- package/dist/esm/rendering/CallbackRenderPass.d.ts.map +1 -1
- package/dist/esm/rendering/CallbackRenderPass.js +16 -11
- package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
- package/dist/esm/rendering/DrawContext.d.ts +48 -0
- package/dist/esm/rendering/DrawContext.d.ts.map +1 -0
- package/dist/esm/rendering/PassContext.d.ts +42 -0
- package/dist/esm/rendering/PassContext.d.ts.map +1 -0
- package/dist/esm/rendering/PassContext.js +48 -0
- package/dist/esm/rendering/PassContext.js.map +1 -0
- package/dist/esm/rendering/RenderBackend.d.ts +14 -0
- package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
- package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
- package/dist/esm/rendering/RenderNode.js +2 -2
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/RenderNodePass.d.ts +1 -1
- package/dist/esm/rendering/RenderNodePass.d.ts.map +1 -1
- package/dist/esm/rendering/RenderingContext.d.ts +47 -16
- package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
- package/dist/esm/rendering/RenderingContext.js +134 -36
- package/dist/esm/rendering/RenderingContext.js.map +1 -1
- package/dist/esm/rendering/TransformBuffer.d.ts +23 -0
- package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
- package/dist/esm/rendering/TransformBuffer.js +58 -0
- package/dist/esm/rendering/TransformBuffer.js.map +1 -1
- package/dist/esm/rendering/View.d.ts +38 -0
- package/dist/esm/rendering/View.d.ts.map +1 -1
- package/dist/esm/rendering/View.js +37 -0
- package/dist/esm/rendering/View.js.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js +9 -2
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
- package/dist/esm/rendering/material/MeshMaterial.d.ts +20 -1
- package/dist/esm/rendering/material/MeshMaterial.d.ts.map +1 -1
- package/dist/esm/rendering/material/MeshMaterial.js +17 -0
- package/dist/esm/rendering/material/MeshMaterial.js.map +1 -1
- package/dist/esm/rendering/material/SpriteMaterial.d.ts +20 -1
- package/dist/esm/rendering/material/SpriteMaterial.d.ts.map +1 -1
- package/dist/esm/rendering/material/SpriteMaterial.js +17 -0
- package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -1
- package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderEffectExecutor.js +7 -2
- package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
- package/dist/esm/rendering/plan/RenderInstruction.d.ts +5 -2
- package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanBuilder.js +23 -5
- package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
- package/dist/esm/rendering/plan/RenderScope.d.ts +7 -0
- package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.d.ts +10 -1
- package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.js +30 -9
- package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
- package/dist/esm/rendering/public.d.ts +5 -5
- package/dist/esm/rendering/public.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +56 -19
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.js +121 -31
- package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
- package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
- package/dist/esm/rendering/text/BitmapText.js +2 -0
- package/dist/esm/rendering/text/BitmapText.js.map +1 -1
- package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
- package/dist/esm/rendering/text/HTMLText.js +2 -2
- package/dist/esm/rendering/text/HTMLText.js.map +1 -1
- package/dist/esm/rendering/text/Text.d.ts.map +1 -1
- package/dist/esm/rendering/text/Text.js +2 -0
- package/dist/esm/rendering/text/Text.js.map +1 -1
- package/dist/esm/rendering/types.d.ts +37 -13
- package/dist/esm/rendering/types.d.ts.map +1 -1
- package/dist/esm/rendering/types.js +37 -13
- package/dist/esm/rendering/types.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts +41 -0
- package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js +222 -0
- package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +34 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +108 -60
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +50 -11
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/text.vert.js +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts +72 -0
- package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js +494 -0
- package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +27 -0
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +157 -60
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js +5 -29
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +2 -0
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +2 -1
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +4 -0
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +3 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts +2 -0
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +2 -1
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +8 -0
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +20 -0
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts +6 -0
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +4 -1
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +2 -0
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +2 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +2 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +2 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +2 -0
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +3 -2
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +3 -1
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +29 -5
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
- package/dist/esm/resources/Loader.d.ts +13 -0
- package/dist/esm/resources/Loader.d.ts.map +1 -1
- package/dist/esm/resources/Loader.js +67 -7
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/ui/ScrollContainer.d.ts +63 -0
- package/dist/esm/ui/ScrollContainer.d.ts.map +1 -0
- package/dist/esm/ui/ScrollContainer.js +99 -0
- package/dist/esm/ui/ScrollContainer.js.map +1 -0
- package/dist/esm/ui/Tooltip.d.ts +67 -0
- package/dist/esm/ui/Tooltip.d.ts.map +1 -0
- package/dist/esm/ui/Tooltip.js +133 -0
- package/dist/esm/ui/Tooltip.js.map +1 -0
- package/dist/esm/ui/index.d.ts +4 -0
- package/dist/esm/ui/index.d.ts.map +1 -1
- package/dist/exo.esm.js +1 -1
- package/dist/exo.esm.js.map +1 -1
- package/dist/exo.iife.js +45202 -0
- package/dist/exo.iife.js.map +1 -0
- package/dist/exo.iife.min.js +2 -0
- package/dist/exo.iife.min.js.map +1 -0
- package/package.json +15 -3
- package/dist/esm/rendering/Camera.d.ts +0 -34
- package/dist/esm/rendering/Camera.d.ts.map +0 -1
- package/dist/esm/rendering/Camera.js +0 -38
- package/dist/esm/rendering/Camera.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.js","sources":["../../../../../src/rendering/text/Text.ts"],"sourcesContent":[null],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Text.js","sources":["../../../../../src/rendering/text/Text.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Compositing blend modes applied when drawing a {@link Drawable} over the current render target.
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
|
+
* Modes 0–4 are implemented as fixed-function GPU blend equations (no texture
|
|
5
|
+
* capture required). Modes 5–17 use a backdrop-aware compositor: the content is
|
|
6
|
+
* first rendered off-screen, then composited over the captured backdrop via a
|
|
7
|
+
* W3C-compliant blend shader. Use {@link isAdvancedBlendMode} to test whether a
|
|
8
|
+
* mode requires the compositor path.
|
|
4
9
|
*/
|
|
5
10
|
export declare enum BlendModes {
|
|
6
11
|
Normal = 0,
|
|
@@ -8,20 +13,39 @@ export declare enum BlendModes {
|
|
|
8
13
|
Subtract = 2,
|
|
9
14
|
Multiply = 3,
|
|
10
15
|
Screen = 4,
|
|
11
|
-
/**
|
|
12
|
-
* `min(src, dst)` per channel.
|
|
13
|
-
*
|
|
14
|
-
* KNOWN LIMITATION: implemented with the fixed-function `MIN` blend equation,
|
|
15
|
-
* which ignores the blend factors and therefore cannot account for source
|
|
16
|
-
* coverage. With premultiplied-alpha drawables, transparent texels (rgb = 0)
|
|
17
|
-
* resolve to `min(0, dst) = 0`, so transparent regions of a sprite turn black
|
|
18
|
-
* instead of showing the background. Reliable only for fully opaque sources;
|
|
19
|
-
* a coverage-correct version needs a shader-side blend. Tracked for a future
|
|
20
|
-
* render pass. {@link Lighten} is unaffected (`max(0, dst) = dst`).
|
|
21
|
-
*/
|
|
16
|
+
/** `min(src, dst)` per channel — coverage-correct via backdrop-aware shader. */
|
|
22
17
|
Darken = 5,
|
|
23
|
-
|
|
18
|
+
/** `max(src, dst)` per channel — coverage-correct via backdrop-aware shader. */
|
|
19
|
+
Lighten = 6,
|
|
20
|
+
/** Overlay: darkens or lightens depending on backdrop luminosity. */
|
|
21
|
+
Overlay = 7,
|
|
22
|
+
/** Color Dodge: brightens the backdrop to reflect the source. */
|
|
23
|
+
ColorDodge = 8,
|
|
24
|
+
/** Color Burn: darkens the backdrop to reflect the source. */
|
|
25
|
+
ColorBurn = 9,
|
|
26
|
+
/** Hard Light: strong Overlay with source and backdrop roles swapped. */
|
|
27
|
+
HardLight = 10,
|
|
28
|
+
/** Soft Light: softer Overlay effect. */
|
|
29
|
+
SoftLight = 11,
|
|
30
|
+
/** Difference: absolute value of channel difference. */
|
|
31
|
+
Difference = 12,
|
|
32
|
+
/** Exclusion: lower-contrast alternative to Difference. */
|
|
33
|
+
Exclusion = 13,
|
|
34
|
+
/** Hue: source hue with backdrop saturation and luminosity. */
|
|
35
|
+
Hue = 14,
|
|
36
|
+
/** Saturation: source saturation with backdrop hue and luminosity. */
|
|
37
|
+
Saturation = 15,
|
|
38
|
+
/** Color: source hue+saturation with backdrop luminosity. */
|
|
39
|
+
Color = 16,
|
|
40
|
+
/** Luminosity: source luminosity with backdrop hue+saturation. */
|
|
41
|
+
Luminosity = 17
|
|
24
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Returns `true` for blend modes that require the backdrop-aware compositor
|
|
45
|
+
* (shader-side blend + GPU texture copy). Modes 0–4 use fixed-function blending
|
|
46
|
+
* and return `false`. Modes 5–17 return `true`.
|
|
47
|
+
*/
|
|
48
|
+
export declare const isAdvancedBlendMode: (mode: BlendModes) => boolean;
|
|
25
49
|
/**
|
|
26
50
|
* Texture magnification and minification filter modes.
|
|
27
51
|
* Values are WebGL2 GLenum constants and are passed directly to the GPU sampler.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/rendering/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/rendering/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,oBAAY,UAAU;IACpB,MAAM,IAAI;IACV,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,MAAM,IAAI;IACV,gFAAgF;IAChF,MAAM,IAAI;IACV,gFAAgF;IAChF,OAAO,IAAI;IACX,qEAAqE;IACrE,OAAO,IAAI;IACX,iEAAiE;IACjE,UAAU,IAAI;IACd,8DAA8D;IAC9D,SAAS,IAAI;IACb,yEAAyE;IACzE,SAAS,KAAK;IACd,yCAAyC;IACzC,SAAS,KAAK;IACd,wDAAwD;IACxD,UAAU,KAAK;IACf,2DAA2D;IAC3D,SAAS,KAAK;IACd,+DAA+D;IAC/D,GAAG,KAAK;IACR,sEAAsE;IACtE,UAAU,KAAK;IACf,6DAA6D;IAC7D,KAAK,KAAK;IACV,kEAAkE;IAClE,UAAU,KAAK;CAChB;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,UAAU,KAAG,OAAoC,CAAC;AAE5F;;;;GAIG;AACH,oBAAY,UAAU;IACpB,OAAO,OAAS;IAChB,MAAM,OAAS;IACf,oBAAoB,OAAS;IAC7B,mBAAmB,OAAS;IAC5B,mBAAmB,OAAS;IAC5B,kBAAkB,OAAS;CAC5B;AAED;;;GAGG;AACH,oBAAY,SAAS;IACnB,MAAM,QAAS;IACf,WAAW,QAAS;IACpB,cAAc,QAAS;CACxB;AAED;;;GAGG;AACH,oBAAY,mBAAmB;IAC7B,MAAM,IAAS;IACf,KAAK,IAAS;IACd,QAAQ,IAAS;IACjB,SAAS,IAAS;IAClB,SAAS,IAAS;IAClB,aAAa,IAAS;IACtB,WAAW,IAAS;CACrB;AAED;;;GAGG;AACH,oBAAY,WAAW;IACrB,WAAW,QAAS;IACpB,kBAAkB,QAAS;IAC3B,cAAc,QAAS;IACvB,eAAe,QAAS;IACxB,uBAAuB,QAAS;IAChC,aAAa,QAAS;IACtB,eAAe,QAAS;IACxB,iBAAiB,QAAS;CAC3B;AAED;;;GAGG;AACH,oBAAY,WAAW;IACrB,UAAU,QAAS;IACnB,UAAU,QAAS;IACnB,UAAU,QAAS;IACnB,WAAW,QAAS;IACpB,WAAW,QAAS;IACpB,WAAW,QAAS;IACpB,UAAU,QAAS;IACnB,UAAU,QAAS;IACnB,UAAU,QAAS;CACpB;AAED;;;GAGG;AAEH,oBAAY,gBAAgB;IAC1B,GAAG,OAAS;IACZ,OAAO,QAAS;IAChB,OAAO,QAAS;IAChB,OAAO,QAAS;IAEhB,WAAW,OAAS;IACpB,eAAe,QAAS;IACxB,eAAe,QAAS;IACxB,eAAe,QAAS;IAExB,KAAK,OAAS;IACd,SAAS,QAAS;IAClB,SAAS,QAAS;IAClB,SAAS,QAAS;IAElB,IAAI,QAAS;IACb,QAAQ,QAAS;IACjB,QAAQ,QAAS;IACjB,QAAQ,QAAS;IAEjB,SAAS,QAAS;IAClB,SAAS,QAAS;IAClB,SAAS,QAAS;IAElB,SAAS,QAAS;CACnB"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Compositing blend modes applied when drawing a {@link Drawable} over the current render target.
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
|
+
* Modes 0–4 are implemented as fixed-function GPU blend equations (no texture
|
|
5
|
+
* capture required). Modes 5–17 use a backdrop-aware compositor: the content is
|
|
6
|
+
* first rendered off-screen, then composited over the captured backdrop via a
|
|
7
|
+
* W3C-compliant blend shader. Use {@link isAdvancedBlendMode} to test whether a
|
|
8
|
+
* mode requires the compositor path.
|
|
4
9
|
*/
|
|
5
10
|
var BlendModes;
|
|
6
11
|
(function (BlendModes) {
|
|
@@ -9,20 +14,39 @@ var BlendModes;
|
|
|
9
14
|
BlendModes[BlendModes["Subtract"] = 2] = "Subtract";
|
|
10
15
|
BlendModes[BlendModes["Multiply"] = 3] = "Multiply";
|
|
11
16
|
BlendModes[BlendModes["Screen"] = 4] = "Screen";
|
|
12
|
-
/**
|
|
13
|
-
* `min(src, dst)` per channel.
|
|
14
|
-
*
|
|
15
|
-
* KNOWN LIMITATION: implemented with the fixed-function `MIN` blend equation,
|
|
16
|
-
* which ignores the blend factors and therefore cannot account for source
|
|
17
|
-
* coverage. With premultiplied-alpha drawables, transparent texels (rgb = 0)
|
|
18
|
-
* resolve to `min(0, dst) = 0`, so transparent regions of a sprite turn black
|
|
19
|
-
* instead of showing the background. Reliable only for fully opaque sources;
|
|
20
|
-
* a coverage-correct version needs a shader-side blend. Tracked for a future
|
|
21
|
-
* render pass. {@link Lighten} is unaffected (`max(0, dst) = dst`).
|
|
22
|
-
*/
|
|
17
|
+
/** `min(src, dst)` per channel — coverage-correct via backdrop-aware shader. */
|
|
23
18
|
BlendModes[BlendModes["Darken"] = 5] = "Darken";
|
|
19
|
+
/** `max(src, dst)` per channel — coverage-correct via backdrop-aware shader. */
|
|
24
20
|
BlendModes[BlendModes["Lighten"] = 6] = "Lighten";
|
|
21
|
+
/** Overlay: darkens or lightens depending on backdrop luminosity. */
|
|
22
|
+
BlendModes[BlendModes["Overlay"] = 7] = "Overlay";
|
|
23
|
+
/** Color Dodge: brightens the backdrop to reflect the source. */
|
|
24
|
+
BlendModes[BlendModes["ColorDodge"] = 8] = "ColorDodge";
|
|
25
|
+
/** Color Burn: darkens the backdrop to reflect the source. */
|
|
26
|
+
BlendModes[BlendModes["ColorBurn"] = 9] = "ColorBurn";
|
|
27
|
+
/** Hard Light: strong Overlay with source and backdrop roles swapped. */
|
|
28
|
+
BlendModes[BlendModes["HardLight"] = 10] = "HardLight";
|
|
29
|
+
/** Soft Light: softer Overlay effect. */
|
|
30
|
+
BlendModes[BlendModes["SoftLight"] = 11] = "SoftLight";
|
|
31
|
+
/** Difference: absolute value of channel difference. */
|
|
32
|
+
BlendModes[BlendModes["Difference"] = 12] = "Difference";
|
|
33
|
+
/** Exclusion: lower-contrast alternative to Difference. */
|
|
34
|
+
BlendModes[BlendModes["Exclusion"] = 13] = "Exclusion";
|
|
35
|
+
/** Hue: source hue with backdrop saturation and luminosity. */
|
|
36
|
+
BlendModes[BlendModes["Hue"] = 14] = "Hue";
|
|
37
|
+
/** Saturation: source saturation with backdrop hue and luminosity. */
|
|
38
|
+
BlendModes[BlendModes["Saturation"] = 15] = "Saturation";
|
|
39
|
+
/** Color: source hue+saturation with backdrop luminosity. */
|
|
40
|
+
BlendModes[BlendModes["Color"] = 16] = "Color";
|
|
41
|
+
/** Luminosity: source luminosity with backdrop hue+saturation. */
|
|
42
|
+
BlendModes[BlendModes["Luminosity"] = 17] = "Luminosity";
|
|
25
43
|
})(BlendModes || (BlendModes = {}));
|
|
44
|
+
/**
|
|
45
|
+
* Returns `true` for blend modes that require the backdrop-aware compositor
|
|
46
|
+
* (shader-side blend + GPU texture copy). Modes 0–4 use fixed-function blending
|
|
47
|
+
* and return `false`. Modes 5–17 return `true`.
|
|
48
|
+
*/
|
|
49
|
+
const isAdvancedBlendMode = (mode) => mode >= BlendModes.Darken;
|
|
26
50
|
/**
|
|
27
51
|
* Texture magnification and minification filter modes.
|
|
28
52
|
* Values are WebGL2 GLenum constants and are passed directly to the GPU sampler.
|
|
@@ -121,5 +145,5 @@ var ShaderPrimitives;
|
|
|
121
145
|
ShaderPrimitives[ShaderPrimitives["Sampler2D"] = 35678] = "Sampler2D";
|
|
122
146
|
})(ShaderPrimitives || (ShaderPrimitives = {}));
|
|
123
147
|
|
|
124
|
-
export { BlendModes, BufferTypes, BufferUsage, RenderingPrimitives, ScaleModes, ShaderPrimitives, WrapModes };
|
|
148
|
+
export { BlendModes, BufferTypes, BufferUsage, RenderingPrimitives, ScaleModes, ShaderPrimitives, WrapModes, isAdvancedBlendMode };
|
|
125
149
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../src/rendering/types.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../src/rendering/types.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { RenderTexture } from '#rendering/texture/RenderTexture';
|
|
2
|
+
import type { Texture } from '#rendering/texture/Texture';
|
|
3
|
+
import { BlendModes } from '#rendering/types';
|
|
4
|
+
import type { WebGl2Backend } from './WebGl2Backend';
|
|
5
|
+
/**
|
|
6
|
+
* Single-quad backdrop-aware blend compositor used by
|
|
7
|
+
* `WebGl2Backend.composeWithBackdropBlend`. Samples the premultiplied source
|
|
8
|
+
* texture (slot 0) and the captured premultiplied backdrop texture (slot 1),
|
|
9
|
+
* computes the W3C blend for the requested {@link BlendModes}, and draws the
|
|
10
|
+
* result over the active target with normal (premultiplied source-over)
|
|
11
|
+
* blending — so the GPU composites the blended source over the backdrop already
|
|
12
|
+
* in the target.
|
|
13
|
+
*
|
|
14
|
+
* Mirrors {@link WebGl2MaskCompositor}'s structure; like it, this is invoked
|
|
15
|
+
* directly by the backend and never participates in renderer-registry dispatch.
|
|
16
|
+
*/
|
|
17
|
+
export declare class WebGl2BackdropBlendCompositor {
|
|
18
|
+
private readonly _shader;
|
|
19
|
+
private readonly _vertexData;
|
|
20
|
+
private readonly _float32View;
|
|
21
|
+
private readonly _sourceSamplerSlot;
|
|
22
|
+
private readonly _backdropSamplerSlot;
|
|
23
|
+
private readonly _modeValue;
|
|
24
|
+
private readonly _opaqueValue;
|
|
25
|
+
private _connection;
|
|
26
|
+
connect(backend: WebGl2Backend): void;
|
|
27
|
+
disconnect(): void;
|
|
28
|
+
/**
|
|
29
|
+
* Composite `source` over the active target's current contents under an
|
|
30
|
+
* advanced (backdrop-aware) blend mode. Captures the target's `[x, y, width,
|
|
31
|
+
* height]` region (view units) as the backdrop, runs the blend in a shader,
|
|
32
|
+
* and draws the blended source over the untouched backdrop with normal
|
|
33
|
+
* premultiplied source-over.
|
|
34
|
+
*/
|
|
35
|
+
compose(backend: WebGl2Backend, source: Texture | RenderTexture, x: number, y: number, width: number, height: number, blendMode: BlendModes): void;
|
|
36
|
+
private _drawBlend;
|
|
37
|
+
private _writeQuadVertices;
|
|
38
|
+
private _createBufferRuntime;
|
|
39
|
+
private _createVaoRuntime;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=WebGl2BackdropBlendCompositor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebGl2BackdropBlendCompositor.d.ts","sourceRoot":"","sources":["../../../../src/rendering/webgl2/WebGl2BackdropBlendCompositor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAA4B,MAAM,kBAAkB,CAAC;AAIxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAkBrD;;;;;;;;;;;GAWG;AACH,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoD;IAC5E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuD;IACnF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoD;IACjF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAmC;IACtE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAmC;IACxE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmC;IAC9D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE,OAAO,CAAC,WAAW,CAAkD;IAE9D,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAkCrC,UAAU,IAAI,IAAI;IAczB;;;;;;OAMG;IACI,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,GAAG,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,IAAI;IAuCzJ,OAAO,CAAC,UAAU;IAgDlB,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,iBAAiB;CA2C1B"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { Shader } from '../shader/Shader.js';
|
|
2
|
+
import { BufferTypes, BufferUsage, BlendModes } from '../types.js';
|
|
3
|
+
import fragmentSource from './glsl/backdrop-blend.frag.js';
|
|
4
|
+
import vertexSource from './glsl/backdrop-blend.vert.js';
|
|
5
|
+
import { WebGl2RenderBuffer } from './WebGl2RenderBuffer.js';
|
|
6
|
+
import { createWebGl2ShaderProgram } from './WebGl2ShaderProgram.js';
|
|
7
|
+
import { WebGl2VertexArrayObject } from './WebGl2VertexArrayObject.js';
|
|
8
|
+
|
|
9
|
+
// 4 floats per vertex: position(x, y) + texcoord(u, v).
|
|
10
|
+
const vertexStrideBytes = 16;
|
|
11
|
+
const quadIndices = new Uint16Array([0, 1, 2, 0, 2, 3]);
|
|
12
|
+
/**
|
|
13
|
+
* Single-quad backdrop-aware blend compositor used by
|
|
14
|
+
* `WebGl2Backend.composeWithBackdropBlend`. Samples the premultiplied source
|
|
15
|
+
* texture (slot 0) and the captured premultiplied backdrop texture (slot 1),
|
|
16
|
+
* computes the W3C blend for the requested {@link BlendModes}, and draws the
|
|
17
|
+
* result over the active target with normal (premultiplied source-over)
|
|
18
|
+
* blending — so the GPU composites the blended source over the backdrop already
|
|
19
|
+
* in the target.
|
|
20
|
+
*
|
|
21
|
+
* Mirrors {@link WebGl2MaskCompositor}'s structure; like it, this is invoked
|
|
22
|
+
* directly by the backend and never participates in renderer-registry dispatch.
|
|
23
|
+
*/
|
|
24
|
+
class WebGl2BackdropBlendCompositor {
|
|
25
|
+
_shader = new Shader(vertexSource, fragmentSource);
|
|
26
|
+
_vertexData = new ArrayBuffer(4 * vertexStrideBytes);
|
|
27
|
+
_float32View = new Float32Array(this._vertexData);
|
|
28
|
+
_sourceSamplerSlot = new Int32Array([0]);
|
|
29
|
+
_backdropSamplerSlot = new Int32Array([1]);
|
|
30
|
+
_modeValue = new Int32Array([0]);
|
|
31
|
+
_opaqueValue = new Float32Array([0]);
|
|
32
|
+
_connection = null;
|
|
33
|
+
connect(backend) {
|
|
34
|
+
if (this._connection !== null) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const gl = backend.context;
|
|
38
|
+
const vaoHandle = gl.createVertexArray();
|
|
39
|
+
if (vaoHandle === null) {
|
|
40
|
+
throw new Error('WebGl2BackdropBlendCompositor: could not create vertex array object.');
|
|
41
|
+
}
|
|
42
|
+
this._shader.connect(createWebGl2ShaderProgram(gl));
|
|
43
|
+
const bufferHandles = new Map();
|
|
44
|
+
const indexBuffer = new WebGl2RenderBuffer(BufferTypes.ElementArrayBuffer, quadIndices, BufferUsage.StaticDraw).connect(this._createBufferRuntime(gl, bufferHandles));
|
|
45
|
+
const vertexBuffer = new WebGl2RenderBuffer(BufferTypes.ArrayBuffer, this._vertexData, BufferUsage.DynamicDraw).connect(this._createBufferRuntime(gl, bufferHandles));
|
|
46
|
+
// Force shader finalize so getAttribute() below sees a populated attribute table.
|
|
47
|
+
this._shader.sync();
|
|
48
|
+
const vao = new WebGl2VertexArrayObject()
|
|
49
|
+
.addIndex(indexBuffer)
|
|
50
|
+
.addAttribute(vertexBuffer, this._shader.getAttribute('a_position'), gl.FLOAT, false, vertexStrideBytes, 0)
|
|
51
|
+
.addAttribute(vertexBuffer, this._shader.getAttribute('a_texcoord'), gl.FLOAT, false, vertexStrideBytes, 8)
|
|
52
|
+
.connect(this._createVaoRuntime(gl, vaoHandle));
|
|
53
|
+
this._connection = { gl, vaoHandle, vao, indexBuffer, vertexBuffer, bufferHandles };
|
|
54
|
+
}
|
|
55
|
+
disconnect() {
|
|
56
|
+
const connection = this._connection;
|
|
57
|
+
if (connection === null) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
connection.indexBuffer.destroy();
|
|
61
|
+
connection.vertexBuffer.destroy();
|
|
62
|
+
connection.vao.destroy();
|
|
63
|
+
this._shader.disconnect();
|
|
64
|
+
this._connection = null;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Composite `source` over the active target's current contents under an
|
|
68
|
+
* advanced (backdrop-aware) blend mode. Captures the target's `[x, y, width,
|
|
69
|
+
* height]` region (view units) as the backdrop, runs the blend in a shader,
|
|
70
|
+
* and draws the blended source over the untouched backdrop with normal
|
|
71
|
+
* premultiplied source-over.
|
|
72
|
+
*/
|
|
73
|
+
compose(backend, source, x, y, width, height, blendMode) {
|
|
74
|
+
if (this._connection === null) {
|
|
75
|
+
throw new Error('WebGl2BackdropBlendCompositor: not connected.');
|
|
76
|
+
}
|
|
77
|
+
if (width <= 0 || height <= 0) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const gl = backend.context;
|
|
81
|
+
const target = backend.renderTarget;
|
|
82
|
+
const scaleX = target.root && target.width > 0 ? gl.drawingBufferWidth / target.width : 1;
|
|
83
|
+
const scaleY = target.root && target.height > 0 ? gl.drawingBufferHeight / target.height : 1;
|
|
84
|
+
const px = Math.max(0, Math.floor(x * scaleX));
|
|
85
|
+
const py = Math.max(0, Math.floor(gl.drawingBufferHeight - (y + height) * scaleY));
|
|
86
|
+
const backdrop = backend.acquireRenderTexture(width, height);
|
|
87
|
+
const cw = Math.min(backdrop.width, Math.max(0, Math.round(width * scaleX)));
|
|
88
|
+
const ch = Math.min(backdrop.height, Math.max(0, Math.round(height * scaleY)));
|
|
89
|
+
// An opaque framebuffer (the default alpha-less root canvas) reports a
|
|
90
|
+
// captured backdrop alpha of 0; treat such a backdrop as fully covered.
|
|
91
|
+
const opaqueBackdrop = target.root && !(gl.getContextAttributes()?.alpha ?? false);
|
|
92
|
+
try {
|
|
93
|
+
// Capture the target region into the backdrop via blit; copyTexSubImage2D
|
|
94
|
+
// reads the opaque default framebuffer as black, so blit is the reliable
|
|
95
|
+
// path for the on-screen root canvas.
|
|
96
|
+
gl.bindFramebuffer(gl.READ_FRAMEBUFFER, backend._renderTargetFramebuffer(target));
|
|
97
|
+
gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, backend._renderTargetFramebuffer(backdrop));
|
|
98
|
+
gl.blitFramebuffer(px, py, px + cw, py + ch, 0, 0, cw, ch, gl.COLOR_BUFFER_BIT, gl.NEAREST);
|
|
99
|
+
gl.bindFramebuffer(gl.READ_FRAMEBUFFER, null);
|
|
100
|
+
gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, null);
|
|
101
|
+
backend._rebindActiveTarget();
|
|
102
|
+
this._drawBlend(backend, source, backdrop, x, y, width, height, blendMode, opaqueBackdrop);
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
backend.releaseRenderTexture(backdrop);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
_drawBlend(backend, source, backdrop, x, y, width, height, blendMode, opaqueBackdrop) {
|
|
109
|
+
const connection = this._connection;
|
|
110
|
+
if (connection === null) {
|
|
111
|
+
throw new Error('WebGl2BackdropBlendCompositor: not connected.');
|
|
112
|
+
}
|
|
113
|
+
this._writeQuadVertices(x, y, x + width, y + height);
|
|
114
|
+
backend.bindShader(this._shader);
|
|
115
|
+
const projection = backend.view.getTransform().toArray(false);
|
|
116
|
+
this._modeValue[0] = blendMode;
|
|
117
|
+
this._opaqueValue[0] = opaqueBackdrop ? 1 : 0;
|
|
118
|
+
this._shader.getUniform('u_projection').setValue(projection);
|
|
119
|
+
this._shader.getUniform('u_source').setValue(this._sourceSamplerSlot);
|
|
120
|
+
this._shader.getUniform('u_backdrop').setValue(this._backdropSamplerSlot);
|
|
121
|
+
this._shader.getUniform('u_mode').setValue(this._modeValue);
|
|
122
|
+
this._shader.getUniform('u_opaqueBackdrop').setValue(this._opaqueValue);
|
|
123
|
+
this._shader.sync();
|
|
124
|
+
backend.bindTexture(source, 0);
|
|
125
|
+
backend.bindTexture(backdrop, 1);
|
|
126
|
+
// The blend math is in the shader; composite the blended source over the
|
|
127
|
+
// backdrop already in the target with normal premultiplied source-over.
|
|
128
|
+
backend.setBlendMode(BlendModes.Normal);
|
|
129
|
+
backend.bindVertexArrayObject(connection.vao);
|
|
130
|
+
connection.vertexBuffer.upload(this._float32View);
|
|
131
|
+
connection.vao.draw(6, 0);
|
|
132
|
+
backend.stats.batches++;
|
|
133
|
+
backend.stats.drawCalls++;
|
|
134
|
+
backend.bindTexture(null, 1);
|
|
135
|
+
}
|
|
136
|
+
_writeQuadVertices(left, top, right, bottom) {
|
|
137
|
+
const view = this._float32View;
|
|
138
|
+
// Vertex 0: top-left (UV 0, 0)
|
|
139
|
+
view[0] = left;
|
|
140
|
+
view[1] = top;
|
|
141
|
+
view[2] = 0;
|
|
142
|
+
view[3] = 0;
|
|
143
|
+
// Vertex 1: top-right (UV 1, 0)
|
|
144
|
+
view[4] = right;
|
|
145
|
+
view[5] = top;
|
|
146
|
+
view[6] = 1;
|
|
147
|
+
view[7] = 0;
|
|
148
|
+
// Vertex 2: bottom-right (UV 1, 1)
|
|
149
|
+
view[8] = right;
|
|
150
|
+
view[9] = bottom;
|
|
151
|
+
view[10] = 1;
|
|
152
|
+
view[11] = 1;
|
|
153
|
+
// Vertex 3: bottom-left (UV 0, 1)
|
|
154
|
+
view[12] = left;
|
|
155
|
+
view[13] = bottom;
|
|
156
|
+
view[14] = 0;
|
|
157
|
+
view[15] = 1;
|
|
158
|
+
}
|
|
159
|
+
_createBufferRuntime(gl, handles) {
|
|
160
|
+
const handle = gl.createBuffer();
|
|
161
|
+
if (handle === null) {
|
|
162
|
+
throw new Error('WebGl2BackdropBlendCompositor: could not create render buffer.');
|
|
163
|
+
}
|
|
164
|
+
return {
|
|
165
|
+
bind: (buffer) => {
|
|
166
|
+
gl.bindBuffer(buffer.type, handle);
|
|
167
|
+
},
|
|
168
|
+
upload: (buffer) => {
|
|
169
|
+
const data = buffer.data;
|
|
170
|
+
gl.bindBuffer(buffer.type, handle);
|
|
171
|
+
gl.bufferData(buffer.type, data, buffer.usage);
|
|
172
|
+
handles.set(buffer, handle);
|
|
173
|
+
},
|
|
174
|
+
destroy: (buffer) => {
|
|
175
|
+
gl.deleteBuffer(handle);
|
|
176
|
+
handles.delete(buffer);
|
|
177
|
+
buffer.disconnect();
|
|
178
|
+
},
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
_createVaoRuntime(gl, vaoHandle) {
|
|
182
|
+
let appliedVersion = -1;
|
|
183
|
+
return {
|
|
184
|
+
bind: (vao) => {
|
|
185
|
+
gl.bindVertexArray(vaoHandle);
|
|
186
|
+
if (appliedVersion !== vao.version) {
|
|
187
|
+
let lastBuffer = null;
|
|
188
|
+
for (const attribute of vao.attributes) {
|
|
189
|
+
if (lastBuffer !== attribute.buffer) {
|
|
190
|
+
attribute.buffer.bind();
|
|
191
|
+
lastBuffer = attribute.buffer;
|
|
192
|
+
}
|
|
193
|
+
gl.vertexAttribPointer(attribute.location, attribute.size, attribute.type, attribute.normalized, attribute.stride, attribute.start);
|
|
194
|
+
gl.enableVertexAttribArray(attribute.location);
|
|
195
|
+
}
|
|
196
|
+
if (vao.indexBuffer) {
|
|
197
|
+
vao.indexBuffer.bind();
|
|
198
|
+
}
|
|
199
|
+
appliedVersion = vao.version;
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
unbind: () => {
|
|
203
|
+
gl.bindVertexArray(null);
|
|
204
|
+
},
|
|
205
|
+
draw: (vao, size, start, type) => {
|
|
206
|
+
if (vao.indexBuffer) {
|
|
207
|
+
gl.drawElements(type, size, gl.UNSIGNED_SHORT, start);
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
gl.drawArrays(type, start, size);
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
destroy: (vao) => {
|
|
214
|
+
gl.deleteVertexArray(vaoHandle);
|
|
215
|
+
vao.disconnect();
|
|
216
|
+
},
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
export { WebGl2BackdropBlendCompositor };
|
|
222
|
+
//# sourceMappingURL=WebGl2BackdropBlendCompositor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebGl2BackdropBlendCompositor.js","sources":["../../../../../src/rendering/webgl2/WebGl2BackdropBlendCompositor.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -55,6 +55,8 @@ export declare class WebGl2Backend implements RenderBackend {
|
|
|
55
55
|
private readonly _clipPointB;
|
|
56
56
|
private readonly _maskCompositor;
|
|
57
57
|
private _maskCompositorConnected;
|
|
58
|
+
private readonly _backdropBlendCompositor;
|
|
59
|
+
private _backdropBlendCompositorConnected;
|
|
58
60
|
private readonly _stencilClipper;
|
|
59
61
|
private readonly _stencilStates;
|
|
60
62
|
private _stencilClipperConnected;
|
|
@@ -79,6 +81,8 @@ export declare class WebGl2Backend implements RenderBackend {
|
|
|
79
81
|
private _transformTextureCount;
|
|
80
82
|
private _activeDrawCommand;
|
|
81
83
|
private _drawPlanDepth;
|
|
84
|
+
private readonly _planBaseStack;
|
|
85
|
+
private readonly _planHashStack;
|
|
82
86
|
constructor(app: Application);
|
|
83
87
|
get context(): WebGL2RenderingContext;
|
|
84
88
|
get renderTarget(): RenderTarget;
|
|
@@ -103,8 +107,10 @@ export declare class WebGl2Backend implements RenderBackend {
|
|
|
103
107
|
get _passCoordinator(): WebGl2PassCoordinator;
|
|
104
108
|
initialize(): Promise<this>;
|
|
105
109
|
resetStats(): this;
|
|
110
|
+
/** Frame-global slot base the plan builder indexes from. @internal */
|
|
111
|
+
get transformBufferCount(): number;
|
|
106
112
|
/** @internal */
|
|
107
|
-
_beginDrawPlan(
|
|
113
|
+
_beginDrawPlan(_nodeCount: number): void;
|
|
108
114
|
/** @internal */
|
|
109
115
|
_prepareRenderGroupUpload(entries: readonly ScopeEntry[], startIndex: number, count: number): void;
|
|
110
116
|
/** @internal */
|
|
@@ -159,12 +165,39 @@ export declare class WebGl2Backend implements RenderBackend {
|
|
|
159
165
|
pushStencilClip(shape: Geometry, transform: Matrix): this;
|
|
160
166
|
popStencilClip(): this;
|
|
161
167
|
composeWithAlphaMask(content: Texture | RenderTexture, mask: Texture | RenderTexture, x: number, y: number, width: number, height: number, blendMode: BlendModes): this;
|
|
168
|
+
composeWithBackdropBlend(source: RenderTexture, x: number, y: number, width: number, height: number, mode: BlendModes): this;
|
|
169
|
+
/**
|
|
170
|
+
* Return the GL framebuffer for `target`, preparing the render-target state so
|
|
171
|
+
* the texture is attached. Used internally by {@link WebGl2BackdropBlendCompositor}
|
|
172
|
+
* for framebuffer blits. Null for the root (default) framebuffer.
|
|
173
|
+
* @internal
|
|
174
|
+
*/
|
|
175
|
+
_renderTargetFramebuffer(target: RenderTarget): WebGLFramebuffer | null;
|
|
176
|
+
/**
|
|
177
|
+
* Re-bind the currently active render target as the GL DRAW framebuffer and
|
|
178
|
+
* restore the viewport. Called by {@link WebGl2BackdropBlendCompositor} after
|
|
179
|
+
* it unbinds the framebuffer for a blit operation.
|
|
180
|
+
* @internal
|
|
181
|
+
*/
|
|
182
|
+
_rebindActiveTarget(): void;
|
|
162
183
|
acquireRenderTexture(width: number, height: number): RenderTexture;
|
|
163
184
|
releaseRenderTexture(texture: RenderTexture): this;
|
|
164
185
|
setView(view: View | null): this;
|
|
165
186
|
bindVertexArrayObject(vao: WebGl2VertexArrayObject | null): this;
|
|
166
187
|
bindShader(shader: Shader | null): this;
|
|
167
188
|
bindTexture(texture: Texture | RenderTexture | null, unit?: number): this;
|
|
189
|
+
/**
|
|
190
|
+
* Make `unit` the active texture unit through the backend's unit cache.
|
|
191
|
+
*
|
|
192
|
+
* Renderers that bind a *raw* `WebGLTexture` to a unit (e.g. the text
|
|
193
|
+
* renderer's private node-data texture) must route the unit switch through
|
|
194
|
+
* here instead of calling `gl.activeTexture` directly — otherwise the cache
|
|
195
|
+
* goes stale and a later {@link bindTexture} can skip its own `activeTexture`
|
|
196
|
+
* call, binding to the wrong unit. After this returns the caller may issue its
|
|
197
|
+
* own raw `gl.bindTexture` on the now-active unit.
|
|
198
|
+
* @internal
|
|
199
|
+
*/
|
|
200
|
+
setActiveTextureUnit(unit: number): this;
|
|
168
201
|
/** @internal */
|
|
169
202
|
bindTransformBufferTexture(unit: number, minCount: number): this;
|
|
170
203
|
setBlendMode(blendMode: BlendModes | null): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebGl2Backend.d.ts","sourceRoot":"","sources":["../../../../src/rendering/webgl2/WebGl2Backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAkD,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,KAAK,WAAW,EAAmD,MAAM,+BAA+B,CAAC;AAClH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"WebGl2Backend.d.ts","sourceRoot":"","sources":["../../../../src/rendering/webgl2/WebGl2Backend.ts"],"names":[],"mappings":"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"}
|