@codexo/exojs 0.9.0 → 0.10.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.
Files changed (209) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +14 -14
  3. package/dist/esm/core/Application.d.ts +25 -6
  4. package/dist/esm/core/Application.js +42 -8
  5. package/dist/esm/core/Application.js.map +1 -1
  6. package/dist/esm/core/Perf.d.ts +23 -0
  7. package/dist/esm/core/Perf.js +49 -0
  8. package/dist/esm/core/Perf.js.map +1 -0
  9. package/dist/esm/core/Scene.d.ts +8 -8
  10. package/dist/esm/core/Scene.js +7 -7
  11. package/dist/esm/core/Scene.js.map +1 -1
  12. package/dist/esm/core/SceneManager.js +2 -2
  13. package/dist/esm/core/SceneManager.js.map +1 -1
  14. package/dist/esm/core/SceneNode.d.ts +0 -3
  15. package/dist/esm/core/SceneNode.js +0 -9
  16. package/dist/esm/core/SceneNode.js.map +1 -1
  17. package/dist/esm/core/capabilities.d.ts +2 -0
  18. package/dist/esm/core/capabilities.js +15 -0
  19. package/dist/esm/core/capabilities.js.map +1 -1
  20. package/dist/esm/core/index.d.ts +1 -0
  21. package/dist/esm/core/types.d.ts +1 -1
  22. package/dist/esm/core/utils.d.ts +12 -0
  23. package/dist/esm/core/utils.js +18 -1
  24. package/dist/esm/core/utils.js.map +1 -1
  25. package/dist/esm/index.js +14 -3
  26. package/dist/esm/index.js.map +1 -1
  27. package/dist/esm/particles/ParticleSystem.d.ts +8 -5
  28. package/dist/esm/particles/ParticleSystem.js +9 -5
  29. package/dist/esm/particles/ParticleSystem.js.map +1 -1
  30. package/dist/esm/particles/distributions/{Gradient.d.ts → ColorGradient.d.ts} +5 -5
  31. package/dist/esm/particles/distributions/{Gradient.js → ColorGradient.js} +5 -5
  32. package/dist/esm/particles/distributions/ColorGradient.js.map +1 -0
  33. package/dist/esm/particles/distributions/Distribution.d.ts +2 -2
  34. package/dist/esm/particles/distributions/index.d.ts +2 -2
  35. package/dist/esm/particles/gpu/ParticleGpuState.js +1 -1
  36. package/dist/esm/particles/modules/ColorOverLifetime.d.ts +3 -3
  37. package/dist/esm/particles/modules/ColorOverLifetime.js.map +1 -1
  38. package/dist/esm/particles/modules/ColorOverSpeed.d.ts +3 -3
  39. package/dist/esm/particles/modules/ColorOverSpeed.js.map +1 -1
  40. package/dist/esm/particles/modules/UpdateModule.d.ts +2 -2
  41. package/dist/esm/particles/modules/UpdateModule.js +1 -1
  42. package/dist/esm/particles/modules/WgslContribution.d.ts +2 -2
  43. package/dist/esm/rendering/Camera.d.ts +33 -0
  44. package/dist/esm/rendering/Camera.js +38 -0
  45. package/dist/esm/rendering/Camera.js.map +1 -0
  46. package/dist/esm/rendering/Container.d.ts +5 -24
  47. package/dist/esm/rendering/Container.js +8 -71
  48. package/dist/esm/rendering/Container.js.map +1 -1
  49. package/dist/esm/rendering/Drawable.d.ts +8 -10
  50. package/dist/esm/rendering/Drawable.js +12 -20
  51. package/dist/esm/rendering/Drawable.js.map +1 -1
  52. package/dist/esm/rendering/RenderBackend.d.ts +18 -0
  53. package/dist/esm/rendering/RenderNode.d.ts +81 -8
  54. package/dist/esm/rendering/RenderNode.js +121 -144
  55. package/dist/esm/rendering/RenderNode.js.map +1 -1
  56. package/dist/esm/rendering/RenderTarget.d.ts +13 -0
  57. package/dist/esm/rendering/RenderTarget.js +13 -0
  58. package/dist/esm/rendering/RenderTarget.js.map +1 -1
  59. package/dist/esm/rendering/RenderTargetPass.js +17 -0
  60. package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
  61. package/dist/esm/rendering/RenderingContext.d.ts +87 -0
  62. package/dist/esm/rendering/RenderingContext.js +157 -0
  63. package/dist/esm/rendering/RenderingContext.js.map +1 -0
  64. package/dist/esm/rendering/TransformBuffer.d.ts +38 -0
  65. package/dist/esm/rendering/TransformBuffer.js +116 -0
  66. package/dist/esm/rendering/TransformBuffer.js.map +1 -0
  67. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +5 -12
  68. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  69. package/dist/esm/rendering/geometry/Geometry.d.ts +40 -0
  70. package/dist/esm/rendering/geometry/Geometry.js +228 -0
  71. package/dist/esm/rendering/geometry/Geometry.js.map +1 -0
  72. package/dist/esm/rendering/geometry/GeometryAttribute.d.ts +32 -0
  73. package/dist/esm/rendering/geometry/QuadGeometry.d.ts +5 -0
  74. package/dist/esm/rendering/gradient/Gradient.d.ts +34 -0
  75. package/dist/esm/rendering/gradient/Gradient.js +114 -0
  76. package/dist/esm/rendering/gradient/Gradient.js.map +1 -0
  77. package/dist/esm/rendering/gradient/LinearGradient.d.ts +10 -0
  78. package/dist/esm/rendering/gradient/LinearGradient.js +26 -0
  79. package/dist/esm/rendering/gradient/LinearGradient.js.map +1 -0
  80. package/dist/esm/rendering/gradient/RadialGradient.d.ts +10 -0
  81. package/dist/esm/rendering/gradient/RadialGradient.js +25 -0
  82. package/dist/esm/rendering/gradient/RadialGradient.js.map +1 -0
  83. package/dist/esm/rendering/index.d.ts +16 -2
  84. package/dist/esm/rendering/material/Material.d.ts +114 -0
  85. package/dist/esm/rendering/material/Material.js +111 -0
  86. package/dist/esm/rendering/material/Material.js.map +1 -0
  87. package/dist/esm/rendering/material/MaterialKey.d.ts +18 -0
  88. package/dist/esm/rendering/material/MaterialKey.js +82 -0
  89. package/dist/esm/rendering/material/MaterialKey.js.map +1 -0
  90. package/dist/esm/rendering/material/MeshMaterial.d.ts +16 -0
  91. package/dist/esm/rendering/material/MeshMaterial.js +21 -0
  92. package/dist/esm/rendering/material/MeshMaterial.js.map +1 -0
  93. package/dist/esm/rendering/{mesh/MeshShader.d.ts → material/ShaderSource.d.ts} +29 -62
  94. package/dist/esm/rendering/{mesh/MeshShader.js → material/ShaderSource.js} +35 -62
  95. package/dist/esm/rendering/material/ShaderSource.js.map +1 -0
  96. package/dist/esm/rendering/material/SpriteMaterial.d.ts +15 -0
  97. package/dist/esm/rendering/material/SpriteMaterial.js +20 -0
  98. package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -0
  99. package/dist/esm/rendering/mesh/Mesh.d.ts +29 -12
  100. package/dist/esm/rendering/mesh/Mesh.js +122 -3
  101. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  102. package/dist/esm/rendering/pass/RenderPassCoordinator.d.ts +63 -0
  103. package/dist/esm/rendering/pass/RenderPassDescriptor.d.ts +48 -0
  104. package/dist/esm/rendering/pass/RenderPassDescriptor.js +16 -0
  105. package/dist/esm/rendering/pass/RenderPassDescriptor.js.map +1 -0
  106. package/dist/esm/rendering/plan/RenderCommand.d.ts +67 -0
  107. package/dist/esm/rendering/plan/RenderCommand.js +94 -0
  108. package/dist/esm/rendering/plan/RenderCommand.js.map +1 -0
  109. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts +10 -0
  110. package/dist/esm/rendering/plan/RenderEffectExecutor.js +159 -0
  111. package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -0
  112. package/dist/esm/rendering/plan/RenderPlan.d.ts +23 -0
  113. package/dist/esm/rendering/plan/RenderPlan.js +12 -0
  114. package/dist/esm/rendering/plan/RenderPlan.js.map +1 -0
  115. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +31 -0
  116. package/dist/esm/rendering/plan/RenderPlanBuilder.js +242 -0
  117. package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -0
  118. package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts +10 -0
  119. package/dist/esm/rendering/plan/RenderPlanOptimizer.js +180 -0
  120. package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -0
  121. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts +9 -0
  122. package/dist/esm/rendering/plan/RenderPlanPlayer.js +56 -0
  123. package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -0
  124. package/dist/esm/rendering/plan/RenderScope.d.ts +70 -0
  125. package/dist/esm/rendering/plan/RenderScope.js +16 -0
  126. package/dist/esm/rendering/plan/RenderScope.js.map +1 -0
  127. package/dist/esm/rendering/plan/playRenderTree.d.ts +4 -0
  128. package/dist/esm/rendering/plan/playRenderTree.js +19 -0
  129. package/dist/esm/rendering/plan/playRenderTree.js.map +1 -0
  130. package/dist/esm/rendering/sprite/Sprite.d.ts +22 -1
  131. package/dist/esm/rendering/sprite/Sprite.js +33 -2
  132. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  133. package/dist/esm/rendering/sprite/spriteMaterialSources.d.ts +36 -0
  134. package/dist/esm/rendering/sprite/spriteMaterialSources.js +128 -0
  135. package/dist/esm/rendering/sprite/spriteMaterialSources.js.map +1 -0
  136. package/dist/esm/rendering/text/TextStyle.d.ts +1 -1
  137. package/dist/esm/rendering/texture/DataTexture.d.ts +5 -0
  138. package/dist/esm/rendering/texture/DataTexture.js +7 -0
  139. package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
  140. package/dist/esm/rendering/video/Video.d.ts +3 -7
  141. package/dist/esm/rendering/video/Video.js +3 -8
  142. package/dist/esm/rendering/video/Video.js.map +1 -1
  143. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +40 -0
  144. package/dist/esm/rendering/webgl2/WebGl2Backend.js +303 -22
  145. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  146. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +22 -2
  147. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +404 -112
  148. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
  149. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.d.ts +57 -0
  150. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js +79 -0
  151. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js.map +1 -0
  152. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +12 -0
  153. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +214 -58
  154. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  155. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts +34 -0
  156. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +169 -0
  157. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -0
  158. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +4 -0
  159. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
  160. package/dist/esm/rendering/webgl2/glsl/mesh.frag.js +1 -1
  161. package/dist/esm/rendering/webgl2/glsl/mesh.vert.js +1 -1
  162. package/dist/esm/rendering/webgl2/glsl/stencil-clip.frag.js +4 -0
  163. package/dist/esm/rendering/webgl2/glsl/stencil-clip.frag.js.map +1 -0
  164. package/dist/esm/rendering/webgl2/glsl/stencil-clip.vert.js +4 -0
  165. package/dist/esm/rendering/webgl2/glsl/stencil-clip.vert.js.map +1 -0
  166. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +50 -0
  167. package/dist/esm/rendering/webgpu/WebGpuBackend.js +135 -19
  168. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  169. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +22 -17
  170. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
  171. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +24 -0
  172. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +488 -74
  173. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  174. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +13 -17
  175. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
  176. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +141 -0
  177. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +270 -0
  178. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -0
  179. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +16 -0
  180. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +335 -26
  181. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  182. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +57 -0
  183. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +257 -0
  184. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -0
  185. package/dist/esm/rendering/webgpu/WebGpuStencilState.d.ts +14 -0
  186. package/dist/esm/rendering/webgpu/WebGpuStencilState.js +36 -0
  187. package/dist/esm/rendering/webgpu/WebGpuStencilState.js.map +1 -0
  188. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +14 -12
  189. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
  190. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +16 -0
  191. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +57 -0
  192. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -0
  193. package/dist/esm/resources/JsonStore.d.ts +18 -0
  194. package/dist/esm/resources/JsonStore.js +62 -0
  195. package/dist/esm/resources/JsonStore.js.map +1 -0
  196. package/dist/esm/resources/factories/ImageFactory.d.ts +14 -8
  197. package/dist/esm/resources/factories/ImageFactory.js +13 -6
  198. package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
  199. package/dist/esm/resources/factories/TextureFactory.d.ts +4 -4
  200. package/dist/esm/resources/factories/TextureFactory.js +8 -4
  201. package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
  202. package/dist/esm/resources/index.d.ts +1 -0
  203. package/dist/exo.esm.js +5424 -2205
  204. package/dist/exo.esm.js.map +1 -1
  205. package/package.json +30 -24
  206. package/dist/esm/particles/distributions/Gradient.js.map +0 -1
  207. package/dist/esm/rendering/mesh/MeshShader.js.map +0 -1
  208. package/dist/esm/vendor/webgl-debug.js +0 -1160
  209. package/dist/esm/vendor/webgl-debug.js.map +0 -1
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Canonical engine vertex stage for the custom {@link SpriteMaterial} path.
3
+ *
4
+ * @internal — not part of the public package surface. A custom `SpriteMaterial`
5
+ * customizes the **fragment** stage only; the vertex stage (quad-corner
6
+ * expansion, affine transform, UV unpacking) is owned by the renderer and stays
7
+ * instancing-critical. The sprite renderers consume these constants directly:
8
+ * `WebGl2SpriteRenderer` pairs {@link spriteVertexGlsl} with the material's
9
+ * fragment (ignoring any author-supplied `glsl.vertex`), and
10
+ * `WebGpuSpriteRenderer` prepends {@link spriteVertexWgsl} to the material's
11
+ * fragment WGSL. Both pin the per-instance attribute locations 0–5 and the
12
+ * projection binding exactly as the default sprite path does, so a custom
13
+ * material keeps the single `drawArraysInstanced` / `drawIndexed` batch.
14
+ *
15
+ * A custom fragment receives the interpolated `v_texcoord` and premultiplied
16
+ * `v_color`, plus the per-batch base texture bound as `u_texture` (WebGL2 unit 0
17
+ * / WGSL group(1) binding 0). Material uniforms and additional textures bind on
18
+ * top (WebGL2 units 1..N / WGSL group(2)).
19
+ */
20
+ /**
21
+ * GLSL ES 3.00 vertex shader for the custom sprite-material path. Identical
22
+ * corner expansion and attribute contract to the default sprite vertex shader.
23
+ * @internal
24
+ */
25
+ const spriteVertexGlsl = `#version 300 es
26
+ precision highp float;
27
+ precision highp int;
28
+
29
+ // Per-instance attributes (divisor = 1). Each Sprite contributes one entry
30
+ // to the per-instance buffer; gl_VertexID 0..3 selects which corner of the
31
+ // quad this invocation is computing.
32
+ layout(location = 0) in vec4 a_localBounds; // left, top, right, bottom (local space)
33
+ layout(location = 1) in vec3 a_transformAB; // a, b, x — first row of 2D affine
34
+ layout(location = 2) in vec3 a_transformCD; // c, d, y — second row
35
+ layout(location = 3) in vec4 a_uvBounds; // uMin, vMin, uMax, vMax (normalised, already flipY-swapped)
36
+ layout(location = 4) in vec4 a_color; // RGBA tint
37
+ layout(location = 5) in uint a_textureSlot;
38
+
39
+ uniform mat3 u_projection;
40
+
41
+ out vec2 v_texcoord;
42
+ out vec4 v_color;
43
+ flat out uint v_textureSlot;
44
+
45
+ void main(void) {
46
+ // gl_VertexID 0..3 → corner: 0=TL, 1=TR, 2=BL, 3=BR (TRIANGLE_STRIP order)
47
+ int vid = gl_VertexID;
48
+ int cornerX = vid & 1;
49
+ int cornerY = (vid >> 1) & 1;
50
+
51
+ float localX = (cornerX == 0) ? a_localBounds.x : a_localBounds.z;
52
+ float localY = (cornerY == 0) ? a_localBounds.y : a_localBounds.w;
53
+
54
+ float worldX = (a_transformAB.x * localX) + (a_transformAB.y * localY) + a_transformAB.z;
55
+ float worldY = (a_transformCD.x * localX) + (a_transformCD.y * localY) + a_transformCD.z;
56
+
57
+ gl_Position = vec4((u_projection * vec3(worldX, worldY, 1.0)).xy, 0.0, 1.0);
58
+
59
+ float u = (cornerX == 0) ? a_uvBounds.x : a_uvBounds.z;
60
+ float v = (cornerY == 0) ? a_uvBounds.y : a_uvBounds.w;
61
+ v_texcoord = vec2(u, v);
62
+
63
+ v_color = vec4(a_color.rgb * a_color.a, a_color.a);
64
+ v_textureSlot = a_textureSlot;
65
+ }
66
+ `;
67
+ /**
68
+ * WGSL vertex stage + shared bindings for the custom sprite-material path.
69
+ * Prepend to a material's fragment WGSL: it declares the per-instance
70
+ * `VertexInput` (locations 0–5), the `VertexOutput` a custom `@fragment`
71
+ * consumes, the group(0) projection uniform, the group(1) base texture and
72
+ * sampler (`u_texture` / `u_sampler`), and the `vertexMain` entry point. The
73
+ * fragment author adds their group(2) bindings and a `fragmentMain` reading
74
+ * `VertexOutput`.
75
+ * @internal
76
+ */
77
+ const spriteVertexWgsl = `
78
+ struct ProjectionUniforms {
79
+ matrix: mat4x4<f32>,
80
+ };
81
+
82
+ @group(0) @binding(0) var<uniform> projection: ProjectionUniforms;
83
+
84
+ @group(1) @binding(0) var u_texture: texture_2d<f32>;
85
+ @group(1) @binding(1) var u_sampler: sampler;
86
+
87
+ struct VertexInput {
88
+ @location(0) localBounds: vec4<f32>,
89
+ @location(1) transformAB: vec3<f32>,
90
+ @location(2) transformCD: vec3<f32>,
91
+ @location(3) uvBounds: vec4<f32>,
92
+ @location(4) color: vec4<f32>,
93
+ @location(5) textureSlot: u32,
94
+ };
95
+
96
+ struct VertexOutput {
97
+ @builtin(position) position: vec4<f32>,
98
+ @location(0) texcoord: vec2<f32>,
99
+ @location(1) color: vec4<f32>,
100
+ };
101
+
102
+ @vertex
103
+ fn vertexMain(input: VertexInput, @builtin(vertex_index) vid: u32) -> VertexOutput {
104
+ var output: VertexOutput;
105
+
106
+ let cornerX = ((vid + 1u) >> 1u) & 1u;
107
+ let cornerY = vid >> 1u;
108
+
109
+ let localX = select(input.localBounds.x, input.localBounds.z, cornerX == 1u);
110
+ let localY = select(input.localBounds.y, input.localBounds.w, cornerY == 1u);
111
+
112
+ let worldX = input.transformAB.x * localX + input.transformAB.y * localY + input.transformAB.z;
113
+ let worldY = input.transformCD.x * localX + input.transformCD.y * localY + input.transformCD.z;
114
+
115
+ output.position = projection.matrix * vec4<f32>(worldX, worldY, 0.0, 1.0);
116
+
117
+ let u = select(input.uvBounds.x, input.uvBounds.z, cornerX == 1u);
118
+ let v = select(input.uvBounds.y, input.uvBounds.w, cornerY == 1u);
119
+ output.texcoord = vec2<f32>(u, v);
120
+
121
+ output.color = vec4<f32>(input.color.rgb * input.color.a, input.color.a);
122
+
123
+ return output;
124
+ }
125
+ `;
126
+
127
+ export { spriteVertexGlsl, spriteVertexWgsl };
128
+ //# sourceMappingURL=spriteMaterialSources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spriteMaterialSources.js","sources":["../../../../../src/rendering/sprite/spriteMaterialSources.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;AAkBG;AAEH;;;;AAIG;AACI,MAAM,gBAAgB,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2ChC;;;;;;;;;AASG;AACI,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -20,7 +20,7 @@ export type FontWeight = 'normal' | 'bold' | '100' | '200' | '300' | '400' | '50
20
20
  * ```ts
21
21
  * declare module 'exojs' {
22
22
  * interface FontRegistry {
23
- * 'AndyBold': true;
23
+ * 'Kenney Future': true;
24
24
  * }
25
25
  * }
26
26
  * ```
@@ -90,6 +90,11 @@ export declare class DataTexture<F extends DataTextureFormat = DataTextureFormat
90
90
  constructor(options: DataTextureOptions & {
91
91
  format: F;
92
92
  });
93
+ /**
94
+ * DataTexture has no external image source. Override the base implementation
95
+ * so Sprite/Mesh texture assignment does not collapse dimensions to 0x0.
96
+ */
97
+ updateSource(): this;
93
98
  /**
94
99
  * Mark the entire buffer for re-upload on next backend sync. Call after
95
100
  * mutating `buffer` contents to flush changes to the GPU.
@@ -108,6 +108,13 @@ class DataTexture extends Texture {
108
108
  // Mark fully dirty so the first sync uploads the whole buffer.
109
109
  this._dirty = { full: true, x: 0, y: 0, width, height };
110
110
  }
111
+ /**
112
+ * DataTexture has no external image source. Override the base implementation
113
+ * so Sprite/Mesh texture assignment does not collapse dimensions to 0x0.
114
+ */
115
+ updateSource() {
116
+ return this.commit();
117
+ }
111
118
  /**
112
119
  * Mark the entire buffer for re-upload on next backend sync. Call after
113
120
  * mutating `buffer` contents to flush changes to the GPU.
@@ -1 +1 @@
1
- {"version":3,"file":"DataTexture.js","sources":["../../../../../src/rendering/texture/DataTexture.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataTexture.js","sources":["../../../../../src/rendering/texture/DataTexture.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { AudioBus } from '@/audio/AudioBus';
2
2
  import type { Media } from '@/audio/Media';
3
3
  import { Signal } from '@/core/Signal';
4
4
  import type { PlaybackOptions } from '@/core/types';
5
- import type { RenderBackend } from '../RenderBackend';
5
+ import type { RenderPlanBuilder } from '@/rendering/plan/RenderPlanBuilder';
6
6
  import { Sprite } from '../sprite/Sprite';
7
7
  import type { SamplerOptions } from '../texture/Sampler';
8
8
  /**
@@ -79,12 +79,8 @@ export declare class Video extends Sprite implements Media {
79
79
  getTime(): number;
80
80
  setTime(time: number): this;
81
81
  setMuted(muted: boolean): this;
82
- /**
83
- * Mark the texture dirty when the video frame has advanced, then upload
84
- * the latest video frame and delegate rendering to {@link Sprite.render}.
85
- * @internal
86
- */
87
- render(backend: RenderBackend): this;
82
+ /** @internal */
83
+ _collect(builder: RenderPlanBuilder, seq?: number): void;
88
84
  /**
89
85
  * Upload the current video frame to the GPU texture if the frame is dirty
90
86
  * and the video dimensions are known. Called automatically by `render`;
@@ -257,18 +257,13 @@ class Video extends Sprite {
257
257
  }
258
258
  return this;
259
259
  }
260
- /**
261
- * Mark the texture dirty when the video frame has advanced, then upload
262
- * the latest video frame and delegate rendering to {@link Sprite.render}.
263
- * @internal
264
- */
265
- render(backend) {
260
+ /** @internal */
261
+ _collect(builder, seq) {
266
262
  if (this.visible) {
267
263
  this._markTextureDirtyOnPlaybackAdvance();
268
264
  this.updateTexture();
269
- super.render(backend);
270
265
  }
271
- return this;
266
+ super._collect(builder, seq);
272
267
  }
273
268
  /**
274
269
  * Upload the current video frame to the GPU texture if the frame is dirty
@@ -1 +1 @@
1
- {"version":3,"file":"Video.js","sources":["../../../../../src/rendering/video/Video.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Video.js","sources":["../../../../../src/rendering/video/Video.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  import type { Application } from '@/core/Application';
2
2
  import { Color } from '@/core/Color';
3
3
  import { Signal } from '@/core/Signal';
4
+ import { Matrix } from '@/math/Matrix';
4
5
  import type { Rectangle } from '@/math/Rectangle';
5
6
  import { BlendModes } from '@/rendering/types';
6
7
  import type { Drawable } from '../Drawable';
8
+ import type { Geometry } from '../geometry/Geometry';
9
+ import type { DrawCommand } from '../plan/RenderCommand';
7
10
  import type { RenderBackend } from '../RenderBackend';
8
11
  import { RenderBackendType } from '../RenderBackendType';
9
12
  import { RendererRegistry } from '../RendererRegistry';
@@ -14,6 +17,7 @@ import type { Shader } from '../shader/Shader';
14
17
  import { RenderTexture } from '../texture/RenderTexture';
15
18
  import type { Texture } from '../texture/Texture';
16
19
  import type { View } from '../View';
20
+ import { WebGl2PassCoordinator } from './WebGl2PassCoordinator';
17
21
  import type { WebGl2VertexArrayObject } from './WebGl2VertexArrayObject';
18
22
  /**
19
23
  * WebGL 2.0 implementation of {@link RenderBackend}. Manages the GL
@@ -48,6 +52,10 @@ export declare class WebGl2Backend implements RenderBackend {
48
52
  private readonly _clipPointB;
49
53
  private readonly _maskCompositor;
50
54
  private _maskCompositorConnected;
55
+ private readonly _stencilClipper;
56
+ private readonly _stencilStates;
57
+ private _stencilClipperConnected;
58
+ private _passCoordinatorInstance;
51
59
  private _canvas;
52
60
  private _contextLost;
53
61
  private _renderTarget;
@@ -60,19 +68,43 @@ export declare class WebGl2Backend implements RenderBackend {
60
68
  private _clearColor;
61
69
  private _boundFramebuffer;
62
70
  private readonly _stats;
71
+ private readonly _transformBuffer;
72
+ private _transformTexture;
73
+ private _transformTextureHash;
74
+ private _transformTextureCount;
75
+ private _activeDrawCommand;
76
+ private _drawPlanDepth;
63
77
  constructor(app: Application);
64
78
  get context(): WebGL2RenderingContext;
65
79
  get renderTarget(): RenderTarget;
66
80
  get view(): View;
67
81
  get clearColor(): Color;
68
82
  get stats(): RenderStats;
83
+ /** @internal */
84
+ get activeDrawCommand(): DrawCommand | null;
85
+ /**
86
+ * Internal render-pass coordinator. Owns target / view / clear orchestration
87
+ * and the scissor / stencil-clip stacks for this backend; not part of the
88
+ * public {@link RenderBackend} surface.
89
+ * @internal
90
+ */
91
+ get _passCoordinator(): WebGl2PassCoordinator;
69
92
  initialize(): Promise<this>;
70
93
  resetStats(): this;
94
+ /** @internal */
95
+ _beginDrawPlan(nodeCount: number): void;
96
+ /** @internal */
97
+ _prepareDrawCommand(command: DrawCommand): void;
98
+ /** @internal */
99
+ _endDrawPlan(): void;
100
+ private _assertBalancedStencil;
71
101
  draw(drawable: Drawable): this;
72
102
  execute(pass: RenderPass): this;
73
103
  setRenderTarget(target: RenderTarget | null): this;
74
104
  pushScissorRect(bounds: Rectangle): this;
75
105
  popScissorRect(): this;
106
+ pushStencilClip(shape: Geometry, transform: Matrix): this;
107
+ popStencilClip(): this;
76
108
  composeWithAlphaMask(content: Texture | RenderTexture, mask: Texture | RenderTexture, x: number, y: number, width: number, height: number, blendMode: BlendModes): this;
77
109
  acquireRenderTexture(width: number, height: number): RenderTexture;
78
110
  releaseRenderTexture(texture: RenderTexture): this;
@@ -80,6 +112,8 @@ export declare class WebGl2Backend implements RenderBackend {
80
112
  bindVertexArrayObject(vao: WebGl2VertexArrayObject | null): this;
81
113
  bindShader(shader: Shader | null): this;
82
114
  bindTexture(texture: Texture | RenderTexture | null, unit?: number): this;
115
+ /** @internal */
116
+ bindTransformBufferTexture(unit: number, minCount: number): this;
83
117
  setBlendMode(blendMode: BlendModes | null): this;
84
118
  private _setTextureUnit;
85
119
  setClearColor(color: Color): this;
@@ -108,6 +142,12 @@ export declare class WebGl2Backend implements RenderBackend {
108
142
  private _setActiveRenderer;
109
143
  private _flushActiveRenderer;
110
144
  private _prepareRenderTarget;
145
+ /** Attach a depth/stencil renderbuffer to the active target if it lacks one. */
146
+ private _ensureTargetStencil;
147
+ private _syncStencilAttachment;
148
+ private _getStencilState;
149
+ /** Re-apply the GL stencil test to match `target`'s current clip depth. */
150
+ private _applyStencilState;
111
151
  private _syncTexture;
112
152
  private _toClipPixels;
113
153
  private _intersectClips;