@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
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pass-scoped {@link DrawContext}: the active render target and view for a
|
|
3
|
+
* {@link CallbackRenderPass} callback. `clear`/`render`/`renderTo` route through
|
|
4
|
+
* the owning {@link RenderingContext} (and its pass coordinator), so they act on
|
|
5
|
+
* THIS pass's target and never reset the active view or leak onto another
|
|
6
|
+
* target. Default view for `render`/`draw*` is the pass view — not the world
|
|
7
|
+
* view — so a callback inside an off-screen redirect renders correctly without
|
|
8
|
+
* passing `{ view }` explicitly.
|
|
9
|
+
*
|
|
10
|
+
* Use {@link backend} only for raw draws or GPU state; switching target / view /
|
|
11
|
+
* clear through it bypasses the coordinator (the leak this type prevents).
|
|
12
|
+
* @advanced
|
|
13
|
+
*/
|
|
14
|
+
class PassContext {
|
|
15
|
+
_context;
|
|
16
|
+
target;
|
|
17
|
+
view;
|
|
18
|
+
constructor(_context,
|
|
19
|
+
/** The target this pass draws into (read-only). */
|
|
20
|
+
target,
|
|
21
|
+
/** The view this pass renders with (read-only). */
|
|
22
|
+
view) {
|
|
23
|
+
this._context = _context;
|
|
24
|
+
this.target = target;
|
|
25
|
+
this.view = view;
|
|
26
|
+
}
|
|
27
|
+
get backend() {
|
|
28
|
+
return this._context.backend;
|
|
29
|
+
}
|
|
30
|
+
clear(color) {
|
|
31
|
+
this._context.clear(color);
|
|
32
|
+
}
|
|
33
|
+
render(node, options) {
|
|
34
|
+
this._context.render(node, { view: options?.view ?? this.view });
|
|
35
|
+
}
|
|
36
|
+
renderTo(node, options) {
|
|
37
|
+
this._context.renderTo(node, options);
|
|
38
|
+
}
|
|
39
|
+
drawGeometry(geometry, transform, options) {
|
|
40
|
+
this._context.drawGeometry(geometry, transform, { ...options, view: options?.view ?? this.view });
|
|
41
|
+
}
|
|
42
|
+
drawBatch(batch, options) {
|
|
43
|
+
this._context.drawBatch(batch, { ...options, view: options?.view ?? this.view });
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { PassContext };
|
|
48
|
+
//# sourceMappingURL=PassContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PassContext.js","sources":["../../../../src/rendering/PassContext.ts"],"sourcesContent":[null],"names":[],"mappings":"AAYA;;;;;;;;;;;;AAYG;MACU,WAAW,CAAA;AAEH,IAAA,QAAA;AAED,IAAA,MAAA;AAEA,IAAA,IAAA;AALlB,IAAA,WAAA,CACmB,QAA0B;;IAE3B,MAAoB;;IAEpB,IAAU,EAAA;QAJT,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAET,IAAA,CAAA,MAAM,GAAN,MAAM;QAEN,IAAA,CAAA,IAAI,GAAJ,IAAI;IACnB;AAEH,IAAA,IAAW,OAAO,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO;IAC9B;AAEO,IAAA,KAAK,CAAC,KAAY,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;IAC5B;IAEO,MAAM,CAAC,IAAgB,EAAE,OAAuB,EAAA;AACrD,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IAClE;IAEO,QAAQ,CAAC,IAAgB,EAAE,OAAwB,EAAA;QACxD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvC;AAEO,IAAA,YAAY,CAAC,QAAkB,EAAE,SAAiB,EAAE,OAA6B,EAAA;QACtF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IACnG;IAEO,SAAS,CAAC,KAAkB,EAAE,OAA0B,EAAA;QAC7D,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IAClF;AACD;;;;"}
|
|
@@ -33,6 +33,12 @@ export interface RenderBackend {
|
|
|
33
33
|
readonly view: View;
|
|
34
34
|
readonly renderTarget: RenderTarget;
|
|
35
35
|
readonly stats: RenderStats;
|
|
36
|
+
/**
|
|
37
|
+
* The colour the canvas root target is cleared to each frame. Mutable in
|
|
38
|
+
* place (`backend.clearColor.copy(...)`) — the new value takes effect on the
|
|
39
|
+
* next frame. Both backends initialise it from `app.options.clearColor`.
|
|
40
|
+
*/
|
|
41
|
+
readonly clearColor: Color;
|
|
36
42
|
initialize(): Promise<this>;
|
|
37
43
|
resetStats(): this;
|
|
38
44
|
clear(color?: Color): this;
|
|
@@ -75,6 +81,14 @@ export interface RenderBackend {
|
|
|
75
81
|
* non-Rectangle `MaskSource` paths on `RenderNode.mask`.
|
|
76
82
|
*/
|
|
77
83
|
composeWithAlphaMask(content: RenderTexture, mask: Texture | RenderTexture, x: number, y: number, width: number, height: number, blendMode: BlendModes): this;
|
|
84
|
+
/**
|
|
85
|
+
* Composite `source` over the active render target under an advanced
|
|
86
|
+
* (backdrop-aware) blend mode. Captures the target's `[x, y, width, height]`
|
|
87
|
+
* region, runs the W3C blend formula in a shader, and draws the result back
|
|
88
|
+
* with normal premultiplied source-over. Used internally by the render-effect
|
|
89
|
+
* executor for modes where {@link isAdvancedBlendMode} is `true`.
|
|
90
|
+
*/
|
|
91
|
+
composeWithBackdropBlend(source: RenderTexture, x: number, y: number, width: number, height: number, mode: BlendModes): this;
|
|
78
92
|
draw(drawable: Drawable): this;
|
|
79
93
|
/**
|
|
80
94
|
* Submit an explicit instanced batch: draw `mesh`'s geometry once with `count`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderBackend.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderBackend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC3D,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"RenderBackend.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderNode.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAG1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"RenderNode.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,11 @@ import { SceneNode } from '../core/SceneNode.js';
|
|
|
3
3
|
import { Signal } from '../core/Signal.js';
|
|
4
4
|
import { Rectangle } from '../math/Rectangle.js';
|
|
5
5
|
import { playRenderTree } from './plan/playRenderTree.js';
|
|
6
|
+
import { isAdvancedBlendMode, BlendModes } from './types.js';
|
|
6
7
|
import './plan/RenderCommand.js';
|
|
7
8
|
import './plan/RenderScope.js';
|
|
8
9
|
import { RenderTexture } from './texture/RenderTexture.js';
|
|
9
10
|
import { BackendTargetPass } from './BackendTargetPass.js';
|
|
10
|
-
import { BlendModes } from './types.js';
|
|
11
11
|
import { View } from './View.js';
|
|
12
12
|
|
|
13
13
|
const isDestroyableFilter = (filter) => 'destroy' in filter && typeof filter.destroy === 'function';
|
|
@@ -304,7 +304,7 @@ class RenderNode extends SceneNode {
|
|
|
304
304
|
}
|
|
305
305
|
/** @internal */
|
|
306
306
|
_renderPlanHasBarrierEffects() {
|
|
307
|
-
return this._filters.length > 0 || this._mask !== null || this._cacheAsBitmap || this.clip;
|
|
307
|
+
return this._filters.length > 0 || this._mask !== null || this._cacheAsBitmap || this.clip || isAdvancedBlendMode(this._renderPlanGetBlendMode());
|
|
308
308
|
}
|
|
309
309
|
/** @internal */
|
|
310
310
|
_renderPlanGetMaskSource() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderNode.js","sources":["../../../../src/rendering/RenderNode.ts"],"sourcesContent":[null],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"RenderNode.js","sources":["../../../../src/rendering/RenderNode.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { RenderPass, type RenderPassOptions } from './RenderPass';
|
|
|
6
6
|
import type { View } from './View';
|
|
7
7
|
/** Options for {@link RenderNodePass}. @advanced */
|
|
8
8
|
export interface RenderNodePassOptions extends RenderPassOptions {
|
|
9
|
-
/** View to render the node with. Default: `target.view` when `target` is set, else `context.
|
|
9
|
+
/** View to render the node with. Default: `target.view` when `target` is set, else `context.view`. */
|
|
10
10
|
readonly view?: View;
|
|
11
11
|
/**
|
|
12
12
|
* Off-screen destination. When set, the node is rendered into this {@link RenderTexture} through the internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderNodePass.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderNodePass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGtE,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,oDAAoD;AACpD,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,
|
|
1
|
+
{"version":3,"file":"RenderNodePass.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderNodePass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGtE,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,oDAAoD;AACpD,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,sGAAsG;IACtG,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACvC,uHAAuH;IACvH,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;gBAElC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAiBpD,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;CAazD"}
|
|
@@ -5,13 +5,14 @@ import type { Matrix } from '#math/Matrix';
|
|
|
5
5
|
import type { Geometry } from '#rendering/geometry/Geometry';
|
|
6
6
|
import type { MeshMaterial } from '#rendering/material/MeshMaterial';
|
|
7
7
|
import { RenderTexture } from '#rendering/texture/RenderTexture';
|
|
8
|
-
import {
|
|
8
|
+
import type { DrawContext, RenderToOptions } from './DrawContext';
|
|
9
9
|
import { type RenderBackend } from './RenderBackend';
|
|
10
10
|
import { type RenderBatch } from './RenderBatch';
|
|
11
11
|
import { type RenderNode } from './RenderNode';
|
|
12
12
|
import { type RenderStats } from './RenderStats';
|
|
13
13
|
import { View } from './View';
|
|
14
|
-
|
|
14
|
+
/** Options for {@link RenderingContext.capture} — allocates a new RenderTexture. */
|
|
15
|
+
export interface CaptureOptions {
|
|
15
16
|
width: number;
|
|
16
17
|
height: number;
|
|
17
18
|
clearColor?: Color;
|
|
@@ -45,28 +46,33 @@ export interface DrawBatchOptions {
|
|
|
45
46
|
*
|
|
46
47
|
* The conceptual model is "the context renders the node":
|
|
47
48
|
* context.render(node) // into the active target (canvas by default)
|
|
48
|
-
* context.render(node, { view }) // override view (
|
|
49
|
-
* context.renderTo(node,
|
|
49
|
+
* context.render(node, { view }) // override view (the world view, screenView, etc.)
|
|
50
|
+
* context.renderTo(node, { target }) // into a caller-owned off-screen target (per-frame)
|
|
51
|
+
* context.capture(node, { width, height }) // into a freshly allocated RenderTexture
|
|
50
52
|
* @stable
|
|
51
53
|
*/
|
|
52
|
-
export declare class RenderingContext implements System {
|
|
54
|
+
export declare class RenderingContext implements System, DrawContext {
|
|
53
55
|
/** App-systems tick band — rendering last (camera + render-plan prep). @internal */
|
|
54
56
|
readonly order = 500;
|
|
55
57
|
private readonly _backend;
|
|
56
|
-
private
|
|
58
|
+
private _view;
|
|
57
59
|
private readonly _screenView;
|
|
58
60
|
/** Lazily-created pooled drawable reused by every {@link drawGeometry} call. */
|
|
59
61
|
private _immediateMesh;
|
|
60
62
|
/** Lazily-created pooled geometry/look source reused by every {@link drawBatch} call. */
|
|
61
63
|
private _batchMesh;
|
|
64
|
+
/** Views explicitly pinned for per-frame update via {@link trackView} (escape hatch for views ticked but never rendered). */
|
|
65
|
+
private readonly _trackedViews;
|
|
66
|
+
/** Views rendered since the last {@link update} — auto-advanced then cleared each frame, so a custom view's follow/shake ticks with no manual bookkeeping. */
|
|
67
|
+
private readonly _renderedViews;
|
|
62
68
|
constructor(backend: RenderBackend);
|
|
63
69
|
/**
|
|
64
|
-
* The active
|
|
65
|
-
* backend view. Replace with a custom `
|
|
66
|
-
* zoom, bounds, or split-screen viewport behavior.
|
|
70
|
+
* The active world {@link View} — the default for {@link render}. Defaults to
|
|
71
|
+
* a view matching the initial backend view. Replace with a custom `View` for
|
|
72
|
+
* follow, zoom, bounds, or split-screen viewport behavior.
|
|
67
73
|
*/
|
|
68
|
-
get
|
|
69
|
-
set
|
|
74
|
+
get view(): View;
|
|
75
|
+
set view(view: View);
|
|
70
76
|
/**
|
|
71
77
|
* A RenderingContext-managed screen-space {@link View} suitable for UI
|
|
72
78
|
* overlays. Center and size are reset to match canvas logical dimensions
|
|
@@ -76,15 +82,26 @@ export declare class RenderingContext implements System {
|
|
|
76
82
|
* Never follows, shakes, or rotates by default.
|
|
77
83
|
*/
|
|
78
84
|
get screenView(): View;
|
|
79
|
-
/**
|
|
80
|
-
|
|
85
|
+
/**
|
|
86
|
+
* Register a custom {@link View} (e.g. a picture-in-picture or minimap view)
|
|
87
|
+
* so {@link update} advances its `follow`/`shake`/bounds each frame, alongside
|
|
88
|
+
* the active {@link view}. The active view and {@link screenView} are managed
|
|
89
|
+
* automatically and need not be tracked.
|
|
90
|
+
*
|
|
91
|
+
* The view is caller-owned: call {@link untrackView} before discarding it,
|
|
92
|
+
* otherwise a `follow` target keeps it (and its target node) referenced.
|
|
93
|
+
*/
|
|
94
|
+
trackView(view: View): void;
|
|
95
|
+
/** Stop advancing a previously {@link trackView}-ed view. No-op if absent. */
|
|
96
|
+
untrackView(view: View): void;
|
|
81
97
|
/**
|
|
82
98
|
* Advance follow, shake, and bounds-constraint animations on the active
|
|
83
|
-
*
|
|
99
|
+
* {@link view}, every view rendered last frame (automatic), and any
|
|
100
|
+
* {@link trackView}-ed view. Ticked once per frame via {@link Application.systems}.
|
|
84
101
|
*/
|
|
85
102
|
update(delta: Time): void;
|
|
86
103
|
/**
|
|
87
|
-
* Destroy the resources this context owns — the active {@link
|
|
104
|
+
* Destroy the resources this context owns — the active {@link View} and the
|
|
88
105
|
* screen-space {@link View}. The {@link RenderBackend} is owned by the
|
|
89
106
|
* Application and destroyed separately.
|
|
90
107
|
* @internal — invoked via Application.systems on teardown.
|
|
@@ -112,7 +129,21 @@ export declare class RenderingContext implements System {
|
|
|
112
129
|
* Saves and restores the active render target and view so the caller's
|
|
113
130
|
* rendering state is undisturbed.
|
|
114
131
|
*/
|
|
115
|
-
|
|
132
|
+
capture(node: RenderNode, options: CaptureOptions): RenderTexture;
|
|
133
|
+
/**
|
|
134
|
+
* Clear the active render target to `color`. Routes through the pass
|
|
135
|
+
* coordinator so it respects the clear-vs-load policy and never leaks the
|
|
136
|
+
* clear onto another target. Falls back to a raw backend clear when no
|
|
137
|
+
* coordinator is present (test stubs).
|
|
138
|
+
*/
|
|
139
|
+
clear(color: Color): void;
|
|
140
|
+
/**
|
|
141
|
+
* Render `node` into a caller-owned {@link RenderTexture} that is reused across
|
|
142
|
+
* frames — the per-frame, allocation-free counterpart to {@link capture}. The
|
|
143
|
+
* target and view are supplied by the caller; the view defaults to the
|
|
144
|
+
* target's own view. Save/restore is handled by the pass coordinator.
|
|
145
|
+
*/
|
|
146
|
+
renderTo(node: RenderNode, options: RenderToOptions): void;
|
|
116
147
|
/**
|
|
117
148
|
* Immediately draw a single {@link Geometry} with `transform` as its world
|
|
118
149
|
* matrix — no retained {@link RenderNode} required. Useful for procedural or
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderingContext.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderingContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAKrE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"RenderingContext.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderingContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,15 +2,14 @@ import { ImmediateMesh } from './mesh/ImmediateMesh.js';
|
|
|
2
2
|
import { StencilAttachmentMode } from './pass/RenderPassDescriptor.js';
|
|
3
3
|
import { playRenderTree } from './plan/playRenderTree.js';
|
|
4
4
|
import { RenderTexture } from './texture/RenderTexture.js';
|
|
5
|
-
import { Camera } from './Camera.js';
|
|
6
5
|
import '../core/Color.js';
|
|
7
6
|
import '../math/Matrix.js';
|
|
8
7
|
import '../core/SceneNode.js';
|
|
9
8
|
import '../math/Size.js';
|
|
10
9
|
import '../math/Rectangle.js';
|
|
10
|
+
import './types.js';
|
|
11
11
|
import './plan/RenderCommand.js';
|
|
12
12
|
import './plan/RenderScope.js';
|
|
13
|
-
import './types.js';
|
|
14
13
|
import { View } from './View.js';
|
|
15
14
|
|
|
16
15
|
/**
|
|
@@ -20,45 +19,50 @@ import { View } from './View.js';
|
|
|
20
19
|
*
|
|
21
20
|
* The conceptual model is "the context renders the node":
|
|
22
21
|
* context.render(node) // into the active target (canvas by default)
|
|
23
|
-
* context.render(node, { view }) // override view (
|
|
24
|
-
* context.renderTo(node,
|
|
22
|
+
* context.render(node, { view }) // override view (the world view, screenView, etc.)
|
|
23
|
+
* context.renderTo(node, { target }) // into a caller-owned off-screen target (per-frame)
|
|
24
|
+
* context.capture(node, { width, height }) // into a freshly allocated RenderTexture
|
|
25
25
|
* @stable
|
|
26
26
|
*/
|
|
27
27
|
class RenderingContext {
|
|
28
28
|
/** App-systems tick band — rendering last (camera + render-plan prep). @internal */
|
|
29
29
|
order = 500;
|
|
30
30
|
_backend;
|
|
31
|
-
|
|
31
|
+
_view;
|
|
32
32
|
_screenView;
|
|
33
33
|
/** Lazily-created pooled drawable reused by every {@link drawGeometry} call. */
|
|
34
34
|
_immediateMesh = null;
|
|
35
35
|
/** Lazily-created pooled geometry/look source reused by every {@link drawBatch} call. */
|
|
36
36
|
_batchMesh = null;
|
|
37
|
+
/** Views explicitly pinned for per-frame update via {@link trackView} (escape hatch for views ticked but never rendered). */
|
|
38
|
+
_trackedViews = new Set();
|
|
39
|
+
/** Views rendered since the last {@link update} — auto-advanced then cleared each frame, so a custom view's follow/shake ticks with no manual bookkeeping. */
|
|
40
|
+
_renderedViews = new Set();
|
|
37
41
|
constructor(backend) {
|
|
38
42
|
this._backend = backend;
|
|
39
43
|
const viewWidth = backend.view?.width ?? 0;
|
|
40
44
|
const viewHeight = backend.view?.height ?? 0;
|
|
41
45
|
const viewCenterX = backend.view?.center?.x ?? viewWidth / 2;
|
|
42
46
|
const viewCenterY = backend.view?.center?.y ?? viewHeight / 2;
|
|
43
|
-
this.
|
|
47
|
+
this._view = View.from({
|
|
44
48
|
center: { x: viewCenterX, y: viewCenterY },
|
|
45
49
|
size: { width: viewWidth, height: viewHeight },
|
|
46
50
|
});
|
|
47
51
|
this._screenView = new View(viewCenterX, viewCenterY, viewWidth, viewHeight);
|
|
48
52
|
}
|
|
49
53
|
/**
|
|
50
|
-
* The active
|
|
51
|
-
* backend view. Replace with a custom `
|
|
52
|
-
* zoom, bounds, or split-screen viewport behavior.
|
|
54
|
+
* The active world {@link View} — the default for {@link render}. Defaults to
|
|
55
|
+
* a view matching the initial backend view. Replace with a custom `View` for
|
|
56
|
+
* follow, zoom, bounds, or split-screen viewport behavior.
|
|
53
57
|
*/
|
|
54
|
-
get
|
|
55
|
-
return this.
|
|
58
|
+
get view() {
|
|
59
|
+
return this._view;
|
|
56
60
|
}
|
|
57
|
-
set
|
|
58
|
-
const
|
|
59
|
-
this.
|
|
60
|
-
if (
|
|
61
|
-
|
|
61
|
+
set view(view) {
|
|
62
|
+
const previousView = this._view;
|
|
63
|
+
this._view = view;
|
|
64
|
+
if (previousView !== view) {
|
|
65
|
+
previousView.destroy();
|
|
62
66
|
}
|
|
63
67
|
}
|
|
64
68
|
/**
|
|
@@ -72,26 +76,57 @@ class RenderingContext {
|
|
|
72
76
|
get screenView() {
|
|
73
77
|
return this._screenView;
|
|
74
78
|
}
|
|
75
|
-
/**
|
|
76
|
-
|
|
77
|
-
|
|
79
|
+
/**
|
|
80
|
+
* Register a custom {@link View} (e.g. a picture-in-picture or minimap view)
|
|
81
|
+
* so {@link update} advances its `follow`/`shake`/bounds each frame, alongside
|
|
82
|
+
* the active {@link view}. The active view and {@link screenView} are managed
|
|
83
|
+
* automatically and need not be tracked.
|
|
84
|
+
*
|
|
85
|
+
* The view is caller-owned: call {@link untrackView} before discarding it,
|
|
86
|
+
* otherwise a `follow` target keeps it (and its target node) referenced.
|
|
87
|
+
*/
|
|
88
|
+
trackView(view) {
|
|
89
|
+
this._trackedViews.add(view);
|
|
90
|
+
}
|
|
91
|
+
/** Stop advancing a previously {@link trackView}-ed view. No-op if absent. */
|
|
92
|
+
untrackView(view) {
|
|
93
|
+
this._trackedViews.delete(view);
|
|
78
94
|
}
|
|
79
95
|
/**
|
|
80
96
|
* Advance follow, shake, and bounds-constraint animations on the active
|
|
81
|
-
*
|
|
97
|
+
* {@link view}, every view rendered last frame (automatic), and any
|
|
98
|
+
* {@link trackView}-ed view. Ticked once per frame via {@link Application.systems}.
|
|
82
99
|
*/
|
|
83
100
|
update(delta) {
|
|
84
|
-
|
|
101
|
+
const ms = delta.milliseconds;
|
|
102
|
+
this._view.update(ms);
|
|
103
|
+
// Auto-advance every view rendered last frame (so a custom view's follow/shake
|
|
104
|
+
// ticks with no manual bookkeeping) plus any explicitly tracked view; each view
|
|
105
|
+
// updates at most once per frame.
|
|
106
|
+
for (const view of this._trackedViews) {
|
|
107
|
+
if (view !== this._view) {
|
|
108
|
+
view.update(ms);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
for (const view of this._renderedViews) {
|
|
112
|
+
if (view !== this._view && !this._trackedViews.has(view)) {
|
|
113
|
+
view.update(ms);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Render-usage is per-frame: clear so a view that stops being rendered stops ticking.
|
|
117
|
+
this._renderedViews.clear();
|
|
85
118
|
}
|
|
86
119
|
/**
|
|
87
|
-
* Destroy the resources this context owns — the active {@link
|
|
120
|
+
* Destroy the resources this context owns — the active {@link View} and the
|
|
88
121
|
* screen-space {@link View}. The {@link RenderBackend} is owned by the
|
|
89
122
|
* Application and destroyed separately.
|
|
90
123
|
* @internal — invoked via Application.systems on teardown.
|
|
91
124
|
*/
|
|
92
125
|
destroy() {
|
|
93
|
-
this.
|
|
126
|
+
this._view.destroy();
|
|
94
127
|
this._screenView.destroy();
|
|
128
|
+
this._trackedViews.clear();
|
|
129
|
+
this._renderedViews.clear();
|
|
95
130
|
this._immediateMesh?.destroy();
|
|
96
131
|
this._immediateMesh = null;
|
|
97
132
|
this._batchMesh?.destroy();
|
|
@@ -102,7 +137,7 @@ class RenderingContext {
|
|
|
102
137
|
* Preserves the camera's center and zoom; only the visible area size changes.
|
|
103
138
|
*/
|
|
104
139
|
resize(width, height) {
|
|
105
|
-
this.
|
|
140
|
+
this._view.resize(width, height);
|
|
106
141
|
this._screenView.resize(width, height);
|
|
107
142
|
this._screenView.setCenter(width / 2, height / 2);
|
|
108
143
|
}
|
|
@@ -114,7 +149,8 @@ class RenderingContext {
|
|
|
114
149
|
* high-level rendering entry point.
|
|
115
150
|
*/
|
|
116
151
|
render(node, options = {}) {
|
|
117
|
-
const view = options.view ?? this.
|
|
152
|
+
const view = options.view ?? this._view;
|
|
153
|
+
this._renderedViews.add(view);
|
|
118
154
|
this._backend.setView(view);
|
|
119
155
|
playRenderTree(node, this._backend);
|
|
120
156
|
}
|
|
@@ -127,7 +163,7 @@ class RenderingContext {
|
|
|
127
163
|
* Saves and restores the active render target and view so the caller's
|
|
128
164
|
* rendering state is undisturbed.
|
|
129
165
|
*/
|
|
130
|
-
|
|
166
|
+
capture(node, options) {
|
|
131
167
|
const target = new RenderTexture(options.width, options.height);
|
|
132
168
|
const view = new View(options.width / 2, options.height / 2, options.width, options.height);
|
|
133
169
|
const coordinator = this._backend._passCoordinator;
|
|
@@ -160,6 +196,65 @@ class RenderingContext {
|
|
|
160
196
|
}
|
|
161
197
|
return target;
|
|
162
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Clear the active render target to `color`. Routes through the pass
|
|
201
|
+
* coordinator so it respects the clear-vs-load policy and never leaks the
|
|
202
|
+
* clear onto another target. Falls back to a raw backend clear when no
|
|
203
|
+
* coordinator is present (test stubs).
|
|
204
|
+
*/
|
|
205
|
+
clear(color) {
|
|
206
|
+
const coordinator = this._backend._passCoordinator;
|
|
207
|
+
if (coordinator) {
|
|
208
|
+
coordinator.withChildPass({
|
|
209
|
+
target: coordinator.activeTarget,
|
|
210
|
+
view: coordinator.activeView,
|
|
211
|
+
load: 'clear',
|
|
212
|
+
clearColor: color,
|
|
213
|
+
stencil: StencilAttachmentMode.None,
|
|
214
|
+
}, () => {
|
|
215
|
+
/* Clear is expressed entirely by the pass descriptor above; the pass body is intentionally empty. */
|
|
216
|
+
});
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
this._backend.clear(color);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Render `node` into a caller-owned {@link RenderTexture} that is reused across
|
|
223
|
+
* frames — the per-frame, allocation-free counterpart to {@link capture}. The
|
|
224
|
+
* target and view are supplied by the caller; the view defaults to the
|
|
225
|
+
* target's own view. Save/restore is handled by the pass coordinator.
|
|
226
|
+
*/
|
|
227
|
+
renderTo(node, options) {
|
|
228
|
+
const view = options.view ?? options.target.view;
|
|
229
|
+
this._renderedViews.add(view);
|
|
230
|
+
const coordinator = this._backend._passCoordinator;
|
|
231
|
+
if (coordinator) {
|
|
232
|
+
coordinator.withChildPass({
|
|
233
|
+
target: options.target,
|
|
234
|
+
view,
|
|
235
|
+
load: options.clear !== undefined ? 'clear' : 'load',
|
|
236
|
+
clearColor: options.clear ?? null,
|
|
237
|
+
stencil: StencilAttachmentMode.None,
|
|
238
|
+
}, () => {
|
|
239
|
+
playRenderTree(node, this._backend);
|
|
240
|
+
});
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
const previousTarget = this._backend.renderTarget;
|
|
244
|
+
const previousView = this._backend.view;
|
|
245
|
+
this._backend.setRenderTarget(options.target);
|
|
246
|
+
this._backend.setView(view);
|
|
247
|
+
if (options.clear !== undefined) {
|
|
248
|
+
this._backend.clear(options.clear);
|
|
249
|
+
}
|
|
250
|
+
try {
|
|
251
|
+
playRenderTree(node, this._backend);
|
|
252
|
+
}
|
|
253
|
+
finally {
|
|
254
|
+
this._backend.setRenderTarget(previousTarget);
|
|
255
|
+
this._backend.setView(previousView);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
163
258
|
/**
|
|
164
259
|
* Immediately draw a single {@link Geometry} with `transform` as its world
|
|
165
260
|
* matrix — no retained {@link RenderNode} required. Useful for procedural or
|
|
@@ -194,13 +289,13 @@ class RenderingContext {
|
|
|
194
289
|
if (material !== null && material.target !== 'mesh') {
|
|
195
290
|
throw new Error(`drawGeometry material must target 'mesh' (got '${String(material.target)}').`);
|
|
196
291
|
}
|
|
197
|
-
const view = options.view ?? this.
|
|
292
|
+
const view = options.view ?? this._view;
|
|
293
|
+
this._renderedViews.add(view);
|
|
198
294
|
const mesh = (this._immediateMesh ??= new ImmediateMesh());
|
|
199
|
-
// Set the view first:
|
|
200
|
-
//
|
|
201
|
-
//
|
|
202
|
-
//
|
|
203
|
-
// pooled mesh through a still-deferred draw.
|
|
295
|
+
// Set the view first: setView now only flushes when the view actually changes
|
|
296
|
+
// (not unconditionally). Correctness here rests on (a) the trailing flush()
|
|
297
|
+
// below — so a later drawGeometry cannot observe this pooled mesh through a
|
|
298
|
+
// still-deferred draw — and (b) any renderer switch flushing its pending batch.
|
|
204
299
|
this._backend.setView(view);
|
|
205
300
|
mesh.configure(geometry, transform, material, options.tint ?? null);
|
|
206
301
|
this._backend.draw(mesh);
|
|
@@ -231,11 +326,14 @@ class RenderingContext {
|
|
|
231
326
|
if (batch.count === 0) {
|
|
232
327
|
return;
|
|
233
328
|
}
|
|
234
|
-
const view = options.view ?? this.
|
|
329
|
+
const view = options.view ?? this._view;
|
|
330
|
+
this._renderedViews.add(view);
|
|
235
331
|
const mesh = (this._batchMesh ??= new ImmediateMesh());
|
|
236
|
-
// Set the view first (
|
|
237
|
-
//
|
|
238
|
-
// batch
|
|
332
|
+
// Set the view first (setView only flushes when the view actually changes;
|
|
333
|
+
// correctness rests on the trailing flush() below and on any renderer switch
|
|
334
|
+
// flushing its pending batch), configure the pooled geometry/look source,
|
|
335
|
+
// then submit a single instanced draw over the batch's per-instance
|
|
336
|
+
// transforms/tints and flush it immediately.
|
|
239
337
|
this._backend.setView(view);
|
|
240
338
|
mesh.configureBatchSource(batch.geometry, batch.material);
|
|
241
339
|
this._backend.drawInstanced(mesh, batch._instanceTransforms, batch._instanceTints, batch.count);
|