@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.
Files changed (151) hide show
  1. package/CHANGELOG.md +499 -163
  2. package/README.md +156 -141
  3. package/dist/esm/audio/AudioAnalyser.d.ts +0 -1
  4. package/dist/esm/audio/AudioAnalyser.js +0 -2
  5. package/dist/esm/audio/AudioAnalyser.js.map +1 -1
  6. package/dist/esm/core/Application.d.ts +4 -4
  7. package/dist/esm/core/Application.js +19 -19
  8. package/dist/esm/core/Application.js.map +1 -1
  9. package/dist/esm/core/Scene.d.ts +59 -24
  10. package/dist/esm/core/Scene.js +60 -18
  11. package/dist/esm/core/Scene.js.map +1 -1
  12. package/dist/esm/core/SceneManager.js +15 -9
  13. package/dist/esm/core/SceneManager.js.map +1 -1
  14. package/dist/esm/core/SceneNode.d.ts +45 -5
  15. package/dist/esm/core/SceneNode.js +136 -7
  16. package/dist/esm/core/SceneNode.js.map +1 -1
  17. package/dist/esm/index.js +6 -4
  18. package/dist/esm/index.js.map +1 -1
  19. package/dist/esm/math/index.d.ts +0 -1
  20. package/dist/esm/rendering/CallbackRenderPass.d.ts +3 -3
  21. package/dist/esm/rendering/CallbackRenderPass.js +2 -2
  22. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  23. package/dist/esm/rendering/Container.d.ts +10 -11
  24. package/dist/esm/rendering/Container.js +5 -5
  25. package/dist/esm/rendering/Container.js.map +1 -1
  26. package/dist/esm/rendering/Drawable.d.ts +2 -2
  27. package/dist/esm/rendering/Drawable.js +5 -5
  28. package/dist/esm/rendering/Drawable.js.map +1 -1
  29. package/dist/esm/rendering/{SceneRenderRuntime.d.ts → RenderBackend.d.ts} +21 -3
  30. package/dist/esm/rendering/RenderNode.d.ts +41 -5
  31. package/dist/esm/rendering/RenderNode.js +89 -24
  32. package/dist/esm/rendering/RenderNode.js.map +1 -1
  33. package/dist/esm/rendering/RenderPass.d.ts +2 -2
  34. package/dist/esm/rendering/RenderTargetPass.d.ts +3 -3
  35. package/dist/esm/rendering/RenderTargetPass.js +9 -9
  36. package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
  37. package/dist/esm/rendering/Renderer.d.ts +3 -3
  38. package/dist/esm/rendering/RendererRegistry.d.ts +13 -7
  39. package/dist/esm/rendering/RendererRegistry.js +18 -10
  40. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  41. package/dist/esm/rendering/filters/BlurFilter.d.ts +2 -2
  42. package/dist/esm/rendering/filters/BlurFilter.js +5 -5
  43. package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
  44. package/dist/esm/rendering/filters/ColorFilter.d.ts +2 -2
  45. package/dist/esm/rendering/filters/ColorFilter.js +3 -3
  46. package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
  47. package/dist/esm/rendering/filters/Filter.d.ts +2 -2
  48. package/dist/esm/rendering/index.d.ts +9 -6
  49. package/dist/esm/rendering/mesh/Mesh.d.ts +69 -0
  50. package/dist/esm/rendering/mesh/Mesh.js +114 -0
  51. package/dist/esm/rendering/mesh/Mesh.js.map +1 -0
  52. package/dist/esm/rendering/primitives/Graphics.d.ts +3 -3
  53. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  54. package/dist/esm/rendering/shader/Shader.d.ts +3 -3
  55. package/dist/esm/rendering/shader/Shader.js +10 -10
  56. package/dist/esm/rendering/text/Text.d.ts +2 -2
  57. package/dist/esm/rendering/text/Text.js +2 -2
  58. package/dist/esm/rendering/text/Text.js.map +1 -1
  59. package/dist/esm/rendering/texture/Sampler.d.ts +0 -3
  60. package/dist/esm/rendering/texture/Sampler.js +5 -7
  61. package/dist/esm/rendering/texture/Sampler.js.map +1 -1
  62. package/dist/esm/rendering/types.d.ts +4 -0
  63. package/dist/esm/rendering/types.js +4 -0
  64. package/dist/esm/rendering/types.js.map +1 -1
  65. package/dist/esm/rendering/video/Video.d.ts +2 -2
  66. package/dist/esm/rendering/video/Video.js +2 -2
  67. package/dist/esm/rendering/video/Video.js.map +1 -1
  68. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +2 -2
  69. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +35 -11
  70. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
  71. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.d.ts +13 -13
  72. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js +20 -20
  73. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js.map +1 -1
  74. package/dist/esm/rendering/webgl2/{WebGl2RenderManager.d.ts → WebGl2Backend.d.ts} +15 -12
  75. package/dist/esm/rendering/webgl2/{WebGl2RenderManager.js → WebGl2Backend.js} +63 -38
  76. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -0
  77. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts +31 -0
  78. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +186 -0
  79. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -0
  80. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +27 -0
  81. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +242 -0
  82. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -0
  83. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +38 -7
  84. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +281 -90
  85. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +1 -1
  86. package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.d.ts +2 -2
  87. package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.js +15 -10
  88. package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.js.map +1 -1
  89. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js +12 -0
  90. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
  91. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts +2 -0
  92. package/dist/esm/rendering/webgl2/{WebGl2ShaderRuntime.js → WebGl2ShaderProgram.js} +58 -18
  93. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -0
  94. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +26 -7
  95. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +260 -62
  96. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  97. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.d.ts +24 -1
  98. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.js +6 -2
  99. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.js.map +1 -1
  100. package/dist/esm/rendering/webgl2/glsl/mask-compose.frag.js +4 -0
  101. package/dist/esm/rendering/webgl2/glsl/mask-compose.frag.js.map +1 -0
  102. package/dist/esm/rendering/webgl2/glsl/mask-compose.vert.js +4 -0
  103. package/dist/esm/rendering/webgl2/glsl/mask-compose.vert.js.map +1 -0
  104. package/dist/esm/rendering/webgl2/glsl/mesh.frag.js +4 -0
  105. package/dist/esm/rendering/webgl2/glsl/mesh.frag.js.map +1 -0
  106. package/dist/esm/rendering/webgl2/glsl/mesh.vert.js +4 -0
  107. package/dist/esm/rendering/webgl2/glsl/mesh.vert.js.map +1 -0
  108. package/dist/esm/rendering/webgl2/glsl/particle.vert.js +1 -1
  109. package/dist/esm/rendering/webgl2/glsl/sprite.frag.js +1 -1
  110. package/dist/esm/rendering/webgl2/glsl/sprite.vert.js +1 -1
  111. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.d.ts +9 -9
  112. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js +18 -18
  113. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js.map +1 -1
  114. package/dist/esm/rendering/webgpu/{WebGpuRenderManager.d.ts → WebGpuBackend.d.ts} +17 -14
  115. package/dist/esm/rendering/webgpu/{WebGpuRenderManager.js → WebGpuBackend.js} +77 -40
  116. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -0
  117. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +37 -0
  118. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +279 -0
  119. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -0
  120. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +40 -0
  121. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +439 -0
  122. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -0
  123. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +2 -3
  124. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +65 -82
  125. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
  126. package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.d.ts +2 -3
  127. package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.js +24 -25
  128. package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.js.map +1 -1
  129. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +28 -13
  130. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +410 -382
  131. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  132. package/dist/esm/resources/Loader.js +5 -3
  133. package/dist/esm/resources/Loader.js.map +1 -1
  134. package/dist/exo.esm.js +3574 -1696
  135. package/dist/exo.esm.js.map +1 -1
  136. package/package.json +20 -11
  137. package/dist/esm/math/Transformable.d.ts +0 -47
  138. package/dist/esm/math/Transformable.js +0 -140
  139. package/dist/esm/math/Transformable.js.map +0 -1
  140. package/dist/esm/rendering/webgl2/WebGl2RenderManager.js.map +0 -1
  141. package/dist/esm/rendering/webgl2/WebGl2RendererRuntime.d.ts +0 -15
  142. package/dist/esm/rendering/webgl2/WebGl2ShaderRuntime.d.ts +0 -2
  143. package/dist/esm/rendering/webgl2/WebGl2ShaderRuntime.js.map +0 -1
  144. package/dist/esm/rendering/webgpu/WebGpuRenderManager.js.map +0 -1
  145. package/dist/esm/rendering/webgpu/WebGpuRendererRuntime.d.ts +0 -8
  146. package/dist/exo.esm.min.js +0 -2
  147. package/dist/exo.esm.min.js.map +0 -1
  148. package/dist/exo.global.js +0 -17328
  149. package/dist/exo.global.js.map +0 -1
  150. package/dist/exo.global.min.js +0 -2
  151. 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
- _runtime = null;
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 runtime, the renderer
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._runtime !== null) {
34
- renderer.connect(this._runtime);
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 runtime.
62
+ * Connect all registered renderers to the given backend.
55
63
  */
56
- connect(runtime) {
57
- this._runtime = runtime;
64
+ connect(backend) {
65
+ this._backend = backend;
58
66
  for (const renderer of this._renderers.values()) {
59
- renderer.connect(runtime);
67
+ renderer.connect(backend);
60
68
  }
61
69
  }
62
70
  /**
63
- * Disconnect all registered renderers from the current runtime.
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._runtime = null;
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 { SceneRenderRuntime } from '@/rendering/SceneRenderRuntime';
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(runtime: SceneRenderRuntime, input: RenderTexture, output: RenderTexture): void;
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(runtime, input, output) {
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
- runtime.execute(new RenderTargetPass(() => {
44
+ backend.execute(new RenderTargetPass(() => {
45
45
  if (radius <= 0) {
46
- this._sprite.setPosition(0, 0).render(runtime);
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(runtime);
53
- this._sprite.setPosition(0, offset).render(runtime);
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":"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"}
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 { SceneRenderRuntime } from '@/rendering/SceneRenderRuntime';
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(runtime: SceneRenderRuntime, input: RenderTexture, output: RenderTexture): void;
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(runtime, input, output) {
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
- runtime.execute(new RenderTargetPass(() => {
28
- this._sprite.render(runtime);
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,OAA2B,EAAE,KAAoB,EAAE,MAAqB,EAAA;AACjF,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
+ {"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 { SceneRenderRuntime } from '@/rendering/SceneRenderRuntime';
2
+ import type { RenderBackend } from '@/rendering/RenderBackend';
3
3
  export declare abstract class Filter {
4
- abstract apply(runtime: SceneRenderRuntime, input: RenderTexture, output: RenderTexture): void;
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 { WebGl2RendererRuntime } from './webgl2/WebGl2RendererRuntime';
26
- export * from './webgl2/WebGl2RenderManager';
27
- export * from './webgl2/WebGl2ShaderRuntime';
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 { WebGpuRendererRuntime } from './webgpu/WebGpuRendererRuntime';
34
- export * from './webgpu/WebGpuRenderManager';
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 './SceneRenderRuntime';
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 { SceneNode } from '@/core/SceneNode';
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: SceneNode): this;
20
- addChildAt(child: SceneNode, index: number): this;
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":"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"}
1
+ {"version":3,"file":"Graphics.js","sources":["../../../../../src/rendering/primitives/Graphics.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { ShaderAttribute } from './ShaderAttribute';
2
2
  import type { ShaderUniform } from './ShaderUniform';
3
- export interface ShaderRuntime {
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 _runtime;
15
+ private _program;
16
16
  constructor(vertexSource: string, fragmentSource: string);
17
17
  get vertexSource(): string;
18
18
  get fragmentSource(): string;
19
- connect(runtime: ShaderRuntime): this;
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
- _runtime = null;
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(runtime) {
18
- this._runtime = runtime;
19
- runtime.initialize(this);
17
+ connect(program) {
18
+ this._program = program;
19
+ program.initialize(this);
20
20
  return this;
21
21
  }
22
22
  disconnect() {
23
- this._runtime = null;
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._runtime?.bind(this);
29
+ this._program?.bind(this);
30
30
  return this;
31
31
  }
32
32
  unbind() {
33
- this._runtime?.unbind(this);
33
+ this._program?.unbind(this);
34
34
  return this;
35
35
  }
36
36
  sync() {
37
- this._runtime?.sync(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._runtime?.destroy(this);
56
- this._runtime = null;
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 { SceneRenderRuntime } from '../SceneRenderRuntime';
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(renderManager: SceneRenderRuntime): this;
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(renderManager) {
113
+ render(backend) {
114
114
  if (this.visible) {
115
115
  this.updateTexture();
116
- super.render(renderManager);
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;