@codexo/exojs 0.4.0 → 0.6.2
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 +499 -163
- package/README.md +156 -141
- package/dist/esm/audio/AudioAnalyser.d.ts +0 -1
- package/dist/esm/audio/AudioAnalyser.js +0 -2
- package/dist/esm/audio/AudioAnalyser.js.map +1 -1
- package/dist/esm/core/Application.d.ts +4 -4
- package/dist/esm/core/Application.js +19 -19
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/Scene.d.ts +59 -24
- package/dist/esm/core/Scene.js +60 -18
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.js +15 -9
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +45 -5
- package/dist/esm/core/SceneNode.js +136 -7
- package/dist/esm/core/SceneNode.js.map +1 -1
- package/dist/esm/index.js +6 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/math/index.d.ts +0 -1
- package/dist/esm/rendering/CallbackRenderPass.d.ts +3 -3
- package/dist/esm/rendering/CallbackRenderPass.js +2 -2
- package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
- package/dist/esm/rendering/Container.d.ts +10 -11
- package/dist/esm/rendering/Container.js +5 -5
- package/dist/esm/rendering/Container.js.map +1 -1
- package/dist/esm/rendering/Drawable.d.ts +2 -2
- package/dist/esm/rendering/Drawable.js +5 -5
- package/dist/esm/rendering/Drawable.js.map +1 -1
- package/dist/esm/rendering/{SceneRenderRuntime.d.ts → RenderBackend.d.ts} +21 -3
- package/dist/esm/rendering/RenderNode.d.ts +41 -5
- package/dist/esm/rendering/RenderNode.js +89 -24
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/RenderPass.d.ts +2 -2
- package/dist/esm/rendering/RenderTargetPass.d.ts +3 -3
- package/dist/esm/rendering/RenderTargetPass.js +9 -9
- package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
- package/dist/esm/rendering/Renderer.d.ts +3 -3
- package/dist/esm/rendering/RendererRegistry.d.ts +13 -7
- package/dist/esm/rendering/RendererRegistry.js +18 -10
- package/dist/esm/rendering/RendererRegistry.js.map +1 -1
- package/dist/esm/rendering/filters/BlurFilter.d.ts +2 -2
- package/dist/esm/rendering/filters/BlurFilter.js +5 -5
- package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
- package/dist/esm/rendering/filters/ColorFilter.d.ts +2 -2
- package/dist/esm/rendering/filters/ColorFilter.js +3 -3
- package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
- package/dist/esm/rendering/filters/Filter.d.ts +2 -2
- package/dist/esm/rendering/index.d.ts +9 -6
- package/dist/esm/rendering/mesh/Mesh.d.ts +69 -0
- package/dist/esm/rendering/mesh/Mesh.js +114 -0
- package/dist/esm/rendering/mesh/Mesh.js.map +1 -0
- package/dist/esm/rendering/primitives/Graphics.d.ts +3 -3
- package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
- package/dist/esm/rendering/shader/Shader.d.ts +3 -3
- package/dist/esm/rendering/shader/Shader.js +10 -10
- package/dist/esm/rendering/text/Text.d.ts +2 -2
- package/dist/esm/rendering/text/Text.js +2 -2
- package/dist/esm/rendering/text/Text.js.map +1 -1
- package/dist/esm/rendering/texture/Sampler.d.ts +0 -3
- package/dist/esm/rendering/texture/Sampler.js +5 -7
- package/dist/esm/rendering/texture/Sampler.js.map +1 -1
- package/dist/esm/rendering/types.d.ts +4 -0
- package/dist/esm/rendering/types.js +4 -0
- package/dist/esm/rendering/types.js.map +1 -1
- package/dist/esm/rendering/video/Video.d.ts +2 -2
- package/dist/esm/rendering/video/Video.js +2 -2
- package/dist/esm/rendering/video/Video.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +2 -2
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +35 -11
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.d.ts +13 -13
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js +20 -20
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/{WebGl2RenderManager.d.ts → WebGl2Backend.d.ts} +15 -12
- package/dist/esm/rendering/webgl2/{WebGl2RenderManager.js → WebGl2Backend.js} +63 -38
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts +31 -0
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +186 -0
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +27 -0
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +242 -0
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +38 -7
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +281 -90
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.d.ts +2 -2
- package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.js +15 -10
- package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js +12 -0
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts +2 -0
- package/dist/esm/rendering/webgl2/{WebGl2ShaderRuntime.js → WebGl2ShaderProgram.js} +58 -18
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +26 -7
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +260 -62
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.d.ts +24 -1
- package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.js +6 -2
- package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.js.map +1 -1
- package/dist/esm/rendering/webgl2/glsl/mask-compose.frag.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/mask-compose.frag.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/mask-compose.vert.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/mask-compose.vert.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/mesh.frag.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/mesh.frag.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/mesh.vert.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/mesh.vert.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/particle.vert.js +1 -1
- package/dist/esm/rendering/webgl2/glsl/sprite.frag.js +1 -1
- package/dist/esm/rendering/webgl2/glsl/sprite.vert.js +1 -1
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.d.ts +9 -9
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js +18 -18
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/{WebGpuRenderManager.d.ts → WebGpuBackend.d.ts} +17 -14
- package/dist/esm/rendering/webgpu/{WebGpuRenderManager.js → WebGpuBackend.js} +77 -40
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +37 -0
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +279 -0
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +40 -0
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +439 -0
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +2 -3
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +65 -82
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.d.ts +2 -3
- package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.js +24 -25
- package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +28 -13
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +410 -382
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
- package/dist/esm/resources/Loader.js +5 -3
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/exo.esm.js +3574 -1696
- package/dist/exo.esm.js.map +1 -1
- package/package.json +20 -11
- package/dist/esm/math/Transformable.d.ts +0 -47
- package/dist/esm/math/Transformable.js +0 -140
- package/dist/esm/math/Transformable.js.map +0 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderManager.js.map +0 -1
- package/dist/esm/rendering/webgl2/WebGl2RendererRuntime.d.ts +0 -15
- package/dist/esm/rendering/webgl2/WebGl2ShaderRuntime.d.ts +0 -2
- package/dist/esm/rendering/webgl2/WebGl2ShaderRuntime.js.map +0 -1
- package/dist/esm/rendering/webgpu/WebGpuRenderManager.js.map +0 -1
- package/dist/esm/rendering/webgpu/WebGpuRendererRuntime.d.ts +0 -8
- package/dist/exo.esm.min.js +0 -2
- package/dist/exo.esm.min.js.map +0 -1
- package/dist/exo.global.js +0 -17328
- package/dist/exo.global.js.map +0 -1
- package/dist/exo.global.min.js +0 -2
- package/dist/exo.global.min.js.map +0 -1
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
*/
|
|
14
14
|
class RendererRegistry {
|
|
15
15
|
_renderers = new Map();
|
|
16
|
-
|
|
16
|
+
_backend = null;
|
|
17
17
|
/**
|
|
18
18
|
* Register a renderer for a specific drawable type.
|
|
19
19
|
*
|
|
20
|
-
* If the registry is already connected to a
|
|
20
|
+
* If the registry is already connected to a backend, the renderer
|
|
21
21
|
* is connected immediately. Registration must happen before the
|
|
22
22
|
* first draw call for the given drawable type.
|
|
23
23
|
*
|
|
@@ -30,10 +30,18 @@ class RendererRegistry {
|
|
|
30
30
|
// Widen TDrawable to Drawable for storage. Safe because the map key
|
|
31
31
|
// guarantees the correct drawable type is always paired at lookup.
|
|
32
32
|
this._renderers.set(drawableType, renderer);
|
|
33
|
-
if (this.
|
|
34
|
-
renderer.connect(this.
|
|
33
|
+
if (this._backend !== null) {
|
|
34
|
+
renderer.connect(this._backend);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Iterate all registered renderers. Used by managers to dispatch
|
|
39
|
+
* lifecycle hooks (e.g. WebGPU pipeline pre-warmup) to whichever
|
|
40
|
+
* renderers expose them.
|
|
41
|
+
*/
|
|
42
|
+
renderers() {
|
|
43
|
+
return this._renderers.values();
|
|
44
|
+
}
|
|
37
45
|
resolve(drawable) {
|
|
38
46
|
let constructor = drawable.constructor;
|
|
39
47
|
let renderer = undefined;
|
|
@@ -51,22 +59,22 @@ class RendererRegistry {
|
|
|
51
59
|
return renderer;
|
|
52
60
|
}
|
|
53
61
|
/**
|
|
54
|
-
* Connect all registered renderers to the given
|
|
62
|
+
* Connect all registered renderers to the given backend.
|
|
55
63
|
*/
|
|
56
|
-
connect(
|
|
57
|
-
this.
|
|
64
|
+
connect(backend) {
|
|
65
|
+
this._backend = backend;
|
|
58
66
|
for (const renderer of this._renderers.values()) {
|
|
59
|
-
renderer.connect(
|
|
67
|
+
renderer.connect(backend);
|
|
60
68
|
}
|
|
61
69
|
}
|
|
62
70
|
/**
|
|
63
|
-
* Disconnect all registered renderers from the current
|
|
71
|
+
* Disconnect all registered renderers from the current backend.
|
|
64
72
|
*/
|
|
65
73
|
disconnect() {
|
|
66
74
|
for (const renderer of this._renderers.values()) {
|
|
67
75
|
renderer.disconnect();
|
|
68
76
|
}
|
|
69
|
-
this.
|
|
77
|
+
this._backend = null;
|
|
70
78
|
}
|
|
71
79
|
/**
|
|
72
80
|
* Disconnect all registered renderers and clear the registry.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RendererRegistry.js","sources":["../../../../src/rendering/RendererRegistry.ts"],"sourcesContent":[null],"names":[],"mappings":"AAIA;;;;;;;;;;;;AAYG;MACU,gBAAgB,CAAA;AAER,IAAA,UAAU,GAAG,IAAI,GAAG,EAAoD;IACjF,QAAQ,GAAmB,IAAI;AAEvC;;;;;;;;AAQG;IACI,gBAAgB,CACnB,YAAyC,EACzC,QAAmC,EAAA;QAEnC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,CAAA,qCAAA,EAAwC,YAAY,CAAC,IAAI,CAAA,CAAA,CAAG,CAAC;QACjF;;;QAIA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,QAAuC,CAAC;AAE1E,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AACvB,YAAA,QAAwC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpE;IACJ;AAEO,IAAA,OAAO,CAAC,QAAkB,EAAA;AAC7B,QAAA,IAAI,WAAW,GAAG,QAAQ,CAAC,WAAyC;QACpE,IAAI,QAAQ,GAA4C,SAAS;AAEjE,QAAA,OAAO,WAAW,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;YACtC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;YAE3C,IAAI,CAAC,QAAQ,EAAE;gBACX,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAiD;AAE9G,gBAAA,WAAW,GAAG,SAAS,EAAE,WAAW,IAAI,IAAI;YAChD;QACJ;QAEA,IAAI,CAAC,QAAQ,EAAE;YACX,MAAM,IAAI,KAAK,CACX,CAAA,2BAAA,EAA8B,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA,EAAA;AACrD,kBAAA,2EAA2E,CAChF;QACL;AAEA,QAAA,OAAO,QAAQ;IACnB;AAEA;;AAEG;AACI,IAAA,OAAO,CAAC,OAAgB,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;QAEvB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;AAC7C,YAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;QAC7B;IACJ;AAEA;;AAEG;IACI,UAAU,GAAA;QACb,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;YAC7C,QAAQ,CAAC,UAAU,EAAE;QACzB;AAEA,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;IACxB;AAEA;;AAEG;IACI,OAAO,GAAA;QACV,IAAI,CAAC,UAAU,EAAE;QAEjB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;YAC7C,IAAI,SAAS,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE;gBAChE,QAA+D,CAAC,OAAO,EAAE;YAC9E;QACJ;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;IAC3B;AACH;;;;"}
|
|
1
|
+
{"version":3,"file":"RendererRegistry.js","sources":["../../../../src/rendering/RendererRegistry.ts"],"sourcesContent":[null],"names":[],"mappings":"AAIA;;;;;;;;;;;;AAYG;MACU,gBAAgB,CAAA;AAER,IAAA,UAAU,GAAG,IAAI,GAAG,EAAoD;IACjF,QAAQ,GAAmB,IAAI;AAEvC;;;;;;;;AAQG;IACI,gBAAgB,CACnB,YAAyC,EACzC,QAAmC,EAAA;QAEnC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,CAAA,qCAAA,EAAwC,YAAY,CAAC,IAAI,CAAA,CAAA,CAAG,CAAC;QACjF;;;QAIA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,QAAuC,CAAC;AAE1E,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AACvB,YAAA,QAAwC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpE;IACJ;AAEA;;;;AAIG;IACI,SAAS,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;IACnC;AAEO,IAAA,OAAO,CAAC,QAAkB,EAAA;AAC7B,QAAA,IAAI,WAAW,GAAG,QAAQ,CAAC,WAAyC;QACpE,IAAI,QAAQ,GAA4C,SAAS;AAEjE,QAAA,OAAO,WAAW,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;YACtC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;YAE3C,IAAI,CAAC,QAAQ,EAAE;gBACX,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAiD;AAE9G,gBAAA,WAAW,GAAG,SAAS,EAAE,WAAW,IAAI,IAAI;YAChD;QACJ;QAEA,IAAI,CAAC,QAAQ,EAAE;YACX,MAAM,IAAI,KAAK,CACX,CAAA,2BAAA,EAA8B,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA,EAAA;AACrD,kBAAA,2EAA2E,CAChF;QACL;AAEA,QAAA,OAAO,QAAQ;IACnB;AAEA;;AAEG;AACI,IAAA,OAAO,CAAC,OAAgB,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;QAEvB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;AAC7C,YAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;QAC7B;IACJ;AAEA;;AAEG;IACI,UAAU,GAAA;QACb,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;YAC7C,QAAQ,CAAC,UAAU,EAAE;QACzB;AAEA,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;IACxB;AAEA;;AAEG;IACI,OAAO,GAAA;QACV,IAAI,CAAC,UAAU,EAAE;QAEjB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;YAC7C,IAAI,SAAS,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE;gBAChE,QAA+D,CAAC,OAAO,EAAE;YAC9E;QACJ;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;IAC3B;AACH;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RenderTexture } from '@/rendering/texture/RenderTexture';
|
|
2
|
-
import type {
|
|
2
|
+
import type { RenderBackend } from '@/rendering/RenderBackend';
|
|
3
3
|
import { Filter } from './Filter';
|
|
4
4
|
export interface BlurFilterOptions {
|
|
5
5
|
readonly radius?: number;
|
|
@@ -15,6 +15,6 @@ export declare class BlurFilter extends Filter {
|
|
|
15
15
|
set radius(radius: number);
|
|
16
16
|
get quality(): number;
|
|
17
17
|
set quality(quality: number);
|
|
18
|
-
apply(
|
|
18
|
+
apply(backend: RenderBackend, input: RenderTexture, output: RenderTexture): void;
|
|
19
19
|
destroy(): void;
|
|
20
20
|
}
|
|
@@ -26,7 +26,7 @@ class BlurFilter extends Filter {
|
|
|
26
26
|
set quality(quality) {
|
|
27
27
|
this._quality = Math.max(1, Math.floor(quality));
|
|
28
28
|
}
|
|
29
|
-
apply(
|
|
29
|
+
apply(backend, input, output) {
|
|
30
30
|
const radius = this._radius;
|
|
31
31
|
const quality = this._quality;
|
|
32
32
|
const steps = Math.max(1, quality * 2 + 1);
|
|
@@ -41,16 +41,16 @@ class BlurFilter extends Filter {
|
|
|
41
41
|
.setScale(1, 1);
|
|
42
42
|
this._sprite.width = output.width;
|
|
43
43
|
this._sprite.height = output.height;
|
|
44
|
-
|
|
44
|
+
backend.execute(new RenderTargetPass(() => {
|
|
45
45
|
if (radius <= 0) {
|
|
46
|
-
this._sprite.setPosition(0, 0).render(
|
|
46
|
+
this._sprite.setPosition(0, 0).render(backend);
|
|
47
47
|
return;
|
|
48
48
|
}
|
|
49
49
|
for (let step = 0; step < steps; step++) {
|
|
50
50
|
const t = steps === 1 ? 0 : step / (steps - 1);
|
|
51
51
|
const offset = (t * 2 - 1) * radius;
|
|
52
|
-
this._sprite.setPosition(offset, 0).render(
|
|
53
|
-
this._sprite.setPosition(0, offset).render(
|
|
52
|
+
this._sprite.setPosition(offset, 0).render(backend);
|
|
53
|
+
this._sprite.setPosition(0, offset).render(backend);
|
|
54
54
|
}
|
|
55
55
|
}, {
|
|
56
56
|
target: output,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlurFilter.js","sources":["../../../../../src/rendering/filters/BlurFilter.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAaM,MAAO,UAAW,SAAQ,MAAM,CAAA;AAEjB,IAAA,OAAO,GAAW,IAAI,MAAM,CAAC,IAAI,CAAC;AAClC,IAAA,WAAW,GAAU,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;IACjD,OAAO,GAAG,CAAC;IACX,QAAQ,GAAG,CAAC;AAEpB,IAAA,WAAA,CAAmB,UAA6B,EAAE,EAAA;AAC9C,QAAA,KAAK,EAAE;AAEP,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IACjE;AAEA,IAAA,IAAW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,IAAW,MAAM,CAAC,MAAc,EAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC;IACtC;AAEA,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,IAAW,OAAO,CAAC,OAAe,EAAA;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpD;AAEO,IAAA,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"BlurFilter.js","sources":["../../../../../src/rendering/filters/BlurFilter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Color } from '@/core/Color';
|
|
2
2
|
import type { RenderTexture } from '@/rendering/texture/RenderTexture';
|
|
3
|
-
import type {
|
|
3
|
+
import type { RenderBackend } from '@/rendering/RenderBackend';
|
|
4
4
|
import { Filter } from './Filter';
|
|
5
5
|
export declare class ColorFilter extends Filter {
|
|
6
6
|
private readonly _color;
|
|
7
7
|
private readonly _sprite;
|
|
8
8
|
constructor(color?: Color);
|
|
9
9
|
get color(): Color;
|
|
10
|
-
apply(
|
|
10
|
+
apply(backend: RenderBackend, input: RenderTexture, output: RenderTexture): void;
|
|
11
11
|
destroy(): void;
|
|
12
12
|
}
|
|
@@ -14,7 +14,7 @@ class ColorFilter extends Filter {
|
|
|
14
14
|
get color() {
|
|
15
15
|
return this._color;
|
|
16
16
|
}
|
|
17
|
-
apply(
|
|
17
|
+
apply(backend, input, output) {
|
|
18
18
|
this._sprite
|
|
19
19
|
.setTexture(input)
|
|
20
20
|
.setBlendMode(BlendModes.Normal)
|
|
@@ -24,8 +24,8 @@ class ColorFilter extends Filter {
|
|
|
24
24
|
.setScale(1, 1);
|
|
25
25
|
this._sprite.width = output.width;
|
|
26
26
|
this._sprite.height = output.height;
|
|
27
|
-
|
|
28
|
-
this._sprite.render(
|
|
27
|
+
backend.execute(new RenderTargetPass(() => {
|
|
28
|
+
this._sprite.render(backend);
|
|
29
29
|
}, {
|
|
30
30
|
target: output,
|
|
31
31
|
view: output.view,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorFilter.js","sources":["../../../../../src/rendering/filters/ColorFilter.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAQM,MAAO,WAAY,SAAQ,MAAM,CAAA;AAElB,IAAA,MAAM;AACN,IAAA,OAAO,GAAW,IAAI,MAAM,CAAC,IAAI,CAAC;IAEnD,WAAA,CAAmB,KAAA,GAAe,KAAK,CAAC,KAAK,EAAA;AACzC,QAAA,KAAK,EAAE;AAEP,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE;IAC/B;AAEA,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,MAAM;IACtB;AAEO,IAAA,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"ColorFilter.js","sources":["../../../../../src/rendering/filters/ColorFilter.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAQM,MAAO,WAAY,SAAQ,MAAM,CAAA;AAElB,IAAA,MAAM;AACN,IAAA,OAAO,GAAW,IAAI,MAAM,CAAC,IAAI,CAAC;IAEnD,WAAA,CAAmB,KAAA,GAAe,KAAK,CAAC,KAAK,EAAA;AACzC,QAAA,KAAK,EAAE;AAEP,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE;IAC/B;AAEA,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,MAAM;IACtB;AAEO,IAAA,KAAK,CAAC,OAAsB,EAAE,KAAoB,EAAE,MAAqB,EAAA;AAC5E,QAAA,IAAI,CAAC;aACA,UAAU,CAAC,KAAK;AAChB,aAAA,YAAY,CAAC,UAAU,CAAC,MAAM;AAC9B,aAAA,OAAO,CAAC,IAAI,CAAC,MAAM;AACnB,aAAA,WAAW,CAAC,CAAC,EAAE,CAAC;aAChB,WAAW,CAAC,CAAC;AACb,aAAA,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;QAEnB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;QACjC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;AAEnC,QAAA,OAAO,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAChC,MAAK;AACD,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;AAChC,QAAA,CAAC,EACD;AACI,YAAA,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU,EAAE,KAAK,CAAC,gBAAgB;AACrC,SAAA,CACJ,CAAC;IACN;IAEO,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;IACzB;AACH;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RenderTexture } from '@/rendering/texture/RenderTexture';
|
|
2
|
-
import type {
|
|
2
|
+
import type { RenderBackend } from '@/rendering/RenderBackend';
|
|
3
3
|
export declare abstract class Filter {
|
|
4
|
-
abstract apply(
|
|
4
|
+
abstract apply(backend: RenderBackend, input: RenderTexture, output: RenderTexture): void;
|
|
5
5
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './mesh/Mesh';
|
|
1
2
|
export * from './primitives/CircleGeometry';
|
|
2
3
|
export * from './primitives/Geometry';
|
|
3
4
|
export * from './primitives/DrawableShape';
|
|
@@ -20,18 +21,20 @@ export * from './webgl2/WebGl2RenderBuffer';
|
|
|
20
21
|
export * from './webgl2/WebGl2ShaderBlock';
|
|
21
22
|
export * from './webgl2/WebGl2ShaderMappings';
|
|
22
23
|
export * from './webgl2/WebGl2VertexArrayObject';
|
|
24
|
+
export * from './webgl2/WebGl2MeshRenderer';
|
|
23
25
|
export * from './webgl2/WebGl2ParticleRenderer';
|
|
24
26
|
export * from './webgl2/WebGl2PrimitiveRenderer';
|
|
25
|
-
export type {
|
|
26
|
-
export * from './webgl2/
|
|
27
|
-
export * from './webgl2/
|
|
27
|
+
export type { WebGl2Backend } from './webgl2/WebGl2Backend';
|
|
28
|
+
export * from './webgl2/WebGl2Backend';
|
|
29
|
+
export * from './webgl2/WebGl2ShaderProgram';
|
|
28
30
|
export * from './webgl2/WebGl2SpriteRenderer';
|
|
29
31
|
export * from './webgpu/AbstractWebGpuRenderer';
|
|
30
32
|
export * from './webgpu/WebGpuBlendState';
|
|
33
|
+
export * from './webgpu/WebGpuMeshRenderer';
|
|
31
34
|
export * from './webgpu/WebGpuParticleRenderer';
|
|
32
35
|
export * from './webgpu/WebGpuPrimitiveRenderer';
|
|
33
|
-
export type {
|
|
34
|
-
export * from './webgpu/
|
|
36
|
+
export type { WebGpuBackend } from './webgpu/WebGpuBackend';
|
|
37
|
+
export * from './webgpu/WebGpuBackend';
|
|
35
38
|
export * from './webgpu/WebGpuSpriteRenderer';
|
|
36
39
|
export * from './types';
|
|
37
40
|
export * from './Container';
|
|
@@ -45,7 +48,7 @@ export * from './RenderTargetPass';
|
|
|
45
48
|
export * from './CallbackRenderPass';
|
|
46
49
|
export * from './Renderer';
|
|
47
50
|
export * from './RendererRegistry';
|
|
48
|
-
export * from './
|
|
51
|
+
export * from './RenderBackend';
|
|
49
52
|
export * from './View';
|
|
50
53
|
export * from './filters/Filter';
|
|
51
54
|
export * from './filters/BlurFilter';
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Drawable } from '@/rendering/Drawable';
|
|
2
|
+
import type { Texture } from '@/rendering/texture/Texture';
|
|
3
|
+
import type { RenderTexture } from '@/rendering/texture/RenderTexture';
|
|
4
|
+
/**
|
|
5
|
+
* Construction-time options for a {@link Mesh}.
|
|
6
|
+
*
|
|
7
|
+
* Vertices are required and must be a flat sequence of (x, y) pairs in
|
|
8
|
+
* local space. UVs and per-vertex colors are optional but, when present,
|
|
9
|
+
* must match the vertex count (UVs as (u, v) pairs, colors as one
|
|
10
|
+
* packed-RGBA8 u32 per vertex). Indices are optional — if absent, the
|
|
11
|
+
* vertex stream is drawn as a flat triangle list (3*N vertices = N
|
|
12
|
+
* triangles). A texture is optional; a textured mesh samples it at the
|
|
13
|
+
* supplied UVs while an untextured mesh paints solid vertex colors only.
|
|
14
|
+
*
|
|
15
|
+
* Validation is enforced at construction; any mismatch throws.
|
|
16
|
+
*/
|
|
17
|
+
export interface MeshOptions {
|
|
18
|
+
readonly vertices: Float32Array;
|
|
19
|
+
readonly indices?: Uint16Array;
|
|
20
|
+
readonly uvs?: Float32Array;
|
|
21
|
+
readonly colors?: Uint32Array;
|
|
22
|
+
readonly texture?: Texture | RenderTexture | null;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Arbitrary 2D triangle-mesh primitive.
|
|
26
|
+
*
|
|
27
|
+
* `Mesh` lives alongside {@link Sprite} as a public Drawable: it has the
|
|
28
|
+
* same transform (position/rotation/scale/origin), tint, blendMode,
|
|
29
|
+
* filters, masks, and cacheAsBitmap — but the geometry it renders is
|
|
30
|
+
* user-supplied rather than implied by a texture frame. The intended use
|
|
31
|
+
* cases are:
|
|
32
|
+
*
|
|
33
|
+
* - Custom-shape sprites whose silhouette isn't a quad (badges, speech
|
|
34
|
+
* bubbles, region overlays).
|
|
35
|
+
* - Deformable visuals (rope/ribbon, banner, water surface): mutate the
|
|
36
|
+
* vertex array between frames and the GPU re-tessellates nothing —
|
|
37
|
+
* only the transform changes per frame.
|
|
38
|
+
* - Particles or trails with custom geometry per emitter.
|
|
39
|
+
*
|
|
40
|
+
* The mesh data is **immutable after construction** in v1: vertex /
|
|
41
|
+
* index / UV / color arrays are exposed as readonly references. Mutate
|
|
42
|
+
* the underlying typed arrays in-place if you need per-frame updates,
|
|
43
|
+
* but the array lengths and topology cannot change. Texture is the only
|
|
44
|
+
* post-construction mutable property.
|
|
45
|
+
*
|
|
46
|
+
* The vertex stream is a flat `Float32Array` of (x, y) pairs in local
|
|
47
|
+
* space. The mesh's local bounds are computed once at construction from
|
|
48
|
+
* the AABB of those vertices and used by the cull pass. Re-computing
|
|
49
|
+
* after in-place mutation is the caller's responsibility (call
|
|
50
|
+
* `recomputeLocalBounds()`).
|
|
51
|
+
*/
|
|
52
|
+
export declare class Mesh extends Drawable {
|
|
53
|
+
readonly vertices: Float32Array;
|
|
54
|
+
readonly indices: Uint16Array | null;
|
|
55
|
+
readonly uvs: Float32Array | null;
|
|
56
|
+
readonly colors: Uint32Array | null;
|
|
57
|
+
private _texture;
|
|
58
|
+
constructor(options: MeshOptions);
|
|
59
|
+
get vertexCount(): number;
|
|
60
|
+
get indexCount(): number;
|
|
61
|
+
get texture(): Texture | RenderTexture | null;
|
|
62
|
+
set texture(texture: Texture | RenderTexture | null);
|
|
63
|
+
/**
|
|
64
|
+
* Recompute the local AABB from the current vertex array. Call after
|
|
65
|
+
* mutating `vertices` in place to keep culling correct; otherwise the
|
|
66
|
+
* bounds the cull pass sees will be the AABB at construction time.
|
|
67
|
+
*/
|
|
68
|
+
recomputeLocalBounds(): this;
|
|
69
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { Drawable } from '../Drawable.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Arbitrary 2D triangle-mesh primitive.
|
|
5
|
+
*
|
|
6
|
+
* `Mesh` lives alongside {@link Sprite} as a public Drawable: it has the
|
|
7
|
+
* same transform (position/rotation/scale/origin), tint, blendMode,
|
|
8
|
+
* filters, masks, and cacheAsBitmap — but the geometry it renders is
|
|
9
|
+
* user-supplied rather than implied by a texture frame. The intended use
|
|
10
|
+
* cases are:
|
|
11
|
+
*
|
|
12
|
+
* - Custom-shape sprites whose silhouette isn't a quad (badges, speech
|
|
13
|
+
* bubbles, region overlays).
|
|
14
|
+
* - Deformable visuals (rope/ribbon, banner, water surface): mutate the
|
|
15
|
+
* vertex array between frames and the GPU re-tessellates nothing —
|
|
16
|
+
* only the transform changes per frame.
|
|
17
|
+
* - Particles or trails with custom geometry per emitter.
|
|
18
|
+
*
|
|
19
|
+
* The mesh data is **immutable after construction** in v1: vertex /
|
|
20
|
+
* index / UV / color arrays are exposed as readonly references. Mutate
|
|
21
|
+
* the underlying typed arrays in-place if you need per-frame updates,
|
|
22
|
+
* but the array lengths and topology cannot change. Texture is the only
|
|
23
|
+
* post-construction mutable property.
|
|
24
|
+
*
|
|
25
|
+
* The vertex stream is a flat `Float32Array` of (x, y) pairs in local
|
|
26
|
+
* space. The mesh's local bounds are computed once at construction from
|
|
27
|
+
* the AABB of those vertices and used by the cull pass. Re-computing
|
|
28
|
+
* after in-place mutation is the caller's responsibility (call
|
|
29
|
+
* `recomputeLocalBounds()`).
|
|
30
|
+
*/
|
|
31
|
+
class Mesh extends Drawable {
|
|
32
|
+
vertices;
|
|
33
|
+
indices;
|
|
34
|
+
uvs;
|
|
35
|
+
colors;
|
|
36
|
+
_texture;
|
|
37
|
+
constructor(options) {
|
|
38
|
+
super();
|
|
39
|
+
const { vertices, indices = null, uvs = null, colors = null, texture = null } = options;
|
|
40
|
+
if (vertices.length === 0 || vertices.length % 2 !== 0) {
|
|
41
|
+
throw new Error(`Mesh vertices must be a non-empty flat array of (x,y) pairs (got length ${vertices.length}).`);
|
|
42
|
+
}
|
|
43
|
+
const vertexCount = vertices.length / 2;
|
|
44
|
+
if (vertexCount < 3) {
|
|
45
|
+
throw new Error(`Mesh requires at least 3 vertices (got ${vertexCount}).`);
|
|
46
|
+
}
|
|
47
|
+
if (uvs !== null && uvs.length !== vertices.length) {
|
|
48
|
+
throw new Error(`Mesh uvs length ${uvs.length} must equal vertices length ${vertices.length}.`);
|
|
49
|
+
}
|
|
50
|
+
if (colors !== null && colors.length !== vertexCount) {
|
|
51
|
+
throw new Error(`Mesh colors length ${colors.length} must equal vertex count ${vertexCount}.`);
|
|
52
|
+
}
|
|
53
|
+
if (indices !== null) {
|
|
54
|
+
if (indices.length === 0 || indices.length % 3 !== 0) {
|
|
55
|
+
throw new Error(`Mesh indices must be a non-empty multiple of 3 (got length ${indices.length}).`);
|
|
56
|
+
}
|
|
57
|
+
for (let i = 0; i < indices.length; i++) {
|
|
58
|
+
if (indices[i] >= vertexCount) {
|
|
59
|
+
throw new Error(`Mesh index ${indices[i]} at position ${i} is out of range for vertex count ${vertexCount}.`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else if (vertexCount % 3 !== 0) {
|
|
64
|
+
throw new Error(`Non-indexed Mesh requires a vertex count that is a multiple of 3 (got ${vertexCount}).`);
|
|
65
|
+
}
|
|
66
|
+
this.vertices = vertices;
|
|
67
|
+
this.indices = indices;
|
|
68
|
+
this.uvs = uvs;
|
|
69
|
+
this.colors = colors;
|
|
70
|
+
this._texture = texture;
|
|
71
|
+
this.recomputeLocalBounds();
|
|
72
|
+
}
|
|
73
|
+
get vertexCount() {
|
|
74
|
+
return this.vertices.length / 2;
|
|
75
|
+
}
|
|
76
|
+
get indexCount() {
|
|
77
|
+
return this.indices?.length ?? this.vertexCount;
|
|
78
|
+
}
|
|
79
|
+
get texture() {
|
|
80
|
+
return this._texture;
|
|
81
|
+
}
|
|
82
|
+
set texture(texture) {
|
|
83
|
+
this._texture = texture;
|
|
84
|
+
this.invalidateCache();
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Recompute the local AABB from the current vertex array. Call after
|
|
88
|
+
* mutating `vertices` in place to keep culling correct; otherwise the
|
|
89
|
+
* bounds the cull pass sees will be the AABB at construction time.
|
|
90
|
+
*/
|
|
91
|
+
recomputeLocalBounds() {
|
|
92
|
+
let minX = Infinity;
|
|
93
|
+
let minY = Infinity;
|
|
94
|
+
let maxX = -Infinity;
|
|
95
|
+
let maxY = -Infinity;
|
|
96
|
+
for (let i = 0; i < this.vertices.length; i += 2) {
|
|
97
|
+
const x = this.vertices[i];
|
|
98
|
+
const y = this.vertices[i + 1];
|
|
99
|
+
if (x < minX)
|
|
100
|
+
minX = x;
|
|
101
|
+
if (x > maxX)
|
|
102
|
+
maxX = x;
|
|
103
|
+
if (y < minY)
|
|
104
|
+
minY = y;
|
|
105
|
+
if (y > maxY)
|
|
106
|
+
maxY = y;
|
|
107
|
+
}
|
|
108
|
+
this.localBounds.set(minX, minY, maxX - minX, maxY - minY);
|
|
109
|
+
return this;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export { Mesh };
|
|
114
|
+
//# sourceMappingURL=Mesh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Mesh.js","sources":["../../../../../src/rendering/mesh/Mesh.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Color } from '@/core/Color';
|
|
2
2
|
import { Container } from '@/rendering/Container';
|
|
3
3
|
import { Vector } from '@/math/Vector';
|
|
4
|
-
import type {
|
|
4
|
+
import type { RenderNode } from '@/rendering/RenderNode';
|
|
5
5
|
import { DrawableShape } from './DrawableShape';
|
|
6
6
|
export declare class Graphics extends Container {
|
|
7
7
|
private _lineWidth;
|
|
@@ -16,8 +16,8 @@ export declare class Graphics extends Container {
|
|
|
16
16
|
set fillColor(fillColor: Color);
|
|
17
17
|
get currentPoint(): Vector;
|
|
18
18
|
getChildAt(index: number): DrawableShape;
|
|
19
|
-
addChild(child:
|
|
20
|
-
addChildAt(child:
|
|
19
|
+
addChild(child: RenderNode): this;
|
|
20
|
+
addChildAt(child: RenderNode, index: number): this;
|
|
21
21
|
moveTo(x: number, y: number): this;
|
|
22
22
|
lineTo(toX: number, toY: number): this;
|
|
23
23
|
quadraticCurveTo(cpX: number, cpY: number, toX: number, toY: number): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Graphics.js","sources":["../../../../../src/rendering/primitives/Graphics.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAUM,MAAO,QAAS,SAAQ,SAAS,CAAA;IAE3B,UAAU,GAAG,CAAC;AACd,IAAA,UAAU,GAAU,IAAI,KAAK,EAAE;AAC/B,IAAA,UAAU,GAAU,IAAI,KAAK,EAAE;IAC/B,aAAa,GAAW,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAEhD,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,SAAS,CAAC,SAAiB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;IAC/B;AAEA,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,SAAS,CAAC,SAAgB,EAAA;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;IACnC;AAEA,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,SAAS,CAAC,SAAgB,EAAA;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;IACnC;AAEA,IAAA,IAAW,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,aAAa;IAC7B;AAEgB,IAAA,UAAU,CAAC,KAAa,EAAA;AACpC,QAAA,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,CAAkB;IACnD;AAEgB,IAAA,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"Graphics.js","sources":["../../../../../src/rendering/primitives/Graphics.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAUM,MAAO,QAAS,SAAQ,SAAS,CAAA;IAE3B,UAAU,GAAG,CAAC;AACd,IAAA,UAAU,GAAU,IAAI,KAAK,EAAE;AAC/B,IAAA,UAAU,GAAU,IAAI,KAAK,EAAE;IAC/B,aAAa,GAAW,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAEhD,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,SAAS,CAAC,SAAiB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;IAC/B;AAEA,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,SAAS,CAAC,SAAgB,EAAA;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;IACnC;AAEA,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,SAAS,CAAC,SAAgB,EAAA;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;IACnC;AAEA,IAAA,IAAW,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,aAAa;IAC7B;AAEgB,IAAA,UAAU,CAAC,KAAa,EAAA;AACpC,QAAA,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,CAAkB;IACnD;AAEgB,IAAA,QAAQ,CAAC,KAAiB,EAAA;AACtC,QAAA,IAAI,EAAE,KAAK,YAAY,aAAa,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;QACxE;AAEA,QAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAChC;IAEgB,UAAU,CAAC,KAAiB,EAAE,KAAa,EAAA;AACvD,QAAA,IAAI,EAAE,KAAK,YAAY,aAAa,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;QACxE;QAEA,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;IACzC;IAEO,MAAM,CAAC,CAAS,EAAE,CAAS,EAAA;QAC9B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAE5B,QAAA,OAAO,IAAI;IACf;IAEO,MAAM,CAAC,GAAW,EAAE,GAAW,EAAA;AAClC,QAAA,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,aAAa;AAEjD,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;AAErB,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,gBAAgB,CAAC,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAA;AACtE,QAAA,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,aAAa;AAEjD,QAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACjE,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;AAErB,QAAA,OAAO,IAAI;IACf;IAEO,aAAa,CAAC,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,GAAW,EAAE,GAAW,EAAA;AACjG,QAAA,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,aAAa;QAEjD,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5E,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;AAErB,QAAA,OAAO,IAAI;IACf;IAEO,KAAK,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,MAAc,EAAA;AACvE,QAAA,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,aAAa;QACjD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QAE1B,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;YACvE,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;QAC9B;AAEA,QAAA,MAAM,GAAG,GAAG,EAAE,GAAG,KAAK;AACtB,QAAA,MAAM,GAAG,GAAG,EAAE,GAAG,KAAK;AACtB,QAAA,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE;AACpB,QAAA,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;QAErC,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;QAC9B;AAEA,QAAA,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK;AAC1B,QAAA,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK;AAC1B,QAAA,MAAM,OAAO,GAAG,IAAI,GAAG,MAAM;AAC7B,QAAA,MAAM,OAAO,GAAG,IAAI,GAAG,MAAM;QAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAE5B,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE,EAAE;YAClC,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;QAC9B;AAEA,QAAA,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;AAEjD,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,GAAG,KAAK,IAAI,iBAAiB,GAAG,MAAM,EAAE;YAChG,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;QAC9B;QAEA,MAAM,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,iBAAiB,CAAC;QAChD,MAAM,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,iBAAiB,CAAC;QAChD,MAAM,IAAI,GAAG,EAAE,IAAI,OAAO,GAAG,iBAAiB,CAAC;QAC/C,MAAM,IAAI,GAAG,EAAE,IAAI,OAAO,GAAG,iBAAiB,CAAC;AAC/C,QAAA,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,CAAC;AACrD,QAAA,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC;AAC1B,QAAA,MAAM,OAAO,GAAG,QAAQ,GAAG,CAAC,MAAM,GAAG,MAAM;AAC3C,QAAA,MAAM,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,GAAG,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,GAAG,CAAC,CAAC;AACtC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;AACjE,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC;AAE3D,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;AAE3B,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAC5E;AAEO,IAAA,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,MAAc,EAAE,UAAkB,EAAE,QAAgB,EAAE,aAAa,GAAG,KAAK,EAAA;QAC5G,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AAE1B,QAAA,IAAI,CAAC,KAAK,CAAC,EAAE;AACT,YAAA,OAAO,IAAI;QACf;AAEA,QAAA,IAAI,KAAK,GAAG,QAAQ,GAAG,UAAU;AAEjC,QAAA,IAAI,CAAC,aAAa,IAAI,KAAK,GAAG,CAAC,EAAE;YAC7B,KAAK,IAAI,GAAG;QAChB;AAAO,aAAA,IAAI,aAAa,IAAI,KAAK,GAAG,CAAC,EAAE;YACnC,KAAK,IAAI,GAAG;QAChB;AAEA,QAAA,IAAI,KAAK,KAAK,CAAC,EAAE;AACb,YAAA,OAAO,IAAI;QACf;AAEA,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACzE,MAAM,IAAI,GAAkB,EAAE;AAE9B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,EAAE;AAChC,YAAA,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ;YAC1B,MAAM,KAAK,GAAG,UAAU,IAAI,KAAK,GAAG,KAAK,CAAC;AAE1C,YAAA,IAAI,CAAC,IAAI,CACL,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EACzB,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAC5B;QACL;AAEA,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAEzD,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,QAAQ,CAAC,MAAc,EAAE,MAAc,EAAE,IAAY,EAAE,IAAY,EAAA;AACtE,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAE5I,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,QAAQ,CAAC,IAAmB,EAAA;QAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAEtH,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,WAAW,CAAC,IAAmB,EAAA;AAClC,QAAA,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC;AAElC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAE7F,QAAA,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;QACjC;AAEA,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,UAAU,CAAC,OAAe,EAAE,OAAe,EAAE,MAAc,EAAA;QAC9D,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;AAE3D,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAE5F,QAAA,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QAChC;AAEA,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,WAAW,CAAC,OAAe,EAAE,OAAe,EAAE,OAAe,EAAE,OAAe,EAAA;AACjF,QAAA,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;AAEhE,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAE7F,QAAA,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;QACjC;AAEA,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,aAAa,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAA;AACpE,QAAA,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC;AAErD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAE/F,QAAA,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC;QACnC;AAEA,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,QAAQ,CAAC,OAAe,EAAE,OAAe,EAAE,MAAc,EAAE,MAAc,EAAE,WAAA,GAAsB,MAAM,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAA;AAC5H,QAAA,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC;AAE/E,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAE1F,QAAA,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9B;AAEA,QAAA,OAAO,IAAI;IACf;IAEO,KAAK,GAAA;QACR,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAE5B,QAAA,OAAO,IAAI;IACf;IAEgB,OAAO,GAAA;QACnB,KAAK,CAAC,OAAO,EAAE;QAEf,IAAI,CAAC,KAAK,EAAE;AAEZ,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;IAChC;AACH;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ShaderAttribute } from './ShaderAttribute';
|
|
2
2
|
import type { ShaderUniform } from './ShaderUniform';
|
|
3
|
-
export interface
|
|
3
|
+
export interface ShaderProgram {
|
|
4
4
|
initialize(shader: Shader): void;
|
|
5
5
|
bind(shader: Shader): void;
|
|
6
6
|
unbind(shader: Shader): void;
|
|
@@ -12,11 +12,11 @@ export declare class Shader {
|
|
|
12
12
|
readonly uniforms: Map<string, ShaderUniform>;
|
|
13
13
|
private readonly _vertexSource;
|
|
14
14
|
private readonly _fragmentSource;
|
|
15
|
-
private
|
|
15
|
+
private _program;
|
|
16
16
|
constructor(vertexSource: string, fragmentSource: string);
|
|
17
17
|
get vertexSource(): string;
|
|
18
18
|
get fragmentSource(): string;
|
|
19
|
-
connect(
|
|
19
|
+
connect(program: ShaderProgram): this;
|
|
20
20
|
disconnect(): this;
|
|
21
21
|
bind(): this;
|
|
22
22
|
unbind(): this;
|
|
@@ -3,7 +3,7 @@ class Shader {
|
|
|
3
3
|
uniforms = new Map();
|
|
4
4
|
_vertexSource;
|
|
5
5
|
_fragmentSource;
|
|
6
|
-
|
|
6
|
+
_program = null;
|
|
7
7
|
constructor(vertexSource, fragmentSource) {
|
|
8
8
|
this._vertexSource = vertexSource;
|
|
9
9
|
this._fragmentSource = fragmentSource;
|
|
@@ -14,27 +14,27 @@ class Shader {
|
|
|
14
14
|
get fragmentSource() {
|
|
15
15
|
return this._fragmentSource;
|
|
16
16
|
}
|
|
17
|
-
connect(
|
|
18
|
-
this.
|
|
19
|
-
|
|
17
|
+
connect(program) {
|
|
18
|
+
this._program = program;
|
|
19
|
+
program.initialize(this);
|
|
20
20
|
return this;
|
|
21
21
|
}
|
|
22
22
|
disconnect() {
|
|
23
|
-
this.
|
|
23
|
+
this._program = null;
|
|
24
24
|
this.attributes.clear();
|
|
25
25
|
this.uniforms.clear();
|
|
26
26
|
return this;
|
|
27
27
|
}
|
|
28
28
|
bind() {
|
|
29
|
-
this.
|
|
29
|
+
this._program?.bind(this);
|
|
30
30
|
return this;
|
|
31
31
|
}
|
|
32
32
|
unbind() {
|
|
33
|
-
this.
|
|
33
|
+
this._program?.unbind(this);
|
|
34
34
|
return this;
|
|
35
35
|
}
|
|
36
36
|
sync() {
|
|
37
|
-
this.
|
|
37
|
+
this._program?.sync(this);
|
|
38
38
|
return this;
|
|
39
39
|
}
|
|
40
40
|
getAttribute(name) {
|
|
@@ -52,8 +52,8 @@ class Shader {
|
|
|
52
52
|
return uniform;
|
|
53
53
|
}
|
|
54
54
|
destroy() {
|
|
55
|
-
this.
|
|
56
|
-
this.
|
|
55
|
+
this._program?.destroy(this);
|
|
56
|
+
this._program = null;
|
|
57
57
|
this.attributes.clear();
|
|
58
58
|
this.uniforms.clear();
|
|
59
59
|
}
|
|
@@ -2,7 +2,7 @@ import { Sprite } from '@/rendering/sprite/Sprite';
|
|
|
2
2
|
import type { TextStyleOptions } from './TextStyle';
|
|
3
3
|
import { TextStyle } from './TextStyle';
|
|
4
4
|
import type { SamplerOptions } from '@/rendering/texture/Sampler';
|
|
5
|
-
import type {
|
|
5
|
+
import type { RenderBackend } from '../RenderBackend';
|
|
6
6
|
export declare class Text extends Sprite {
|
|
7
7
|
private _text;
|
|
8
8
|
private _style;
|
|
@@ -21,6 +21,6 @@ export declare class Text extends Sprite {
|
|
|
21
21
|
setCanvas(canvas: HTMLCanvasElement): this;
|
|
22
22
|
updateTexture(): this;
|
|
23
23
|
getWordWrappedText(): string;
|
|
24
|
-
render(
|
|
24
|
+
render(backend: RenderBackend): this;
|
|
25
25
|
private _getContext;
|
|
26
26
|
}
|
|
@@ -110,10 +110,10 @@ class Text extends Sprite {
|
|
|
110
110
|
}
|
|
111
111
|
return result;
|
|
112
112
|
}
|
|
113
|
-
render(
|
|
113
|
+
render(backend) {
|
|
114
114
|
if (this.visible) {
|
|
115
115
|
this.updateTexture();
|
|
116
|
-
super.render(
|
|
116
|
+
super.render(backend);
|
|
117
117
|
}
|
|
118
118
|
return this;
|
|
119
119
|
}
|
|
@@ -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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"}
|
|
@@ -11,9 +11,6 @@ export declare class Sampler {
|
|
|
11
11
|
private readonly _sampler;
|
|
12
12
|
private _scaleMode;
|
|
13
13
|
private _wrapMode;
|
|
14
|
-
private _premultiplyAlpha;
|
|
15
|
-
private _generateMipMap;
|
|
16
|
-
private _flipY;
|
|
17
14
|
constructor(gl: WebGL2RenderingContext, options: SamplerOptions);
|
|
18
15
|
get sampler(): WebGLSampler | null;
|
|
19
16
|
get scaleMode(): ScaleModes;
|