@lightningjs/renderer 2.8.0 → 2.9.0-beta1

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 (231) hide show
  1. package/README.md +7 -4
  2. package/dist/src/common/EventEmitter.js.map +1 -1
  3. package/dist/src/core/CoreNode.js.map +1 -1
  4. package/dist/src/core/CoreShaderManager.js.map +1 -1
  5. package/dist/src/core/CoreTextNode.js.map +1 -1
  6. package/dist/src/core/CoreTextureManager.d.ts +13 -1
  7. package/dist/src/core/CoreTextureManager.js +163 -7
  8. package/dist/src/core/CoreTextureManager.js.map +1 -1
  9. package/dist/src/core/Stage.js +1 -1
  10. package/dist/src/core/Stage.js.map +1 -1
  11. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  12. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  13. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  14. package/dist/src/core/lib/ContextSpy.js.map +1 -1
  15. package/dist/src/core/lib/ImageWorker.d.ts +2 -1
  16. package/dist/src/core/lib/ImageWorker.js +40 -11
  17. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  18. package/dist/src/core/lib/Matrix3d.js.map +1 -1
  19. package/dist/src/core/lib/RenderCoords.js.map +1 -1
  20. package/dist/src/core/lib/WebGlContextWrapper.d.ts +10 -0
  21. package/dist/src/core/lib/WebGlContextWrapper.js +15 -0
  22. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  23. package/dist/src/core/lib/textureCompression.js.map +1 -1
  24. package/dist/src/core/lib/utils.js.map +1 -1
  25. package/dist/src/core/platform.js.map +1 -1
  26. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +3 -3
  27. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -1
  28. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -1
  29. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +1 -0
  30. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +38 -0
  31. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
  32. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
  33. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -1
  34. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  35. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +9 -3
  36. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -1
  37. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +4 -4
  38. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  39. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +6 -1
  40. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
  41. package/dist/src/core/renderers/webgl/internal/RendererUtils.js +1 -1
  42. package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
  43. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +4 -3
  44. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
  45. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -1
  46. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
  47. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -1
  48. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +1 -1
  49. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -1
  50. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -1
  51. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +1 -1
  52. package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -1
  53. package/dist/src/core/text-rendering/TrFontManager.js.map +1 -1
  54. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +3 -4
  55. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  56. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +1 -1
  57. package/dist/src/core/text-rendering/font-face-types/TrFontFace.js.map +1 -1
  58. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +1 -1
  59. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  60. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  61. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +4 -4
  62. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  63. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js.map +1 -1
  64. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +1 -1
  65. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js.map +1 -1
  66. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  67. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js.map +1 -1
  68. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map +1 -1
  69. package/dist/src/core/text-rendering/renderers/TextRenderer.js +1 -1
  70. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  71. package/dist/src/core/textures/ColorTexture.js.map +1 -1
  72. package/dist/src/core/textures/ImageTexture.d.ts +8 -0
  73. package/dist/src/core/textures/ImageTexture.js +52 -39
  74. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  75. package/dist/src/core/textures/NoiseTexture.js.map +1 -1
  76. package/dist/src/core/textures/SubTexture.js.map +1 -1
  77. package/dist/src/core/textures/Texture.js.map +1 -1
  78. package/dist/src/core/utils.d.ts +1 -1
  79. package/dist/src/core/utils.js.map +1 -1
  80. package/dist/src/main-api/DynamicShaderController.js.map +1 -1
  81. package/dist/src/main-api/ICoreDriver.d.ts +1 -4
  82. package/dist/src/main-api/Inspector.js.map +1 -1
  83. package/dist/src/main-api/Renderer.js.map +1 -1
  84. package/dist/src/main-api/RendererMain.d.ts +5 -2
  85. package/dist/src/main-api/RendererMain.js +6 -4
  86. package/dist/src/main-api/RendererMain.js.map +1 -1
  87. package/dist/src/main-api/ShaderController.js.map +1 -1
  88. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +1 -1
  89. package/dist/src/main-api/utils.js.map +1 -1
  90. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +1 -4
  91. package/dist/src/render-drivers/main/MainCoreDriver.js +1 -4
  92. package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -1
  93. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +8 -6
  94. package/dist/src/render-drivers/main/MainOnlyNode.js +30 -1
  95. package/dist/src/render-drivers/main/MainOnlyNode.js.map +1 -1
  96. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +1 -1
  97. package/dist/src/render-drivers/main/MainOnlyTextNode.js +2 -3
  98. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +1 -1
  99. package/dist/src/render-drivers/threadx/NodeStruct.d.ts +3 -0
  100. package/dist/src/render-drivers/threadx/NodeStruct.js +9 -0
  101. package/dist/src/render-drivers/threadx/NodeStruct.js.map +1 -1
  102. package/dist/src/render-drivers/threadx/SharedNode.d.ts +1 -0
  103. package/dist/src/render-drivers/threadx/SharedNode.js +1 -0
  104. package/dist/src/render-drivers/threadx/SharedNode.js.map +1 -1
  105. package/dist/src/render-drivers/threadx/TextNodeStruct.js +3 -1
  106. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +1 -1
  107. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +1 -4
  108. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +2 -4
  109. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -1
  110. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +8 -4
  111. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +53 -24
  112. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +1 -1
  113. package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +7 -5
  114. package/dist/src/render-drivers/threadx/ThreadXMainNode.js +8 -2
  115. package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +1 -1
  116. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +1 -1
  117. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +7 -0
  118. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +1 -1
  119. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +1 -0
  120. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +1 -1
  121. package/dist/src/render-drivers/threadx/worker/renderer.js +2 -0
  122. package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -1
  123. package/dist/src/render-drivers/utils.js +6 -1
  124. package/dist/src/render-drivers/utils.js.map +1 -1
  125. package/dist/src/utils.js.map +1 -1
  126. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  127. package/dist/tsconfig.tsbuildinfo +1 -0
  128. package/package.json +10 -11
  129. package/src/core/CoreTextureManager.ts +188 -10
  130. package/src/core/lib/ImageWorker.ts +63 -11
  131. package/src/core/lib/WebGlContextWrapper.ts +16 -0
  132. package/src/core/renderers/canvas/CanvasCoreRenderer.ts +9 -3
  133. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +93 -0
  134. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +12 -5
  135. package/src/core/renderers/webgl/WebGlCoreShader.ts +7 -1
  136. package/src/core/renderers/webgl/internal/ShaderUtils.ts +9 -3
  137. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +6 -4
  138. package/src/core/textures/ImageTexture.ts +78 -45
  139. package/dist/src/core/CoreStuff.d.ts +0 -1
  140. package/dist/src/core/CoreStuff.js +0 -138
  141. package/dist/src/core/CoreStuff.js.map +0 -1
  142. package/dist/src/core/LngNode.d.ts +0 -736
  143. package/dist/src/core/LngNode.js +0 -1174
  144. package/dist/src/core/LngNode.js.map +0 -1
  145. package/dist/src/core/Matrix2DContext.d.ts +0 -15
  146. package/dist/src/core/Matrix2DContext.js +0 -45
  147. package/dist/src/core/Matrix2DContext.js.map +0 -1
  148. package/dist/src/core/ShaderNode.d.ts +0 -10
  149. package/dist/src/core/ShaderNode.js +0 -30
  150. package/dist/src/core/ShaderNode.js.map +0 -1
  151. package/dist/src/core/TextNode.d.ts +0 -103
  152. package/dist/src/core/TextNode.js +0 -331
  153. package/dist/src/core/TextNode.js.map +0 -1
  154. package/dist/src/core/lib/Coords.d.ts +0 -14
  155. package/dist/src/core/lib/Coords.js +0 -55
  156. package/dist/src/core/lib/Coords.js.map +0 -1
  157. package/dist/src/core/lib/glm/common.d.ts +0 -162
  158. package/dist/src/core/lib/glm/common.js +0 -81
  159. package/dist/src/core/lib/glm/common.js.map +0 -1
  160. package/dist/src/core/lib/glm/index.d.ts +0 -11
  161. package/dist/src/core/lib/glm/index.js +0 -30
  162. package/dist/src/core/lib/glm/index.js.map +0 -1
  163. package/dist/src/core/lib/glm/mat2.d.ts +0 -219
  164. package/dist/src/core/lib/glm/mat2.js +0 -396
  165. package/dist/src/core/lib/glm/mat2.js.map +0 -1
  166. package/dist/src/core/lib/glm/mat2d.d.ts +0 -237
  167. package/dist/src/core/lib/glm/mat2d.js +0 -442
  168. package/dist/src/core/lib/glm/mat2d.js.map +0 -1
  169. package/dist/src/core/lib/glm/mat3.d.ts +0 -283
  170. package/dist/src/core/lib/glm/mat3.js +0 -680
  171. package/dist/src/core/lib/glm/mat3.js.map +0 -1
  172. package/dist/src/core/lib/glm/mat4.d.ts +0 -550
  173. package/dist/src/core/lib/glm/mat4.js +0 -1802
  174. package/dist/src/core/lib/glm/mat4.js.map +0 -1
  175. package/dist/src/core/lib/glm/quat.d.ts +0 -363
  176. package/dist/src/core/lib/glm/quat.js +0 -693
  177. package/dist/src/core/lib/glm/quat.js.map +0 -1
  178. package/dist/src/core/lib/glm/quat2.d.ts +0 -356
  179. package/dist/src/core/lib/glm/quat2.js +0 -754
  180. package/dist/src/core/lib/glm/quat2.js.map +0 -1
  181. package/dist/src/core/lib/glm/vec2.d.ts +0 -365
  182. package/dist/src/core/lib/glm/vec2.js +0 -569
  183. package/dist/src/core/lib/glm/vec2.js.map +0 -1
  184. package/dist/src/core/lib/glm/vec3.d.ts +0 -406
  185. package/dist/src/core/lib/glm/vec3.js +0 -720
  186. package/dist/src/core/lib/glm/vec3.js.map +0 -1
  187. package/dist/src/core/lib/glm/vec4.d.ts +0 -330
  188. package/dist/src/core/lib/glm/vec4.js +0 -608
  189. package/dist/src/core/lib/glm/vec4.js.map +0 -1
  190. package/dist/src/core/renderers/CoreShaderManager.d.ts +0 -19
  191. package/dist/src/core/renderers/CoreShaderManager.js +0 -33
  192. package/dist/src/core/renderers/CoreShaderManager.js.map +0 -1
  193. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.d.ts +0 -27
  194. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js +0 -82
  195. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js.map +0 -1
  196. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.d.ts +0 -11
  197. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js +0 -34
  198. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js.map +0 -1
  199. package/dist/src/core/scene/Scene.d.ts +0 -59
  200. package/dist/src/core/scene/Scene.js +0 -106
  201. package/dist/src/core/scene/Scene.js.map +0 -1
  202. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +0 -20
  203. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +0 -55
  204. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +0 -1
  205. package/dist/src/main-api/IRenderDriver.d.ts +0 -20
  206. package/dist/src/main-api/IRenderDriver.js +0 -20
  207. package/dist/src/main-api/IRenderDriver.js.map +0 -1
  208. package/dist/src/main-api/IShaderController.d.ts +0 -14
  209. package/dist/src/main-api/IShaderController.js +0 -30
  210. package/dist/src/main-api/IShaderController.js.map +0 -1
  211. package/dist/src/main-api/IShaderNode.d.ts +0 -17
  212. package/dist/src/main-api/IShaderNode.js +0 -19
  213. package/dist/src/main-api/IShaderNode.js.map +0 -1
  214. package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +0 -6
  215. package/dist/src/render-drivers/main/MainOnlyShaderController.js +0 -15
  216. package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +0 -1
  217. package/dist/src/render-drivers/main/MainOnlyShaderNode.d.ts +0 -7
  218. package/dist/src/render-drivers/main/MainOnlyShaderNode.js +0 -34
  219. package/dist/src/render-drivers/main/MainOnlyShaderNode.js.map +0 -1
  220. package/dist/src/render-drivers/main/MainRenderDriver.d.ts +0 -17
  221. package/dist/src/render-drivers/main/MainRenderDriver.js +0 -88
  222. package/dist/src/render-drivers/main/MainRenderDriver.js.map +0 -1
  223. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +0 -6
  224. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +0 -16
  225. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +0 -1
  226. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.d.ts +0 -7
  227. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js +0 -15
  228. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js.map +0 -1
  229. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +0 -21
  230. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +0 -198
  231. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +0 -1
@@ -132,61 +132,94 @@ export class ImageTexture extends Texture {
132
132
  return mimeType.indexOf('image/png') !== -1;
133
133
  }
134
134
 
135
- async loadImage(src: string) {
136
- const { premultiplyAlpha, sx, sy, sw, sh, width, height } = this.props;
135
+ async loadImageFallback(src: string, hasAlpha: boolean) {
136
+ const img = new Image();
137
137
 
138
- if (this.txManager.imageWorkerManager !== null) {
139
- return await this.txManager.imageWorkerManager.getImage(
140
- src,
141
- premultiplyAlpha,
142
- sx,
143
- sy,
144
- sw,
145
- sh,
146
- );
147
- } else if (this.txManager.hasCreateImageBitmap === true) {
148
- const response = await fetch(src);
149
- const blob = await response.blob();
150
- const hasAlphaChannel =
151
- premultiplyAlpha ?? this.hasAlphaChannel(blob.type);
138
+ return new Promise<{ data: HTMLImageElement; premultiplyAlpha: boolean }>(
139
+ (resolve) => {
140
+ img.onload = () => {
141
+ resolve({ data: img, premultiplyAlpha: hasAlpha });
142
+ };
152
143
 
153
- if (sw !== null && sh !== null) {
154
- return {
155
- data: await createImageBitmap(blob, sx ?? 0, sy ?? 0, sw, sh, {
156
- premultiplyAlpha: hasAlphaChannel ? 'premultiply' : 'none',
157
- colorSpaceConversion: 'none',
158
- imageOrientation: 'none',
159
- }),
160
- premultiplyAlpha: hasAlphaChannel,
144
+ img.onerror = () => {
145
+ console.warn('Image loading failed, returning fallback object.');
146
+ resolve({ data: img, premultiplyAlpha: hasAlpha });
161
147
  };
162
- }
163
148
 
149
+ img.src = src;
150
+ },
151
+ );
152
+ }
153
+
154
+ async createImageBitmap(
155
+ blob: Blob,
156
+ premultiplyAlpha: boolean | null,
157
+ sx: number | null,
158
+ sy: number | null,
159
+ sw: number | null,
160
+ sh: number | null,
161
+ ): Promise<{
162
+ data: ImageBitmap | HTMLImageElement;
163
+ premultiplyAlpha: boolean;
164
+ }> {
165
+ const hasAlphaChannel = premultiplyAlpha ?? blob.type.includes('image/png');
166
+ const imageBitmapSupported = this.txManager.imageBitmapSupported;
167
+
168
+ if (
169
+ imageBitmapSupported.full === true &&
170
+ sx !== null &&
171
+ sy !== null &&
172
+ sw !== null &&
173
+ sh !== null
174
+ ) {
175
+ // createImageBitmap with crop
176
+ const bitmap = await createImageBitmap(blob, sx, sy, sw, sh, {
177
+ premultiplyAlpha: hasAlphaChannel ? 'premultiply' : 'none',
178
+ colorSpaceConversion: 'none',
179
+ imageOrientation: 'none',
180
+ });
181
+ return { data: bitmap, premultiplyAlpha: hasAlphaChannel };
182
+ } else if (imageBitmapSupported.options === true) {
183
+ // createImageBitmap without crop but with options
184
+ const bitmap = await createImageBitmap(blob, {
185
+ premultiplyAlpha: hasAlphaChannel ? 'premultiply' : 'none',
186
+ colorSpaceConversion: 'none',
187
+ imageOrientation: 'none',
188
+ });
189
+ return { data: bitmap, premultiplyAlpha: hasAlphaChannel };
190
+ } else {
191
+ // basic createImageBitmap without options or crop
192
+ // this is supported for Chrome v50 to v52/54 that doesn't support options
164
193
  return {
165
- data: await createImageBitmap(blob, {
166
- premultiplyAlpha: hasAlphaChannel ? 'premultiply' : 'none',
167
- colorSpaceConversion: 'none',
168
- imageOrientation: 'none',
169
- }),
194
+ data: await createImageBitmap(blob),
170
195
  premultiplyAlpha: hasAlphaChannel,
171
196
  };
172
- } else {
173
- const img = new Image();
174
- if (!src.startsWith('data:')) {
175
- img.crossOrigin = 'Anonymous';
197
+ }
198
+ }
199
+
200
+ async loadImage(src: string) {
201
+ const { premultiplyAlpha, sx, sy, sw, sh } = this.props;
202
+
203
+ if (this.txManager.hasCreateImageBitmap === true) {
204
+ if (
205
+ this.txManager.hasWorker === true &&
206
+ this.txManager.imageWorkerManager !== null
207
+ ) {
208
+ return this.txManager.imageWorkerManager.getImage(
209
+ src,
210
+ premultiplyAlpha,
211
+ sx,
212
+ sy,
213
+ sw,
214
+ sh,
215
+ );
176
216
  }
177
- img.src = src;
178
- await new Promise<void>((resolve, reject) => {
179
- img.onload = () => resolve();
180
- img.onerror = () => reject(new Error(`Failed to load image`));
181
- }).catch((e) => {
182
- console.error(e);
183
- });
184
217
 
185
- return {
186
- data: img,
187
- premultiplyAlpha: premultiplyAlpha ?? true,
188
- };
218
+ const blob = await fetch(src).then((response) => response.blob());
219
+ return this.createImageBitmap(blob, premultiplyAlpha, sx, sy, sw, sh);
189
220
  }
221
+
222
+ return this.loadImageFallback(src, premultiplyAlpha ?? true);
190
223
  }
191
224
 
192
225
  override async getTextureData(): Promise<TextureData> {
@@ -1 +0,0 @@
1
- export {};
@@ -1,138 +0,0 @@
1
- export {};
2
- /*interface InstanceMap {
3
- renderer: CoreRenderer;
4
- effect: CoreEffect;
5
- program: new () => void;
6
- }
7
-
8
- type WebGlInstanceMap = InstanceMap & {
9
- renderer: WebGlCoreRenderer;
10
- effect: WebGlEffect;
11
- };
12
-
13
- interface AdvEffectProp {
14
- default: any;
15
- isColor?: boolean;
16
- validator?: (value: any) => any;
17
- }
18
-
19
- interface EffectProps {
20
- [key: string]: any | AdvEffectProp;
21
- }
22
-
23
- type EffectDescriptor<Effect, Props> = Effect & {
24
- props?: Props;
25
- };
26
-
27
- type InferEffectProps<T> = {
28
- [K in keyof T]: T[K] extends AdvEffectProp ? T[K]['default'] : T[K];
29
- };
30
-
31
- interface CoreEffect {
32
- props?: EffectProps;
33
- update?: (ctx: unknown) => void;
34
- }
35
-
36
- type WebGlEffect = CoreEffect & {
37
- fragment: string;
38
- update?: (glw: WebGLRenderingContext) => void;
39
- };
40
-
41
- type StageOptions<Renderer extends InstanceMap> = {
42
- renderEngine?: new () => Renderer['renderer'];
43
- };
44
-
45
- class Stage<RendererMap extends InstanceMap> {
46
- fxManager: CoreFxManager<RendererMap>;
47
- constructor(options: StageOptions<RendererMap>) {
48
- this.fxManager = new CoreFxManager();
49
- const renderer = new options.renderEngine();
50
- }
51
-
52
- createShader<Effect extends RendererMap['effect'], Props>(
53
- effect: EffectDescriptor<Effect, Props>,
54
- props?: InferEffectProps<Props>
55
- ): EffectNode<Effect, Props> {
56
- return this.fxManager.createShader(effect, props);
57
- }
58
- }
59
-
60
- class CoreRenderer {
61
- mode = 'core';
62
- }
63
-
64
- class WebGlCoreRenderer extends CoreRenderer {
65
- override mode = 'webgl';
66
- }
67
-
68
- class CanvasCoreRenderer extends CoreRenderer {
69
- override mode = 'canvas';
70
- }
71
-
72
- class CoreFxManager<RendererMap extends InstanceMap> {
73
- fxCache: Map<string, RendererMap['effect']> = new Map();
74
-
75
- resolveProps(defaultProps?: EffectProps, props?: EffectProps) {
76
- if(defaultProps !== undefined) {
77
- props = props ?? {}
78
- const keys = Object.keys(defaultProps);
79
- const l = keys.length;
80
- for(let i = 0; i < l; i++) {
81
- if(props[keys[i]] === undefined) {
82
- props[keys[i]] = defaultProps[keys[i]].default || defaultProps[keys[i]]
83
- }
84
- }
85
- }
86
- }
87
-
88
- createShader<Effect extends RendererMap['effect'], Props>(
89
- effect: EffectDescriptor<Effect, Props>,
90
- props?: InferEffectProps<Props>
91
- ): EffectNode<Effect, Props> {
92
-
93
- // const f = JSON.stringify(effect);
94
- // if (this.fxCache.has(f)) {
95
- // console.log('already has this effect');
96
- // } else {
97
- // console.log('create new effect program');
98
- // this.fxCache.set(f, effect);
99
- // }
100
-
101
- return new EffectNode<Effect, Props>(effect, WebGlCoreRenderer, props);
102
- }
103
- }
104
-
105
- class EffectNode<Effect extends CoreEffect, Props extends EffectProps> {
106
- #data: Record<string, any> | undefined = undefined;
107
- constructor(
108
- readonly type: Effect,
109
- readonly program: new () => void,
110
- props?: InferEffectProps<Props>
111
- ) {
112
- this.#data = props;
113
- }
114
- }
115
-
116
- const stage = new Stage<WebGlInstanceMap>({
117
- renderEngine: CanvasCoreRenderer,
118
- });
119
-
120
- stage.createShader(
121
- {
122
- props: {
123
- radius: 10,
124
- },
125
- fragment: '',
126
- },
127
- {
128
- radius: 30,
129
- }
130
- );
131
-
132
- stage.createShader({
133
- props: {
134
- radius: 10,
135
- },
136
- fragment: '',
137
- });*/
138
- //# sourceMappingURL=CoreStuff.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CoreStuff.js","sourceRoot":"","sources":["../../../src/core/CoreStuff.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuIK"}