@lightningjs/renderer 2.19.1 → 2.20.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 (250) hide show
  1. package/dist/src/core/lib/WebGlContextWrapper.d.ts +14 -0
  2. package/dist/src/core/lib/WebGlContextWrapper.js +35 -0
  3. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  4. package/dist/src/core/lib/textureCompression.d.ts +14 -2
  5. package/dist/src/core/lib/textureCompression.js +301 -65
  6. package/dist/src/core/lib/textureCompression.js.map +1 -1
  7. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +4 -0
  8. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +14 -11
  9. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  10. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +1 -1
  11. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +43 -8
  12. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  13. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +2 -7
  14. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +18 -49
  15. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
  16. package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +0 -2
  17. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
  18. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +3 -6
  19. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -1
  20. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +0 -11
  21. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -1
  22. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +5 -10
  23. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
  24. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +5 -10
  25. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -1
  26. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +0 -12
  27. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -1
  28. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +1 -1
  29. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +1 -1
  30. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +1 -1
  31. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +1 -1
  32. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +5 -5
  33. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +1 -1
  34. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +1 -1
  35. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +1 -1
  36. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +1 -1
  37. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +5 -5
  38. package/dist/src/core/textures/Texture.d.ts +12 -5
  39. package/dist/src/core/textures/Texture.js.map +1 -1
  40. package/dist/src/main-api/Inspector.js +9 -5
  41. package/dist/src/main-api/Inspector.js.map +1 -1
  42. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  43. package/package.json +1 -1
  44. package/src/core/lib/WebGlContextWrapper.ts +49 -0
  45. package/src/core/lib/textureCompression.ts +416 -75
  46. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +16 -14
  47. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +1 -1
  48. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +44 -11
  49. package/src/core/renderers/webgl/WebGlCoreShader.ts +27 -75
  50. package/src/core/renderers/webgl/internal/ShaderUtils.ts +0 -2
  51. package/src/core/renderers/webgl/shaders/DefaultShader.ts +3 -6
  52. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +0 -11
  53. package/src/core/renderers/webgl/shaders/DynamicShader.ts +5 -10
  54. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +5 -10
  55. package/src/core/renderers/webgl/shaders/SdfShader.ts +0 -12
  56. package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +1 -1
  57. package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +1 -1
  58. package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +1 -1
  59. package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +1 -1
  60. package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +5 -5
  61. package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +1 -1
  62. package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +1 -1
  63. package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +1 -1
  64. package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +1 -1
  65. package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +5 -5
  66. package/src/core/textures/Texture.ts +13 -6
  67. package/src/main-api/Inspector.ts +9 -5
  68. package/dist/exports/canvas-shaders.d.ts +0 -10
  69. package/dist/exports/canvas-shaders.js +0 -27
  70. package/dist/exports/canvas-shaders.js.map +0 -1
  71. package/dist/exports/webgl-shaders.d.ts +0 -11
  72. package/dist/exports/webgl-shaders.js +0 -28
  73. package/dist/exports/webgl-shaders.js.map +0 -1
  74. package/dist/src/core/lib/colorCache.d.ts +0 -1
  75. package/dist/src/core/lib/colorCache.js +0 -19
  76. package/dist/src/core/lib/colorCache.js.map +0 -1
  77. package/dist/src/core/lib/colorParser.d.ts +0 -21
  78. package/dist/src/core/lib/colorParser.js +0 -72
  79. package/dist/src/core/lib/colorParser.js.map +0 -1
  80. package/dist/src/core/platforms/Platform.d.ts +0 -37
  81. package/dist/src/core/platforms/Platform.js +0 -22
  82. package/dist/src/core/platforms/Platform.js.map +0 -1
  83. package/dist/src/core/platforms/web/WebPlatform.d.ts +0 -9
  84. package/dist/src/core/platforms/web/WebPlatform.js +0 -84
  85. package/dist/src/core/platforms/web/WebPlatform.js.map +0 -1
  86. package/dist/src/core/renderers/CoreShaderNode.d.ts +0 -59
  87. package/dist/src/core/renderers/CoreShaderNode.js +0 -113
  88. package/dist/src/core/renderers/CoreShaderNode.js.map +0 -1
  89. package/dist/src/core/renderers/CoreShaderProgram.d.ts +0 -4
  90. package/dist/src/core/renderers/CoreShaderProgram.js +0 -20
  91. package/dist/src/core/renderers/CoreShaderProgram.js.map +0 -1
  92. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +0 -35
  93. package/dist/src/core/renderers/canvas/CanvasRenderer.js +0 -201
  94. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +0 -1
  95. package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +0 -21
  96. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +0 -58
  97. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +0 -1
  98. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +0 -16
  99. package/dist/src/core/renderers/canvas/CanvasTexture.js +0 -125
  100. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +0 -1
  101. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +0 -12
  102. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +0 -57
  103. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +0 -1
  104. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +0 -22
  105. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +0 -67
  106. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +0 -1
  107. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +0 -56
  108. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +0 -236
  109. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +0 -1
  110. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +0 -44
  111. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +0 -125
  112. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +0 -1
  113. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +0 -136
  114. package/dist/src/core/renderers/webgl/WebGlRenderer.js +0 -573
  115. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +0 -1
  116. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +0 -222
  117. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +0 -331
  118. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +0 -1
  119. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +0 -37
  120. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +0 -218
  121. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +0 -1
  122. package/dist/src/core/shaders/canvas/Border.d.ts +0 -9
  123. package/dist/src/core/shaders/canvas/Border.js +0 -57
  124. package/dist/src/core/shaders/canvas/Border.js.map +0 -1
  125. package/dist/src/core/shaders/canvas/HolePunch.d.ts +0 -7
  126. package/dist/src/core/shaders/canvas/HolePunch.js +0 -38
  127. package/dist/src/core/shaders/canvas/HolePunch.js.map +0 -1
  128. package/dist/src/core/shaders/canvas/LinearGradient.d.ts +0 -10
  129. package/dist/src/core/shaders/canvas/LinearGradient.js +0 -48
  130. package/dist/src/core/shaders/canvas/LinearGradient.js.map +0 -1
  131. package/dist/src/core/shaders/canvas/RadialGradient.d.ts +0 -11
  132. package/dist/src/core/shaders/canvas/RadialGradient.js +0 -70
  133. package/dist/src/core/shaders/canvas/RadialGradient.js.map +0 -1
  134. package/dist/src/core/shaders/canvas/Rounded.d.ts +0 -7
  135. package/dist/src/core/shaders/canvas/Rounded.js +0 -33
  136. package/dist/src/core/shaders/canvas/Rounded.js.map +0 -1
  137. package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +0 -7
  138. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +0 -43
  139. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +0 -1
  140. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +0 -8
  141. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +0 -41
  142. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +0 -1
  143. package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +0 -7
  144. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +0 -40
  145. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +0 -1
  146. package/dist/src/core/shaders/canvas/Shadow.d.ts +0 -8
  147. package/dist/src/core/shaders/canvas/Shadow.js +0 -31
  148. package/dist/src/core/shaders/canvas/Shadow.js.map +0 -1
  149. package/dist/src/core/shaders/canvas/utils/render.d.ts +0 -5
  150. package/dist/src/core/shaders/canvas/utils/render.js +0 -84
  151. package/dist/src/core/shaders/canvas/utils/render.js.map +0 -1
  152. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +0 -37
  153. package/dist/src/core/shaders/templates/BorderTemplate.js +0 -73
  154. package/dist/src/core/shaders/templates/BorderTemplate.js.map +0 -1
  155. package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +0 -46
  156. package/dist/src/core/shaders/templates/HolePunchTemplate.js +0 -35
  157. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +0 -1
  158. package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +0 -23
  159. package/dist/src/core/shaders/templates/LinearGradientTemplate.js +0 -47
  160. package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +0 -1
  161. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +0 -31
  162. package/dist/src/core/shaders/templates/RadialGradientTemplate.js +0 -49
  163. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +0 -1
  164. package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +0 -29
  165. package/dist/src/core/shaders/templates/RoundedTemplate.js +0 -67
  166. package/dist/src/core/shaders/templates/RoundedTemplate.js.map +0 -1
  167. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +0 -7
  168. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +0 -24
  169. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +0 -1
  170. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +0 -6
  171. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +0 -23
  172. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +0 -1
  173. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +0 -6
  174. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +0 -23
  175. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +0 -1
  176. package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +0 -34
  177. package/dist/src/core/shaders/templates/ShadowTemplate.js +0 -66
  178. package/dist/src/core/shaders/templates/ShadowTemplate.js.map +0 -1
  179. package/dist/src/core/shaders/utils.d.ts +0 -5
  180. package/dist/src/core/shaders/utils.js +0 -41
  181. package/dist/src/core/shaders/utils.js.map +0 -1
  182. package/dist/src/core/shaders/webgl/Border.d.ts +0 -3
  183. package/dist/src/core/shaders/webgl/Border.js +0 -110
  184. package/dist/src/core/shaders/webgl/Border.js.map +0 -1
  185. package/dist/src/core/shaders/webgl/Default.d.ts +0 -2
  186. package/dist/src/core/shaders/webgl/Default.js +0 -86
  187. package/dist/src/core/shaders/webgl/Default.js.map +0 -1
  188. package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +0 -2
  189. package/dist/src/core/shaders/webgl/DefaultBatched.js +0 -104
  190. package/dist/src/core/shaders/webgl/DefaultBatched.js.map +0 -1
  191. package/dist/src/core/shaders/webgl/HolePunch.d.ts +0 -3
  192. package/dist/src/core/shaders/webgl/HolePunch.js +0 -65
  193. package/dist/src/core/shaders/webgl/HolePunch.js.map +0 -1
  194. package/dist/src/core/shaders/webgl/LinearGradient.d.ts +0 -3
  195. package/dist/src/core/shaders/webgl/LinearGradient.js +0 -99
  196. package/dist/src/core/shaders/webgl/LinearGradient.js.map +0 -1
  197. package/dist/src/core/shaders/webgl/RadialGradient.d.ts +0 -3
  198. package/dist/src/core/shaders/webgl/RadialGradient.js +0 -96
  199. package/dist/src/core/shaders/webgl/RadialGradient.js.map +0 -1
  200. package/dist/src/core/shaders/webgl/Rounded.d.ts +0 -7
  201. package/dist/src/core/shaders/webgl/Rounded.js +0 -86
  202. package/dist/src/core/shaders/webgl/Rounded.js.map +0 -1
  203. package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +0 -3
  204. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +0 -140
  205. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +0 -1
  206. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +0 -3
  207. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +0 -162
  208. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +0 -1
  209. package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +0 -3
  210. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +0 -84
  211. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +0 -1
  212. package/dist/src/core/shaders/webgl/SdfShader.d.ts +0 -30
  213. package/dist/src/core/shaders/webgl/SdfShader.js +0 -107
  214. package/dist/src/core/shaders/webgl/SdfShader.js.map +0 -1
  215. package/dist/src/core/shaders/webgl/Shadow.d.ts +0 -3
  216. package/dist/src/core/shaders/webgl/Shadow.js +0 -110
  217. package/dist/src/core/shaders/webgl/Shadow.js.map +0 -1
  218. package/dist/src/core/text-rendering/CanvasFont.d.ts +0 -14
  219. package/dist/src/core/text-rendering/CanvasFont.js +0 -111
  220. package/dist/src/core/text-rendering/CanvasFont.js.map +0 -1
  221. package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +0 -59
  222. package/dist/src/core/text-rendering/CanvasFontHandler.js +0 -221
  223. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +0 -1
  224. package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +0 -19
  225. package/dist/src/core/text-rendering/CanvasTextRenderer.js +0 -165
  226. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +0 -1
  227. package/dist/src/core/text-rendering/CoreFont.d.ts +0 -33
  228. package/dist/src/core/text-rendering/CoreFont.js +0 -48
  229. package/dist/src/core/text-rendering/CoreFont.js.map +0 -1
  230. package/dist/src/core/text-rendering/FontManager.d.ts +0 -11
  231. package/dist/src/core/text-rendering/FontManager.js +0 -42
  232. package/dist/src/core/text-rendering/FontManager.js.map +0 -1
  233. package/dist/src/core/text-rendering/SdfFont.d.ts +0 -29
  234. package/dist/src/core/text-rendering/SdfFont.js +0 -142
  235. package/dist/src/core/text-rendering/SdfFont.js.map +0 -1
  236. package/dist/src/core/text-rendering/SdfFontHandler.d.ts +0 -85
  237. package/dist/src/core/text-rendering/SdfFontHandler.js +0 -58
  238. package/dist/src/core/text-rendering/SdfFontHandler.js.map +0 -1
  239. package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +0 -18
  240. package/dist/src/core/text-rendering/SdfTextRenderer.js +0 -315
  241. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +0 -1
  242. package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +0 -20
  243. package/dist/src/core/text-rendering/TextLayoutEngine.js +0 -324
  244. package/dist/src/core/text-rendering/TextLayoutEngine.js.map +0 -1
  245. package/dist/src/core/text-rendering/TextRenderer.d.ts +0 -369
  246. package/dist/src/core/text-rendering/TextRenderer.js +0 -20
  247. package/dist/src/core/text-rendering/TextRenderer.js.map +0 -1
  248. package/dist/src/core/text-rendering/Utils.d.ts +0 -30
  249. package/dist/src/core/text-rendering/Utils.js +0 -84
  250. package/dist/src/core/text-rendering/Utils.js.map +0 -1
@@ -1,218 +0,0 @@
1
- import { Default } from '../../shaders/webgl/Default.js';
2
- import { createProgram, createShader, } from './internal/ShaderUtils.js';
3
- export class WebGlShaderProgram {
4
- program;
5
- /**
6
- * Vertex Array Object
7
- *
8
- * @remarks
9
- * Used by WebGL2 Only
10
- */
11
- vao;
12
- renderer;
13
- glw;
14
- attributeLocations;
15
- uniformLocations;
16
- lifecycle;
17
- useSystemAlpha = false;
18
- useSystemDimensions = false;
19
- isDestroyed = false;
20
- supportsIndexedTextures = false;
21
- constructor(renderer, config, resolvedProps) {
22
- this.renderer = renderer;
23
- const glw = (this.glw = renderer.glw);
24
- // Check that extensions are supported
25
- const webGl2 = glw.isWebGl2();
26
- let requiredExtensions = [];
27
- this.supportsIndexedTextures =
28
- config.supportsIndexedTextures || this.supportsIndexedTextures;
29
- requiredExtensions =
30
- (webGl2 && config.webgl2Extensions) ||
31
- (!webGl2 && config.webgl1Extensions) ||
32
- [];
33
- const glVersion = webGl2 ? '2.0' : '1.0';
34
- requiredExtensions.forEach((extensionName) => {
35
- if (!glw.getExtension(extensionName)) {
36
- throw new Error(`Shader "${this.constructor.name}" requires extension "${extensionName}" for WebGL ${glVersion} but wasn't found`);
37
- }
38
- });
39
- let vertexSource = config.vertex instanceof Function
40
- ? config.vertex(renderer, resolvedProps)
41
- : config.vertex;
42
- if (vertexSource === undefined) {
43
- vertexSource = Default.vertex;
44
- }
45
- const fragmentSource = config.fragment instanceof Function
46
- ? config.fragment(renderer, resolvedProps)
47
- : config.fragment;
48
- const vertexShader = createShader(glw, glw.VERTEX_SHADER, vertexSource);
49
- if (!vertexShader) {
50
- throw new Error('Vertex shader creation failed');
51
- }
52
- const fragmentShader = createShader(glw, glw.FRAGMENT_SHADER, fragmentSource);
53
- if (!fragmentShader) {
54
- throw new Error('fragment shader creation failed');
55
- }
56
- const program = createProgram(glw, vertexShader, fragmentShader);
57
- if (!program) {
58
- throw new Error();
59
- }
60
- this.program = program;
61
- this.attributeLocations = glw.getAttributeLocations(program);
62
- const uniLocs = (this.uniformLocations = glw.getUniformLocations(program));
63
- this.useSystemAlpha = uniLocs['u_alpha'] !== undefined;
64
- this.useSystemDimensions = uniLocs['u_dimensions'] !== undefined;
65
- this.lifecycle = {
66
- update: config.update,
67
- canBatch: config.canBatch,
68
- };
69
- }
70
- disableAttribute(location) {
71
- this.glw.disableVertexAttribArray(location);
72
- }
73
- disableAttributes() {
74
- const glw = this.glw;
75
- const attribLen = this.attributeLocations.length;
76
- for (let i = 0; i < attribLen; i++) {
77
- glw.disableVertexAttribArray(i);
78
- }
79
- }
80
- reuseRenderOp(incomingQuad, currentRenderOp) {
81
- if (this.lifecycle.canBatch !== undefined) {
82
- return this.lifecycle.canBatch(incomingQuad, currentRenderOp);
83
- }
84
- if (this.useSystemAlpha === true) {
85
- if (incomingQuad.alpha !== currentRenderOp.alpha) {
86
- return false;
87
- }
88
- }
89
- if (this.useSystemDimensions === true) {
90
- if (incomingQuad.width !== currentRenderOp.width ||
91
- incomingQuad.height !== currentRenderOp.height) {
92
- return false;
93
- }
94
- }
95
- let shaderPropsA = undefined;
96
- let shaderPropsB = undefined;
97
- if (incomingQuad.shader !== null) {
98
- shaderPropsA = incomingQuad.shader.resolvedProps;
99
- }
100
- if (currentRenderOp.shader !== null) {
101
- shaderPropsB = currentRenderOp.shader.resolvedProps;
102
- }
103
- if ((shaderPropsA === undefined && shaderPropsB !== undefined) ||
104
- (shaderPropsA !== undefined && shaderPropsB === undefined)) {
105
- return false;
106
- }
107
- if (shaderPropsA !== undefined && shaderPropsB !== undefined) {
108
- for (const key in shaderPropsA) {
109
- if (shaderPropsA[key] !== shaderPropsB[key]) {
110
- return false;
111
- }
112
- }
113
- }
114
- return true;
115
- }
116
- bindRenderOp(renderOp) {
117
- this.bindBufferCollection(renderOp.buffers);
118
- this.bindTextures(renderOp.textures);
119
- const { parentHasRenderTexture } = renderOp;
120
- // Skip if the parent and current operation both have render textures
121
- if (renderOp.rtt === true && parentHasRenderTexture === true) {
122
- return;
123
- }
124
- // Bind render texture framebuffer dimensions as resolution
125
- // if the parent has a render texture
126
- if (parentHasRenderTexture === true) {
127
- const { w, h } = renderOp.framebufferDimensions;
128
- // Force pixel ratio to 1.0 for render textures since they are always 1:1
129
- // the final render texture will be rendered to the screen with the correct pixel ratio
130
- this.glw.uniform1f('u_pixelRatio', 1.0);
131
- // Set resolution to the framebuffer dimensions
132
- this.glw.uniform2f('u_resolution', w, h);
133
- }
134
- else {
135
- this.glw.uniform1f('u_pixelRatio', renderOp.renderer.stage.pixelRatio);
136
- this.glw.uniform2f('u_resolution', this.glw.canvas.width, this.glw.canvas.height);
137
- }
138
- if (this.useSystemAlpha === true) {
139
- this.glw.uniform1f('u_alpha', renderOp.alpha);
140
- }
141
- if (this.useSystemDimensions === true) {
142
- this.glw.uniform2f('u_dimensions', renderOp.width, renderOp.height);
143
- }
144
- /**temporary fix to make sdf texts work */
145
- if (renderOp.sdfShaderProps !== undefined) {
146
- renderOp.shader.shaderType.onSdfBind?.call(this.glw, renderOp.sdfShaderProps);
147
- return;
148
- }
149
- if (renderOp.shader.props !== undefined) {
150
- /**
151
- * loop over all precalculated uniform types
152
- */
153
- for (const key in renderOp.shader.uniforms.single) {
154
- const { method, value } = renderOp.shader.uniforms.single[key];
155
- this.glw[method](key, value);
156
- }
157
- for (const key in renderOp.shader.uniforms.vec2) {
158
- const { method, value } = renderOp.shader.uniforms.vec2[key];
159
- this.glw[method](key, value[0], value[1]);
160
- }
161
- for (const key in renderOp.shader.uniforms.vec3) {
162
- const { method, value } = renderOp.shader.uniforms.vec3[key];
163
- this.glw[method](key, value[0], value[1], value[2]);
164
- }
165
- for (const key in renderOp.shader.uniforms.vec4) {
166
- const { method, value } = renderOp.shader.uniforms.vec4[key];
167
- this.glw[method](key, value[0], value[1], value[2], value[3]);
168
- }
169
- }
170
- }
171
- bindBufferCollection(buffer) {
172
- const { glw } = this;
173
- const attribs = this.attributeLocations;
174
- const attribLen = attribs.length;
175
- for (let i = 0; i < attribLen; i++) {
176
- const name = attribs[i];
177
- const resolvedBuffer = buffer.getBuffer(name);
178
- const resolvedInfo = buffer.getAttributeInfo(name);
179
- if (resolvedBuffer === undefined || resolvedInfo === undefined) {
180
- continue;
181
- }
182
- glw.enableVertexAttribArray(i);
183
- glw.vertexAttribPointer(resolvedBuffer, i, resolvedInfo.size, resolvedInfo.type, resolvedInfo.normalized, resolvedInfo.stride, resolvedInfo.offset);
184
- }
185
- }
186
- bindTextures(textures) {
187
- this.glw.activeTexture(0);
188
- this.glw.bindTexture(textures[0].ctxTexture);
189
- }
190
- attach() {
191
- if (this.isDestroyed === true) {
192
- return;
193
- }
194
- this.glw.useProgram(this.program, this.uniformLocations);
195
- if (this.glw.isWebGl2() && this.vao) {
196
- this.glw.bindVertexArray(this.vao);
197
- }
198
- }
199
- detach() {
200
- this.disableAttributes();
201
- }
202
- destroy() {
203
- if (this.isDestroyed === true) {
204
- return;
205
- }
206
- const glw = this.glw;
207
- this.detach();
208
- glw.deleteProgram(this.program);
209
- this.program = null;
210
- this.uniformLocations = null;
211
- const attribs = this.attributeLocations;
212
- const attribLen = this.attributeLocations.length;
213
- for (let i = 0; i < attribLen; i++) {
214
- this.glw.deleteBuffer(attribs[i]);
215
- }
216
- }
217
- }
218
- //# sourceMappingURL=WebGlShaderProgram.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebGlShaderProgram.js","sourceRoot":"","sources":["../../../../../src/core/renderers/webgl/WebGlShaderProgram.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { CanvasShaderType } from '../../renderers/canvas/CanvasShaderNode.js';
2
- import type { Vec4 } from '../../renderers/webgl/internal/ShaderUtils.js';
3
- import { type BorderProps } from '../templates/BorderTemplate.js';
4
- export interface ComputedBorderValues {
5
- borderColor: string;
6
- borderAsym: boolean;
7
- borderRadius: Vec4;
8
- }
9
- export declare const Border: CanvasShaderType<BorderProps, ComputedBorderValues>;
@@ -1,57 +0,0 @@
1
- /*
2
- * Copyright 2023 Comcast Cable Communications Management, LLC
3
- * Licensed under the Apache License, Version 2.0 (the "License");
4
- * you may not use this file except in compliance with the License.
5
- * You may obtain a copy of the License at
6
- *
7
- * http://www.apache.org/licenses/LICENSE-2.0
8
- *
9
- * Unless required by applicable law or agreed to in writing, software
10
- * distributed under the License is distributed on an "AS IS" BASIS,
11
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- * See the License for the specific language governing permissions and
13
- * limitations under the License.
14
- *
15
- * SPDX-License-Identifier: Apache-2.0
16
- */
17
- import { formatRgba, parseColorRgba } from '../../lib/colorParser.js';
18
- import { valuesAreEqual } from '../../lib/utils.js';
19
- import { BorderTemplate, } from '../templates/BorderTemplate.js';
20
- import { strokeLine } from './utils/render.js';
21
- export const Border = {
22
- props: BorderTemplate.props,
23
- update() {
24
- this.computed.borderColor = formatRgba(parseColorRgba(this.props.color));
25
- this.computed.borderAsym = !valuesAreEqual(this.props.w);
26
- },
27
- render(ctx, quad, renderContext) {
28
- renderContext();
29
- ctx.strokeStyle = this.computed.borderColor;
30
- if (this.computed.borderAsym === false && this.props.w[0] > 0) {
31
- const bWidth = this.props.w[0];
32
- const bHalfWidth = bWidth * 0.5;
33
- ctx.lineWidth = bWidth;
34
- ctx.beginPath();
35
- ctx.strokeRect(quad.tx + bHalfWidth, quad.ty + bHalfWidth, quad.width - bWidth, quad.height - bWidth);
36
- return;
37
- }
38
- const { 0: t, 1: r, 2: b, 3: l } = this.props.w;
39
- if (t > 0) {
40
- const y = quad.ty + t * 0.5;
41
- strokeLine(ctx, quad.tx, y, quad.tx + quad.width, y, t);
42
- }
43
- if (r > 0) {
44
- const x = quad.tx + quad.width - r * 0.5;
45
- strokeLine(ctx, x, quad.ty, x, quad.ty + quad.height, r);
46
- }
47
- if (b > 0) {
48
- const y = quad.ty + quad.height - b * 0.5;
49
- strokeLine(ctx, quad.tx, y, quad.tx + quad.width, y, b);
50
- }
51
- if (l > 0) {
52
- const x = quad.tx + l * 0.5;
53
- strokeLine(ctx, x, quad.ty, x, quad.ty + quad.height, l);
54
- }
55
- },
56
- };
57
- //# sourceMappingURL=Border.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Border.js","sourceRoot":"","sources":["../../../../../src/core/shaders/canvas/Border.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import type { CanvasShaderType } from '../../renderers/canvas/CanvasShaderNode.js';
2
- import type { Vec4 } from '../../renderers/webgl/internal/ShaderUtils.js';
3
- import { type HolePunchProps } from '../templates/HolePunchTemplate.js';
4
- export interface ComputedHolePunchValues {
5
- radius: Vec4;
6
- }
7
- export declare const HolePunch: CanvasShaderType<HolePunchProps, ComputedHolePunchValues>;
@@ -1,38 +0,0 @@
1
- /*
2
- * Copyright 2023 Comcast Cable Communications Management, LLC
3
- * Licensed under the Apache License, Version 2.0 (the "License");
4
- * you may not use this file except in compliance with the License.
5
- * You may obtain a copy of the License at
6
- *
7
- * http://www.apache.org/licenses/LICENSE-2.0
8
- *
9
- * Unless required by applicable law or agreed to in writing, software
10
- * distributed under the License is distributed on an "AS IS" BASIS,
11
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- * See the License for the specific language governing permissions and
13
- * limitations under the License.
14
- *
15
- * SPDX-License-Identifier: Apache-2.0
16
- */
17
- import { calcFactoredRadiusArray } from '../../lib/utils.js';
18
- import { HolePunchTemplate, } from '../templates/HolePunchTemplate.js';
19
- import { roundRect } from './utils/render.js';
20
- export const HolePunch = {
21
- props: HolePunchTemplate.props,
22
- update() {
23
- this.computed.radius = calcFactoredRadiusArray(this.props.radius, this.props.w, this.props.h);
24
- },
25
- render(ctx, quad, renderContext) {
26
- ctx.save();
27
- renderContext();
28
- const { x, y, w, h } = this.props;
29
- ctx.beginPath();
30
- roundRect(ctx, quad.tx + x, quad.ty + y, w, h, this.computed.radius);
31
- ctx.closePath();
32
- ctx.fillStyle = 'black';
33
- ctx.globalCompositeOperation = 'destination-out';
34
- ctx.fill();
35
- ctx.restore();
36
- },
37
- };
38
- //# sourceMappingURL=HolePunch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HolePunch.js","sourceRoot":"","sources":["../../../../../src/core/shaders/canvas/HolePunch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EACL,iBAAiB,GAElB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAM9C,MAAM,CAAC,MAAM,SAAS,GAGlB;IACF,KAAK,EAAE,iBAAiB,CAAC,KAAK;IAC9B,MAAM;QACJ,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,uBAAuB,CAC5C,IAAI,CAAC,KAAM,CAAC,MAAc,EAC1B,IAAI,CAAC,KAAM,CAAC,CAAC,EACb,IAAI,CAAC,KAAM,CAAC,CAAC,CACd,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa;QAC7B,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAM,CAAC;QACnC,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAO,CAAC,CAAC;QACtE,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;QACxB,GAAG,CAAC,wBAAwB,GAAG,iBAAiB,CAAC;QACjD,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,GAAG,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;CACF,CAAC"}
@@ -1,10 +0,0 @@
1
- import type { CanvasShaderType } from '../../renderers/canvas/CanvasShaderNode.js';
2
- import { type LinearGradientProps } from '../templates/LinearGradientTemplate.js';
3
- export interface ComputedLinearGradientValues {
4
- x0: number;
5
- y0: number;
6
- x1: number;
7
- y1: number;
8
- colors: string[];
9
- }
10
- export declare const LinearGradient: CanvasShaderType<LinearGradientProps, ComputedLinearGradientValues>;
@@ -1,48 +0,0 @@
1
- /*
2
- * Copyright 2023 Comcast Cable Communications Management, LLC
3
- * Licensed under the Apache License, Version 2.0 (the "License");
4
- * you may not use this file except in compliance with the License.
5
- * You may obtain a copy of the License at
6
- *
7
- * http://www.apache.org/licenses/LICENSE-2.0
8
- *
9
- * Unless required by applicable law or agreed to in writing, software
10
- * distributed under the License is distributed on an "AS IS" BASIS,
11
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- * See the License for the specific language governing permissions and
13
- * limitations under the License.
14
- *
15
- * SPDX-License-Identifier: Apache-2.0
16
- */
17
- import { LinearGradientTemplate, } from '../templates/LinearGradientTemplate.js';
18
- export const LinearGradient = {
19
- props: LinearGradientTemplate.props,
20
- update(node) {
21
- const angle = this.props.angle - (Math.PI / 180) * 90;
22
- const nWidth = node.w;
23
- const nHeight = node.h;
24
- const line = (Math.abs(nWidth * Math.sin(angle)) +
25
- Math.abs(nHeight * Math.cos(angle))) *
26
- 0.5;
27
- this.computed = {
28
- x0: line * Math.cos(angle) + nWidth * 0.5,
29
- y0: line * Math.sin(angle) + nHeight * 0.5,
30
- x1: line * Math.cos(angle + Math.PI) + nWidth * 0.5,
31
- y1: line * Math.sin(angle + Math.PI) + nHeight * 0.5,
32
- colors: this.props.colors.map((value) => this.toColorString(value)),
33
- };
34
- },
35
- render(ctx, quad, renderContext) {
36
- renderContext();
37
- const computed = this.computed;
38
- const gradient = ctx.createLinearGradient(quad.tx + computed.x0, quad.ty + computed.y0, quad.tx + computed.x1, quad.ty + computed.y1);
39
- const colors = computed.colors;
40
- const stops = this.props.stops;
41
- for (let i = 0; i < colors.length; i++) {
42
- gradient.addColorStop(stops[i], colors[i]);
43
- }
44
- ctx.fillStyle = gradient;
45
- ctx.fillRect(quad.tx, quad.ty, quad.width, quad.height);
46
- },
47
- };
48
- //# sourceMappingURL=LinearGradient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LinearGradient.js","sourceRoot":"","sources":["../../../../../src/core/shaders/canvas/LinearGradient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,sBAAsB,GAEvB,MAAM,wCAAwC,CAAC;AAUhD,MAAM,CAAC,MAAM,cAAc,GAGvB;IACF,KAAK,EAAE,sBAAsB,CAAC,KAAK;IACnC,MAAM,CAAC,IAAI;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;QACvB,MAAM,IAAI,GACR,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YACtC,GAAG,CAAC;QAEN,IAAI,CAAC,QAAQ,GAAG;YACd,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,GAAG;YACzC,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,GAAG;YAC1C,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,GAAG;YACnD,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,GAAG;YACpD,MAAM,EAAE,IAAI,CAAC,KAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACrE,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa;QAC7B,aAAa,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAwC,CAAC;QAC/D,MAAM,QAAQ,GAAG,GAAG,CAAC,oBAAoB,CACvC,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,EACrB,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,EACrB,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,EACrB,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CACtB,CAAC;QACF,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;QAC/C,CAAC;QACD,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;QACzB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;CACF,CAAC"}
@@ -1,11 +0,0 @@
1
- import type { CanvasShaderType } from '../../renderers/canvas/CanvasShaderNode.js';
2
- import { type RadialGradientProps } from '../templates/RadialGradientTemplate.js';
3
- export interface ComputedRadialGradientValues {
4
- pivotX: number;
5
- pivotY: number;
6
- scaleX: number;
7
- scaleY: number;
8
- size: number;
9
- colors: string[];
10
- }
11
- export declare const RadialGradient: CanvasShaderType<RadialGradientProps, ComputedRadialGradientValues>;
@@ -1,70 +0,0 @@
1
- /*
2
- * Copyright 2023 Comcast Cable Communications Management, LLC
3
- * Licensed under the Apache License, Version 2.0 (the "License");
4
- * you may not use this file except in compliance with the License.
5
- * You may obtain a copy of the License at
6
- *
7
- * http://www.apache.org/licenses/LICENSE-2.0
8
- *
9
- * Unless required by applicable law or agreed to in writing, software
10
- * distributed under the License is distributed on an "AS IS" BASIS,
11
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- * See the License for the specific language governing permissions and
13
- * limitations under the License.
14
- *
15
- * SPDX-License-Identifier: Apache-2.0
16
- */
17
- import { RadialGradientTemplate, } from '../templates/RadialGradientTemplate.js';
18
- export const RadialGradient = {
19
- props: RadialGradientTemplate.props,
20
- update(node) {
21
- let scaleX = 1;
22
- let scaleY = 1;
23
- const props = this.props;
24
- const pWidth = props.w;
25
- const pHeight = props.h;
26
- if (pWidth > pHeight) {
27
- scaleX = pWidth / pHeight;
28
- }
29
- else if (pHeight > pWidth) {
30
- scaleY = pHeight / pWidth;
31
- }
32
- this.computed = {
33
- pivotX: props.pivot[0] * node.w,
34
- pivotY: props.pivot[1] * node.h,
35
- scaleX,
36
- scaleY,
37
- size: Math.min(pWidth, pHeight) * 0.5,
38
- colors: props.colors.map((value) => this.toColorString(value)),
39
- };
40
- },
41
- render(ctx, quad, renderContext) {
42
- renderContext();
43
- const { scaleX, scaleY, pivotX, pivotY, colors, size } = this
44
- .computed;
45
- let x = quad.tx + pivotX;
46
- let y = quad.ty + pivotY;
47
- const stops = this.props.stops;
48
- if (scaleX === scaleY) {
49
- const gradient = ctx.createRadialGradient(x, y, 0, x, y, size);
50
- for (let i = 0; i < colors.length; i++) {
51
- gradient.addColorStop(stops[i], colors[i]);
52
- }
53
- ctx.fillStyle = gradient;
54
- ctx.fillRect(quad.tx, quad.ty, quad.width, quad.height);
55
- return;
56
- }
57
- ctx.save();
58
- ctx.scale(scaleX, scaleY);
59
- x = x / scaleX;
60
- y = y / scaleY;
61
- const gradient = ctx.createRadialGradient(x, y, 0, x, y, size);
62
- for (let i = 0; i < colors.length; i++) {
63
- gradient.addColorStop(stops[i], colors[i]);
64
- }
65
- ctx.fillStyle = gradient;
66
- ctx.fillRect(quad.tx / scaleX, quad.ty / scaleY, quad.width / scaleX, quad.height / scaleY);
67
- ctx.restore();
68
- },
69
- };
70
- //# sourceMappingURL=RadialGradient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RadialGradient.js","sourceRoot":"","sources":["../../../../../src/core/shaders/canvas/RadialGradient.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import type { CanvasShaderType } from '../../renderers/canvas/CanvasShaderNode.js';
2
- import type { Vec4 } from '../../renderers/webgl/internal/ShaderUtils.js';
3
- import { type RoundedProps } from '../templates/RoundedTemplate.js';
4
- export interface ComputedRoundedValues {
5
- radius: Vec4;
6
- }
7
- export declare const Rounded: CanvasShaderType<RoundedProps, ComputedRoundedValues>;
@@ -1,33 +0,0 @@
1
- /*
2
- * Copyright 2023 Comcast Cable Communications Management, LLC
3
- * Licensed under the Apache License, Version 2.0 (the "License");
4
- * you may not use this file except in compliance with the License.
5
- * You may obtain a copy of the License at
6
- *
7
- * http://www.apache.org/licenses/LICENSE-2.0
8
- *
9
- * Unless required by applicable law or agreed to in writing, software
10
- * distributed under the License is distributed on an "AS IS" BASIS,
11
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- * See the License for the specific language governing permissions and
13
- * limitations under the License.
14
- *
15
- * SPDX-License-Identifier: Apache-2.0
16
- */
17
- import { calcFactoredRadiusArray } from '../../lib/utils.js';
18
- import { RoundedTemplate, } from '../templates/RoundedTemplate.js';
19
- import { roundRect } from './utils/render.js';
20
- export const Rounded = {
21
- props: RoundedTemplate.props,
22
- saveAndRestore: true,
23
- update(node) {
24
- this.computed.radius = calcFactoredRadiusArray(this.props.radius, node.w, node.h);
25
- },
26
- render(ctx, quad, renderContext) {
27
- const path = new Path2D();
28
- roundRect(path, quad.tx, quad.ty, quad.width, quad.height, this.computed.radius);
29
- ctx.clip(path);
30
- renderContext();
31
- },
32
- };
33
- //# sourceMappingURL=Rounded.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Rounded.js","sourceRoot":"","sources":["../../../../../src/core/shaders/canvas/Rounded.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EACL,eAAe,GAEhB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAM9C,MAAM,CAAC,MAAM,OAAO,GAA0D;IAC5E,KAAK,EAAE,eAAe,CAAC,KAAK;IAC5B,cAAc,EAAE,IAAI;IACpB,MAAM,CAAC,IAAI;QACT,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,uBAAuB,CAC5C,IAAI,CAAC,KAAM,CAAC,MAAc,EAC1B,IAAI,CAAC,CAAC,EACN,IAAI,CAAC,CAAC,CACP,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa;QAC7B,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;QAC1B,SAAS,CACP,IAAI,EACJ,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,CAAC,MAAO,CACtB,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEf,aAAa,EAAE,CAAC;IAClB,CAAC;CACF,CAAC"}
@@ -1,7 +0,0 @@
1
- import type { CanvasShaderType } from '../../renderers/canvas/CanvasShaderNode.js';
2
- import { type RoundedWithBorderProps } from '../templates/RoundedWithBorderTemplate.js';
3
- import type { ComputedBorderValues } from './Border.js';
4
- import type { ComputedRoundedValues } from './Rounded.js';
5
- type ComputedValues = ComputedRoundedValues & ComputedBorderValues;
6
- export declare const RoundedWithBorder: CanvasShaderType<RoundedWithBorderProps, ComputedValues>;
7
- export {};
@@ -1,43 +0,0 @@
1
- /*
2
- * Copyright 2023 Comcast Cable Communications Management, LLC
3
- * Licensed under the Apache License, Version 2.0 (the "License");
4
- * you may not use this file except in compliance with the License.
5
- * You may obtain a copy of the License at
6
- *
7
- * http://www.apache.org/licenses/LICENSE-2.0
8
- *
9
- * Unless required by applicable law or agreed to in writing, software
10
- * distributed under the License is distributed on an "AS IS" BASIS,
11
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- * See the License for the specific language governing permissions and
13
- * limitations under the License.
14
- *
15
- * SPDX-License-Identifier: Apache-2.0
16
- */
17
- import { calcFactoredRadiusArray, valuesAreEqual } from '../../lib/utils.js';
18
- import { RoundedWithBorderTemplate, } from '../templates/RoundedWithBorderTemplate.js';
19
- import { roundedRectWithBorder } from './utils/render.js';
20
- export const RoundedWithBorder = {
21
- props: RoundedWithBorderTemplate.props,
22
- saveAndRestore: true,
23
- update(node) {
24
- const props = this.props;
25
- const radius = calcFactoredRadiusArray(props.radius, node.w, node.h);
26
- this.computed.radius = radius;
27
- this.computed.borderColor = this.toColorString(props['border-color']);
28
- this.computed.borderAsym = !valuesAreEqual(props['border-w']);
29
- //following vec4 convention 0, 1, 2, 3 => x, y, z, w;
30
- const [x, y, z, w] = props['border-w'];
31
- this.computed.borderRadius = [
32
- Math.max(0.0, radius[0] - Math.max(x, w) * 0.5),
33
- Math.max(0.0, radius[1] - Math.max(x, y) * 0.5),
34
- Math.max(0.0, radius[2] - Math.max(z, y) * 0.5),
35
- Math.max(0.0, radius[3] - Math.max(z, w) * 0.5),
36
- ];
37
- },
38
- render(ctx, quad, renderContext) {
39
- const computed = this.computed;
40
- roundedRectWithBorder(ctx, quad.tx, quad.ty, quad.width, quad.height, computed.radius, this.props['border-w'], computed.borderRadius, computed.borderColor, computed.borderAsym, renderContext);
41
- },
42
- };
43
- //# sourceMappingURL=RoundedWithBorder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RoundedWithBorder.js","sourceRoot":"","sources":["../../../../../src/core/shaders/canvas/RoundedWithBorder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG7E,OAAO,EACL,yBAAyB,GAE1B,MAAM,2CAA2C,CAAC;AAGnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,MAAM,CAAC,MAAM,iBAAiB,GAG1B;IACF,KAAK,EAAE,yBAAyB,CAAC,KAAK;IACtC,cAAc,EAAE,IAAI;IACpB,MAAM,CAAC,IAAI;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM,CAAC;QAC1B,MAAM,MAAM,GAAG,uBAAuB,CACpC,KAAK,CAAC,MAAc,EACpB,IAAI,CAAC,CAAC,EACN,IAAI,CAAC,CAAC,CACP,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAa,CAAC,CAAC;QAC1E,qDAAqD;QACrD,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAS,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG;YAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;SAChD,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA0B,CAAC;QACjD,qBAAqB,CACnB,GAAG,EACH,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,QAAQ,CAAC,MAAM,EACf,IAAI,CAAC,KAAM,CAAC,UAAU,CAAS,EAC/B,QAAQ,CAAC,YAAY,EACrB,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,UAAU,EACnB,aAAa,CACd,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { CanvasShaderType } from '../../renderers/canvas/CanvasShaderNode.js';
2
- import { type RoundedWithBorderAndShadowProps } from '../templates/RoundedWithBorderAndShadowTemplate.js';
3
- import type { ComputedBorderValues } from './Border.js';
4
- import type { ComputedRoundedValues } from './Rounded.js';
5
- import type { ComputedShadowValues } from './Shadow.js';
6
- type ComputedValues = ComputedRoundedValues & ComputedBorderValues & ComputedShadowValues;
7
- export declare const RoundedWithBorderAndShadow: CanvasShaderType<RoundedWithBorderAndShadowProps, ComputedValues>;
8
- export {};