@postermywall/fabricjs-2 6.0.0-rc2.0 → 6.0.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 (268) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/dist/index.js +229 -491
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.min.js +1 -1
  5. package/dist/index.min.js.map +1 -1
  6. package/dist/index.min.mjs +1 -1
  7. package/dist/index.min.mjs.map +1 -1
  8. package/dist/index.mjs +229 -491
  9. package/dist/index.mjs.map +1 -1
  10. package/dist/index.node.cjs +229 -491
  11. package/dist/index.node.cjs.map +1 -1
  12. package/dist/index.node.mjs +229 -491
  13. package/dist/index.node.mjs.map +1 -1
  14. package/dist/package.json.min.mjs +1 -1
  15. package/dist/package.json.mjs +1 -1
  16. package/dist/src/canvas/Canvas.d.ts.map +1 -1
  17. package/dist/src/canvas/Canvas.min.mjs +1 -1
  18. package/dist/src/canvas/Canvas.min.mjs.map +1 -1
  19. package/dist/src/canvas/Canvas.mjs +8 -9
  20. package/dist/src/canvas/Canvas.mjs.map +1 -1
  21. package/dist/src/canvas/SelectableCanvas.d.ts +1 -1
  22. package/dist/src/canvas/SelectableCanvas.d.ts.map +1 -1
  23. package/dist/src/canvas/SelectableCanvas.min.mjs +1 -1
  24. package/dist/src/canvas/SelectableCanvas.min.mjs.map +1 -1
  25. package/dist/src/canvas/SelectableCanvas.mjs +1 -1
  26. package/dist/src/canvas/SelectableCanvas.mjs.map +1 -1
  27. package/dist/src/canvas/StaticCanvas.d.ts +4 -4
  28. package/dist/src/canvas/StaticCanvas.d.ts.map +1 -1
  29. package/dist/src/canvas/StaticCanvas.min.mjs +1 -1
  30. package/dist/src/canvas/StaticCanvas.min.mjs.map +1 -1
  31. package/dist/src/canvas/StaticCanvas.mjs +0 -13
  32. package/dist/src/canvas/StaticCanvas.mjs.map +1 -1
  33. package/dist/src/color/Color.d.ts +1 -0
  34. package/dist/src/color/Color.d.ts.map +1 -1
  35. package/dist/src/color/Color.min.mjs +1 -1
  36. package/dist/src/color/Color.min.mjs.map +1 -1
  37. package/dist/src/color/Color.mjs +3 -1
  38. package/dist/src/color/Color.mjs.map +1 -1
  39. package/dist/src/filters/BaseFilter.d.ts +16 -23
  40. package/dist/src/filters/BaseFilter.d.ts.map +1 -1
  41. package/dist/src/filters/BaseFilter.min.mjs +1 -1
  42. package/dist/src/filters/BaseFilter.min.mjs.map +1 -1
  43. package/dist/src/filters/BaseFilter.mjs +24 -41
  44. package/dist/src/filters/BaseFilter.mjs.map +1 -1
  45. package/dist/src/filters/BlendColor.d.ts +13 -24
  46. package/dist/src/filters/BlendColor.d.ts.map +1 -1
  47. package/dist/src/filters/BlendColor.min.mjs +1 -1
  48. package/dist/src/filters/BlendColor.min.mjs.map +1 -1
  49. package/dist/src/filters/BlendColor.mjs +1 -25
  50. package/dist/src/filters/BlendColor.mjs.map +1 -1
  51. package/dist/src/filters/BlendImage.d.ts +18 -19
  52. package/dist/src/filters/BlendImage.d.ts.map +1 -1
  53. package/dist/src/filters/BlendImage.min.mjs +1 -1
  54. package/dist/src/filters/BlendImage.min.mjs.map +1 -1
  55. package/dist/src/filters/BlendImage.mjs +13 -24
  56. package/dist/src/filters/BlendImage.mjs.map +1 -1
  57. package/dist/src/filters/Blur.d.ts +10 -12
  58. package/dist/src/filters/Blur.d.ts.map +1 -1
  59. package/dist/src/filters/Blur.min.mjs +1 -1
  60. package/dist/src/filters/Blur.min.mjs.map +1 -1
  61. package/dist/src/filters/Blur.mjs +5 -14
  62. package/dist/src/filters/Blur.mjs.map +1 -1
  63. package/dist/src/filters/Boilerplate.d.ts +11 -13
  64. package/dist/src/filters/Boilerplate.d.ts.map +1 -1
  65. package/dist/src/filters/Brightness.d.ts +10 -12
  66. package/dist/src/filters/Brightness.d.ts.map +1 -1
  67. package/dist/src/filters/Brightness.min.mjs +1 -1
  68. package/dist/src/filters/Brightness.min.mjs.map +1 -1
  69. package/dist/src/filters/Brightness.mjs +4 -16
  70. package/dist/src/filters/Brightness.mjs.map +1 -1
  71. package/dist/src/filters/Canvas2dFilterBackend.d.ts +1 -1
  72. package/dist/src/filters/Canvas2dFilterBackend.d.ts.map +1 -1
  73. package/dist/src/filters/Canvas2dFilterBackend.min.mjs.map +1 -1
  74. package/dist/src/filters/Canvas2dFilterBackend.mjs.map +1 -1
  75. package/dist/src/filters/ColorMatrix.d.ts +17 -15
  76. package/dist/src/filters/ColorMatrix.d.ts.map +1 -1
  77. package/dist/src/filters/ColorMatrix.min.mjs +1 -1
  78. package/dist/src/filters/ColorMatrix.min.mjs.map +1 -1
  79. package/dist/src/filters/ColorMatrix.mjs +7 -27
  80. package/dist/src/filters/ColorMatrix.mjs.map +1 -1
  81. package/dist/src/filters/ColorMatrixFilters.d.ts +63 -497
  82. package/dist/src/filters/ColorMatrixFilters.d.ts.map +1 -1
  83. package/dist/src/filters/ColorMatrixFilters.min.mjs +1 -1
  84. package/dist/src/filters/ColorMatrixFilters.min.mjs.map +1 -1
  85. package/dist/src/filters/ColorMatrixFilters.mjs +13 -8
  86. package/dist/src/filters/ColorMatrixFilters.mjs.map +1 -1
  87. package/dist/src/filters/Composed.d.ts +11 -10
  88. package/dist/src/filters/Composed.d.ts.map +1 -1
  89. package/dist/src/filters/Composed.min.mjs +1 -1
  90. package/dist/src/filters/Composed.min.mjs.map +1 -1
  91. package/dist/src/filters/Composed.mjs +7 -12
  92. package/dist/src/filters/Composed.mjs.map +1 -1
  93. package/dist/src/filters/Contrast.d.ts +10 -12
  94. package/dist/src/filters/Contrast.d.ts.map +1 -1
  95. package/dist/src/filters/Contrast.min.mjs +1 -1
  96. package/dist/src/filters/Contrast.min.mjs.map +1 -1
  97. package/dist/src/filters/Contrast.mjs +6 -17
  98. package/dist/src/filters/Contrast.mjs.map +1 -1
  99. package/dist/src/filters/Convolute.d.ts +11 -14
  100. package/dist/src/filters/Convolute.d.ts.map +1 -1
  101. package/dist/src/filters/Convolute.min.mjs +1 -1
  102. package/dist/src/filters/Convolute.min.mjs.map +1 -1
  103. package/dist/src/filters/Convolute.mjs +1 -15
  104. package/dist/src/filters/Convolute.mjs.map +1 -1
  105. package/dist/src/filters/Gamma.d.ts +17 -14
  106. package/dist/src/filters/Gamma.d.ts.map +1 -1
  107. package/dist/src/filters/Gamma.min.mjs +1 -1
  108. package/dist/src/filters/Gamma.min.mjs.map +1 -1
  109. package/dist/src/filters/Gamma.mjs +20 -24
  110. package/dist/src/filters/Gamma.mjs.map +1 -1
  111. package/dist/src/filters/Grayscale.d.ts +8 -11
  112. package/dist/src/filters/Grayscale.d.ts.map +1 -1
  113. package/dist/src/filters/Grayscale.min.mjs +1 -1
  114. package/dist/src/filters/Grayscale.min.mjs.map +1 -1
  115. package/dist/src/filters/Grayscale.mjs +2 -14
  116. package/dist/src/filters/Grayscale.mjs.map +1 -1
  117. package/dist/src/filters/HueRotation.d.ts +11 -5
  118. package/dist/src/filters/HueRotation.d.ts.map +1 -1
  119. package/dist/src/filters/HueRotation.min.mjs +1 -1
  120. package/dist/src/filters/HueRotation.min.mjs.map +1 -1
  121. package/dist/src/filters/HueRotation.mjs +10 -5
  122. package/dist/src/filters/HueRotation.mjs.map +1 -1
  123. package/dist/src/filters/Invert.d.ts +10 -13
  124. package/dist/src/filters/Invert.d.ts.map +1 -1
  125. package/dist/src/filters/Invert.min.mjs +1 -1
  126. package/dist/src/filters/Invert.min.mjs.map +1 -1
  127. package/dist/src/filters/Invert.mjs +2 -15
  128. package/dist/src/filters/Invert.mjs.map +1 -1
  129. package/dist/src/filters/Noise.d.ts +9 -20
  130. package/dist/src/filters/Noise.d.ts.map +1 -1
  131. package/dist/src/filters/Noise.min.mjs +1 -1
  132. package/dist/src/filters/Noise.min.mjs.map +1 -1
  133. package/dist/src/filters/Noise.mjs +4 -27
  134. package/dist/src/filters/Noise.mjs.map +1 -1
  135. package/dist/src/filters/Pixelate.d.ts +8 -12
  136. package/dist/src/filters/Pixelate.d.ts.map +1 -1
  137. package/dist/src/filters/Pixelate.min.mjs +1 -1
  138. package/dist/src/filters/Pixelate.min.mjs.map +1 -1
  139. package/dist/src/filters/Pixelate.mjs +2 -16
  140. package/dist/src/filters/Pixelate.mjs.map +1 -1
  141. package/dist/src/filters/RemoveColor.d.ts +12 -23
  142. package/dist/src/filters/RemoveColor.d.ts.map +1 -1
  143. package/dist/src/filters/RemoveColor.min.mjs +1 -1
  144. package/dist/src/filters/RemoveColor.min.mjs.map +1 -1
  145. package/dist/src/filters/RemoveColor.mjs +2 -25
  146. package/dist/src/filters/RemoveColor.mjs.map +1 -1
  147. package/dist/src/filters/Resize.d.ts +14 -30
  148. package/dist/src/filters/Resize.d.ts.map +1 -1
  149. package/dist/src/filters/Resize.min.mjs +1 -1
  150. package/dist/src/filters/Resize.min.mjs.map +1 -1
  151. package/dist/src/filters/Resize.mjs +3 -30
  152. package/dist/src/filters/Resize.mjs.map +1 -1
  153. package/dist/src/filters/Saturation.d.ts +9 -12
  154. package/dist/src/filters/Saturation.d.ts.map +1 -1
  155. package/dist/src/filters/Saturation.min.mjs +1 -1
  156. package/dist/src/filters/Saturation.min.mjs.map +1 -1
  157. package/dist/src/filters/Saturation.mjs +8 -20
  158. package/dist/src/filters/Saturation.mjs.map +1 -1
  159. package/dist/src/filters/Vibrance.d.ts +10 -13
  160. package/dist/src/filters/Vibrance.d.ts.map +1 -1
  161. package/dist/src/filters/Vibrance.min.mjs +1 -1
  162. package/dist/src/filters/Vibrance.min.mjs.map +1 -1
  163. package/dist/src/filters/Vibrance.mjs +6 -18
  164. package/dist/src/filters/Vibrance.mjs.map +1 -1
  165. package/dist/src/filters/WebGLFilterBackend.d.ts +1 -1
  166. package/dist/src/filters/WebGLFilterBackend.d.ts.map +1 -1
  167. package/dist/src/filters/WebGLFilterBackend.min.mjs.map +1 -1
  168. package/dist/src/filters/WebGLFilterBackend.mjs.map +1 -1
  169. package/dist/src/filters/shaders/blendImage.d.ts +1 -0
  170. package/dist/src/filters/shaders/blendImage.d.ts.map +1 -1
  171. package/dist/src/filters/shaders/blendImage.min.mjs +1 -1
  172. package/dist/src/filters/shaders/blendImage.min.mjs.map +1 -1
  173. package/dist/src/filters/shaders/blendImage.mjs +2 -1
  174. package/dist/src/filters/shaders/blendImage.mjs.map +1 -1
  175. package/dist/src/filters/typedefs.d.ts +22 -0
  176. package/dist/src/filters/typedefs.d.ts.map +1 -1
  177. package/dist/src/parser/elements_parser.d.ts +1 -1
  178. package/dist/src/parser/elements_parser.d.ts.map +1 -1
  179. package/dist/src/parser/elements_parser.min.mjs.map +1 -1
  180. package/dist/src/parser/elements_parser.mjs.map +1 -1
  181. package/dist/src/shapes/ActiveSelection.d.ts +1 -1
  182. package/dist/src/shapes/ActiveSelection.d.ts.map +1 -1
  183. package/dist/src/shapes/ActiveSelection.min.mjs +1 -1
  184. package/dist/src/shapes/ActiveSelection.min.mjs.map +1 -1
  185. package/dist/src/shapes/ActiveSelection.mjs +13 -10
  186. package/dist/src/shapes/ActiveSelection.mjs.map +1 -1
  187. package/dist/src/shapes/Group.d.ts +9 -0
  188. package/dist/src/shapes/Group.d.ts.map +1 -1
  189. package/dist/src/shapes/Group.min.mjs +1 -1
  190. package/dist/src/shapes/Group.min.mjs.map +1 -1
  191. package/dist/src/shapes/Group.mjs +10 -1
  192. package/dist/src/shapes/Group.mjs.map +1 -1
  193. package/dist/src/shapes/Image.d.ts +4 -4
  194. package/dist/src/shapes/Image.d.ts.map +1 -1
  195. package/dist/src/shapes/Image.min.mjs.map +1 -1
  196. package/dist/src/shapes/Image.mjs.map +1 -1
  197. package/dist/src/shapes/Object/InteractiveObject.d.ts +3 -0
  198. package/dist/src/shapes/Object/InteractiveObject.d.ts.map +1 -1
  199. package/dist/src/shapes/Object/InteractiveObject.min.mjs +1 -1
  200. package/dist/src/shapes/Object/InteractiveObject.min.mjs.map +1 -1
  201. package/dist/src/shapes/Object/InteractiveObject.mjs +3 -1
  202. package/dist/src/shapes/Object/InteractiveObject.mjs.map +1 -1
  203. package/dist/src/shapes/Object/Object.d.ts +1 -16
  204. package/dist/src/shapes/Object/Object.d.ts.map +1 -1
  205. package/dist/src/shapes/Object/Object.min.mjs +1 -1
  206. package/dist/src/shapes/Object/Object.min.mjs.map +1 -1
  207. package/dist/src/shapes/Object/Object.mjs +9 -10
  208. package/dist/src/shapes/Object/Object.mjs.map +1 -1
  209. package/dist/src/shapes/Object/StackedObject.d.ts +8 -15
  210. package/dist/src/shapes/Object/StackedObject.d.ts.map +1 -1
  211. package/dist/src/shapes/Object/StackedObject.min.mjs +1 -1
  212. package/dist/src/shapes/Object/StackedObject.min.mjs.map +1 -1
  213. package/dist/src/shapes/Object/StackedObject.mjs +11 -21
  214. package/dist/src/shapes/Object/StackedObject.mjs.map +1 -1
  215. package/dist/src/shapes/Path.d.ts +2 -2
  216. package/dist/src/shapes/Path.d.ts.map +1 -1
  217. package/dist/src/shapes/Path.min.mjs.map +1 -1
  218. package/dist/src/shapes/Path.mjs +2 -2
  219. package/dist/src/shapes/Path.mjs.map +1 -1
  220. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +1 -1
  221. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts.map +1 -1
  222. package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs.map +1 -1
  223. package/dist/src/shapes/Text/TextSVGExportMixin.mjs.map +1 -1
  224. package/dist/src/util/misc/objectEnlive.d.ts +2 -2
  225. package/dist/src/util/misc/objectEnlive.d.ts.map +1 -1
  226. package/dist/src/util/misc/objectEnlive.min.mjs.map +1 -1
  227. package/dist/src/util/misc/objectEnlive.mjs.map +1 -1
  228. package/package.json +2 -2
  229. package/src/canvas/Canvas.ts +6 -9
  230. package/src/canvas/SelectableCanvas.ts +2 -2
  231. package/src/canvas/StaticCanvas.ts +4 -18
  232. package/src/color/Color.ts +2 -1
  233. package/src/color/color.test.ts +6 -0
  234. package/src/filters/BaseFilter.ts +45 -51
  235. package/src/filters/BlendColor.ts +13 -35
  236. package/src/filters/BlendImage.ts +26 -40
  237. package/src/filters/Blur.ts +13 -20
  238. package/src/filters/Boilerplate.ts +13 -22
  239. package/src/filters/Brightness.ts +12 -21
  240. package/src/filters/Canvas2dFilterBackend.ts +1 -1
  241. package/src/filters/ColorMatrix.ts +29 -34
  242. package/src/filters/ColorMatrixFilters.ts +15 -9
  243. package/src/filters/Composed.ts +26 -16
  244. package/src/filters/Contrast.ts +15 -23
  245. package/src/filters/Convolute.ts +11 -23
  246. package/src/filters/Gamma.ts +32 -24
  247. package/src/filters/Grayscale.ts +8 -19
  248. package/src/filters/HueRotation.ts +21 -11
  249. package/src/filters/Invert.ts +11 -22
  250. package/src/filters/Noise.ts +11 -30
  251. package/src/filters/Pixelate.ts +9 -22
  252. package/src/filters/RemoveColor.ts +21 -35
  253. package/src/filters/Resize.ts +20 -44
  254. package/src/filters/Saturation.ts +16 -27
  255. package/src/filters/Vibrance.ts +14 -24
  256. package/src/filters/WebGLFilterBackend.ts +1 -1
  257. package/src/filters/shaders/blendImage.ts +12 -0
  258. package/src/filters/typedefs.ts +23 -0
  259. package/src/parser/elements_parser.ts +1 -1
  260. package/src/shapes/ActiveSelection.ts +8 -4
  261. package/src/shapes/Group.ts +16 -1
  262. package/src/shapes/Image.ts +8 -6
  263. package/src/shapes/Object/InteractiveObject.ts +3 -1
  264. package/src/shapes/Object/Object.ts +10 -35
  265. package/src/shapes/Object/StackedObject.ts +28 -44
  266. package/src/shapes/Path.ts +4 -4
  267. package/src/shapes/Text/TextSVGExportMixin.ts +1 -1
  268. package/src/util/misc/objectEnlive.ts +12 -2
@@ -1,2 +1,2 @@
1
- import{defineProperty as t,objectWithoutProperties as r}from"../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{BaseFilter as o}from"./BaseFilter.min.mjs";import{classRegistry as i}from"../ClassRegistry.min.mjs";import{fragmentSource as s}from"./shaders/colorMatrix.min.mjs";const a=["matrix"],e={matrix:[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],mainParameter:"matrix",colorsOnly:!0};class n extends o{setOptions(t){let{matrix:o}=t,i=r(t,a);o&&(this.matrix=[...o]),Object.assign(this,i)}getFragmentSource(){return s}applyTo2d(t){const r=t.imageData.data,o=this.matrix,i=this.colorsOnly;for(let t=0;t<r.length;t+=4){const s=r[t],a=r[t+1],e=r[t+2];if(i)r[t]=s*o[0]+a*o[1]+e*o[2]+255*o[4],r[t+1]=s*o[5]+a*o[6]+e*o[7]+255*o[9],r[t+2]=s*o[10]+a*o[11]+e*o[12]+255*o[14];else{const i=r[t+3];r[t]=s*o[0]+a*o[1]+e*o[2]+i*o[3]+255*o[4],r[t+1]=s*o[5]+a*o[6]+e*o[7]+i*o[8]+255*o[9],r[t+2]=s*o[10]+a*o[11]+e*o[12]+i*o[13]+255*o[14],r[t+3]=s*o[15]+a*o[16]+e*o[17]+i*o[18]+255*o[19]}}}getUniformLocations(t,r){return{uColorMatrix:t.getUniformLocation(r,"uColorMatrix"),uConstants:t.getUniformLocation(r,"uConstants")}}sendUniformData(t,r){const o=this.matrix,i=[o[0],o[1],o[2],o[3],o[5],o[6],o[7],o[8],o[10],o[11],o[12],o[13],o[15],o[16],o[17],o[18]],s=[o[4],o[9],o[14],o[19]];t.uniformMatrix4fv(r.uColorMatrix,!1,i),t.uniform4fv(r.uConstants,s)}}t(n,"type","ColorMatrix"),t(n,"defaults",e),i.setClass(n);export{n as ColorMatrix,e as colorMatrixDefaultValues};
1
+ import{defineProperty as t,objectSpread2 as r}from"../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{BaseFilter as o}from"./BaseFilter.min.mjs";import{classRegistry as s}from"../ClassRegistry.min.mjs";import{fragmentSource as i}from"./shaders/colorMatrix.min.mjs";const a={matrix:[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],colorsOnly:!0};class e extends o{getFragmentSource(){return i}applyTo2d(t){const r=t.imageData.data,o=this.matrix,s=this.colorsOnly;for(let t=0;t<r.length;t+=4){const i=r[t],a=r[t+1],e=r[t+2];if(s)r[t]=i*o[0]+a*o[1]+e*o[2]+255*o[4],r[t+1]=i*o[5]+a*o[6]+e*o[7]+255*o[9],r[t+2]=i*o[10]+a*o[11]+e*o[12]+255*o[14];else{const s=r[t+3];r[t]=i*o[0]+a*o[1]+e*o[2]+s*o[3]+255*o[4],r[t+1]=i*o[5]+a*o[6]+e*o[7]+s*o[8]+255*o[9],r[t+2]=i*o[10]+a*o[11]+e*o[12]+s*o[13]+255*o[14],r[t+3]=i*o[15]+a*o[16]+e*o[17]+s*o[18]+255*o[19]}}}sendUniformData(t,r){const o=this.matrix,s=[o[0],o[1],o[2],o[3],o[5],o[6],o[7],o[8],o[10],o[11],o[12],o[13],o[15],o[16],o[17],o[18]],i=[o[4],o[9],o[14],o[19]];t.uniformMatrix4fv(r.uColorMatrix,!1,s),t.uniform4fv(r.uConstants,i)}toObject(){return r(r({},super.toObject()),{},{matrix:[...this.matrix]})}}t(e,"type","ColorMatrix"),t(e,"defaults",a),t(e,"uniformLocations",["uColorMatrix","uConstants"]),s.setClass(e);export{e as ColorMatrix,a as colorMatrixDefaultValues};
2
2
  //# sourceMappingURL=ColorMatrix.min.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ColorMatrix.min.mjs","sources":["../../../src/filters/ColorMatrix.ts"],"sourcesContent":["import type { TClassProperties } from '../typedefs';\nimport { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/colorMatrix';\nexport const colorMatrixDefaultValues: Partial<TClassProperties<ColorMatrix>> =\n {\n matrix: [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0],\n mainParameter: 'matrix',\n colorsOnly: true,\n };\n\n/**\n * Color Matrix filter class\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @see {@Link http://phoboslab.org/log/2013/11/fast-image-filters-with-webgl demo}\n * @example <caption>Kodachrome filter</caption>\n * const filter = new ColorMatrix({\n * matrix: [\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0\n ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class ColorMatrix extends BaseFilter {\n /**\n * Colormatrix for pixels.\n * array of 20 floats. Numbers in positions 4, 9, 14, 19 loose meaning\n * outside the -1, 1 range.\n * 0.0039215686 is the part of 1 that get translated to 1 in 2d\n * @param {Array} matrix array of 20 numbers.\n * @default\n */\n declare matrix: number[];\n\n /**\n * Lock the colormatrix on the color part, skipping alpha, mainly for non webgl scenario\n * to save some calculation\n * @type Boolean\n * @default true\n */\n declare colorsOnly: boolean;\n\n static type = 'ColorMatrix';\n\n static defaults = colorMatrixDefaultValues;\n\n setOptions({ matrix, ...options }: Record<string, any>) {\n if (matrix) {\n // safeguard against mutation\n this.matrix = [...matrix];\n }\n Object.assign(this, options);\n }\n\n getFragmentSource(): string {\n return fragmentSource;\n }\n\n /**\n * Apply the ColorMatrix operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d(options: T2DPipelineState) {\n const imageData = options.imageData,\n data = imageData.data,\n m = this.matrix,\n colorsOnly = this.colorsOnly;\n\n for (let i = 0; i < data.length; i += 4) {\n const r = data[i];\n const g = data[i + 1];\n const b = data[i + 2];\n if (colorsOnly) {\n data[i] = r * m[0] + g * m[1] + b * m[2] + m[4] * 255;\n data[i + 1] = r * m[5] + g * m[6] + b * m[7] + m[9] * 255;\n data[i + 2] = r * m[10] + g * m[11] + b * m[12] + m[14] * 255;\n } else {\n const a = data[i + 3];\n data[i] = r * m[0] + g * m[1] + b * m[2] + a * m[3] + m[4] * 255;\n data[i + 1] = r * m[5] + g * m[6] + b * m[7] + a * m[8] + m[9] * 255;\n data[i + 2] =\n r * m[10] + g * m[11] + b * m[12] + a * m[13] + m[14] * 255;\n data[i + 3] =\n r * m[15] + g * m[16] + b * m[17] + a * m[18] + m[19] * 255;\n }\n }\n }\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n ): TWebGLUniformLocationMap {\n return {\n uColorMatrix: gl.getUniformLocation(program, 'uColorMatrix'),\n uConstants: gl.getUniformLocation(program, 'uConstants'),\n };\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap\n ) {\n const m = this.matrix,\n matrix = [\n m[0],\n m[1],\n m[2],\n m[3],\n m[5],\n m[6],\n m[7],\n m[8],\n m[10],\n m[11],\n m[12],\n m[13],\n m[15],\n m[16],\n m[17],\n m[18],\n ],\n constants = [m[4], m[9], m[14], m[19]];\n gl.uniformMatrix4fv(uniformLocations.uColorMatrix, false, matrix);\n gl.uniform4fv(uniformLocations.uConstants, constants);\n }\n}\n\nclassRegistry.setClass(ColorMatrix);\n"],"names":["colorMatrixDefaultValues","matrix","mainParameter","colorsOnly","ColorMatrix","BaseFilter","setOptions","_ref","options","_objectWithoutProperties","_excluded","this","Object","assign","getFragmentSource","fragmentSource","applyTo2d","data","imageData","m","i","length","r","g","b","a","getUniformLocations","gl","program","uColorMatrix","getUniformLocation","uConstants","sendUniformData","uniformLocations","constants","uniformMatrix4fv","uniform4fv","_defineProperty","classRegistry","setClass"],"mappings":"4SAKaA,EACX,CACEC,OAAQ,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAClEC,cAAe,SACfC,YAAY,GAmBT,MAAMC,UAAoBC,EAuB/BC,UAAAA,CAAUC,GAA8C,IAA7CN,OAAEA,GAAyCM,EAA9BC,EAAOC,EAAAF,EAAAG,GACzBT,IAEFU,KAAKV,OAAS,IAAIA,IAEpBW,OAAOC,OAAOF,KAAMH,EACtB,CAEAM,iBAAAA,GACE,OAAOC,CACT,CAQAC,SAAAA,CAAUR,GACR,MACES,EADgBT,EAAQU,UACPD,KACjBE,EAAIR,KAAKV,OACTE,EAAaQ,KAAKR,WAEpB,IAAK,IAAIiB,EAAI,EAAGA,EAAIH,EAAKI,OAAQD,GAAK,EAAG,CACvC,MAAME,EAAIL,EAAKG,GACTG,EAAIN,EAAKG,EAAI,GACbI,EAAIP,EAAKG,EAAI,GACnB,GAAIjB,EACFc,EAAKG,GAAKE,EAAIH,EAAE,GAAKI,EAAIJ,EAAE,GAAKK,EAAIL,EAAE,GAAY,IAAPA,EAAE,GAC7CF,EAAKG,EAAI,GAAKE,EAAIH,EAAE,GAAKI,EAAIJ,EAAE,GAAKK,EAAIL,EAAE,GAAY,IAAPA,EAAE,GACjDF,EAAKG,EAAI,GAAKE,EAAIH,EAAE,IAAMI,EAAIJ,EAAE,IAAMK,EAAIL,EAAE,IAAc,IAARA,EAAE,QAC/C,CACL,MAAMM,EAAIR,EAAKG,EAAI,GACnBH,EAAKG,GAAKE,EAAIH,EAAE,GAAKI,EAAIJ,EAAE,GAAKK,EAAIL,EAAE,GAAKM,EAAIN,EAAE,GAAY,IAAPA,EAAE,GACxDF,EAAKG,EAAI,GAAKE,EAAIH,EAAE,GAAKI,EAAIJ,EAAE,GAAKK,EAAIL,EAAE,GAAKM,EAAIN,EAAE,GAAY,IAAPA,EAAE,GAC5DF,EAAKG,EAAI,GACPE,EAAIH,EAAE,IAAMI,EAAIJ,EAAE,IAAMK,EAAIL,EAAE,IAAMM,EAAIN,EAAE,IAAc,IAARA,EAAE,IACpDF,EAAKG,EAAI,GACPE,EAAIH,EAAE,IAAMI,EAAIJ,EAAE,IAAMK,EAAIL,EAAE,IAAMM,EAAIN,EAAE,IAAc,IAARA,EAAE,GACtD,CACF,CACF,CAQAO,mBAAAA,CACEC,EACAC,GAEA,MAAO,CACLC,aAAcF,EAAGG,mBAAmBF,EAAS,gBAC7CG,WAAYJ,EAAGG,mBAAmBF,EAAS,cAE/C,CAQAI,eAAAA,CACEL,EACAM,GAEA,MAAMd,EAAIR,KAAKV,OACbA,EAAS,CACPkB,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,IACFA,EAAE,IACFA,EAAE,IACFA,EAAE,IACFA,EAAE,IACFA,EAAE,IACFA,EAAE,IACFA,EAAE,KAEJe,EAAY,CAACf,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAKA,EAAE,KACpCQ,EAAGQ,iBAAiBF,EAAiBJ,cAAc,EAAO5B,GAC1D0B,EAAGS,WAAWH,EAAiBF,WAAYG,EAC7C,EAxGAG,EAXWjC,EAAW,OAmBR,eAAaiC,EAnBhBjC,EAAW,WAqBJJ,GAiGpBsC,EAAcC,SAASnC"}
1
+ {"version":3,"file":"ColorMatrix.min.mjs","sources":["../../../src/filters/ColorMatrix.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type {\n T2DPipelineState,\n TMatColorMatrix,\n TWebGLUniformLocationMap,\n} from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/colorMatrix';\n\ntype ColorMatrixOwnProps = {\n matrix: TMatColorMatrix;\n colorsOnly: boolean;\n};\n\nexport const colorMatrixDefaultValues: ColorMatrixOwnProps = {\n matrix: [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0],\n colorsOnly: true,\n};\n\n/**\n * Color Matrix filter class\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @see {@Link http://phoboslab.org/log/2013/11/fast-image-filters-with-webgl demo}\n * @example <caption>Kodachrome filter</caption>\n * const filter = new ColorMatrix({\n * matrix: [\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0\n ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class ColorMatrix<\n Name extends string = 'ColorMatrix',\n OwnProps extends object = ColorMatrixOwnProps\n> extends BaseFilter<Name, OwnProps> {\n /**\n * Colormatrix for pixels.\n * array of 20 floats. Numbers in positions 4, 9, 14, 19 loose meaning\n * outside the -1, 1 range.\n * 0.0039215686 is the part of 1 that get translated to 1 in 2d\n * @param {Array} matrix array of 20 numbers.\n * @default\n */\n declare matrix: ColorMatrixOwnProps['matrix'];\n\n /**\n * Lock the colormatrix on the color part, skipping alpha, mainly for non webgl scenario\n * to save some calculation\n * @type Boolean\n * @default true\n */\n declare colorsOnly: ColorMatrixOwnProps['colorsOnly'];\n\n static type = 'ColorMatrix';\n\n static defaults = colorMatrixDefaultValues;\n\n static uniformLocations = ['uColorMatrix', 'uConstants'];\n\n getFragmentSource(): string {\n return fragmentSource;\n }\n\n /**\n * Apply the ColorMatrix operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d(options: T2DPipelineState) {\n const imageData = options.imageData,\n data = imageData.data,\n m = this.matrix,\n colorsOnly = this.colorsOnly;\n\n for (let i = 0; i < data.length; i += 4) {\n const r = data[i];\n const g = data[i + 1];\n const b = data[i + 2];\n if (colorsOnly) {\n data[i] = r * m[0] + g * m[1] + b * m[2] + m[4] * 255;\n data[i + 1] = r * m[5] + g * m[6] + b * m[7] + m[9] * 255;\n data[i + 2] = r * m[10] + g * m[11] + b * m[12] + m[14] * 255;\n } else {\n const a = data[i + 3];\n data[i] = r * m[0] + g * m[1] + b * m[2] + a * m[3] + m[4] * 255;\n data[i + 1] = r * m[5] + g * m[6] + b * m[7] + a * m[8] + m[9] * 255;\n data[i + 2] =\n r * m[10] + g * m[11] + b * m[12] + a * m[13] + m[14] * 255;\n data[i + 3] =\n r * m[15] + g * m[16] + b * m[17] + a * m[18] + m[19] * 255;\n }\n }\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap\n ) {\n const m = this.matrix,\n matrix = [\n m[0],\n m[1],\n m[2],\n m[3],\n m[5],\n m[6],\n m[7],\n m[8],\n m[10],\n m[11],\n m[12],\n m[13],\n m[15],\n m[16],\n m[17],\n m[18],\n ],\n constants = [m[4], m[9], m[14], m[19]];\n gl.uniformMatrix4fv(uniformLocations.uColorMatrix, false, matrix);\n gl.uniform4fv(uniformLocations.uConstants, constants);\n }\n\n toObject() {\n return {\n ...super.toObject(),\n matrix: [...this.matrix] as TMatColorMatrix,\n };\n }\n}\n\nclassRegistry.setClass(ColorMatrix);\n"],"names":["colorMatrixDefaultValues","matrix","colorsOnly","ColorMatrix","BaseFilter","getFragmentSource","fragmentSource","applyTo2d","options","data","imageData","m","this","i","length","r","g","b","a","sendUniformData","gl","uniformLocations","constants","uniformMatrix4fv","uColorMatrix","uniform4fv","uConstants","toObject","_objectSpread","super","_defineProperty","classRegistry","setClass"],"mappings":"+QAcO,MAAMA,EAAgD,CAC3DC,OAAQ,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAClEC,YAAY,GAmBP,MAAMC,UAGHC,EAyBRC,iBAAAA,GACE,OAAOC,CACT,CAQAC,SAAAA,CAAUC,GACR,MACEC,EADgBD,EAAQE,UACPD,KACjBE,EAAIC,KAAKX,OACTC,EAAaU,KAAKV,WAEpB,IAAK,IAAIW,EAAI,EAAGA,EAAIJ,EAAKK,OAAQD,GAAK,EAAG,CACvC,MAAME,EAAIN,EAAKI,GACTG,EAAIP,EAAKI,EAAI,GACbI,EAAIR,EAAKI,EAAI,GACnB,GAAIX,EACFO,EAAKI,GAAKE,EAAIJ,EAAE,GAAKK,EAAIL,EAAE,GAAKM,EAAIN,EAAE,GAAY,IAAPA,EAAE,GAC7CF,EAAKI,EAAI,GAAKE,EAAIJ,EAAE,GAAKK,EAAIL,EAAE,GAAKM,EAAIN,EAAE,GAAY,IAAPA,EAAE,GACjDF,EAAKI,EAAI,GAAKE,EAAIJ,EAAE,IAAMK,EAAIL,EAAE,IAAMM,EAAIN,EAAE,IAAc,IAARA,EAAE,QAC/C,CACL,MAAMO,EAAIT,EAAKI,EAAI,GACnBJ,EAAKI,GAAKE,EAAIJ,EAAE,GAAKK,EAAIL,EAAE,GAAKM,EAAIN,EAAE,GAAKO,EAAIP,EAAE,GAAY,IAAPA,EAAE,GACxDF,EAAKI,EAAI,GAAKE,EAAIJ,EAAE,GAAKK,EAAIL,EAAE,GAAKM,EAAIN,EAAE,GAAKO,EAAIP,EAAE,GAAY,IAAPA,EAAE,GAC5DF,EAAKI,EAAI,GACPE,EAAIJ,EAAE,IAAMK,EAAIL,EAAE,IAAMM,EAAIN,EAAE,IAAMO,EAAIP,EAAE,IAAc,IAARA,EAAE,IACpDF,EAAKI,EAAI,GACPE,EAAIJ,EAAE,IAAMK,EAAIL,EAAE,IAAMM,EAAIN,EAAE,IAAMO,EAAIP,EAAE,IAAc,IAARA,EAAE,GACtD,CACF,CACF,CAQAQ,eAAAA,CACEC,EACAC,GAEA,MAAMV,EAAIC,KAAKX,OACbA,EAAS,CACPU,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,IACFA,EAAE,IACFA,EAAE,IACFA,EAAE,IACFA,EAAE,IACFA,EAAE,IACFA,EAAE,IACFA,EAAE,KAEJW,EAAY,CAACX,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAKA,EAAE,KACpCS,EAAGG,iBAAiBF,EAAiBG,cAAc,EAAOvB,GAC1DmB,EAAGK,WAAWJ,EAAiBK,WAAYJ,EAC7C,CAEAK,QAAAA,GACE,OAAAC,EAAAA,EAAA,CAAA,EACKC,MAAMF,YAAU,GAAA,CACnB1B,OAAQ,IAAIW,KAAKX,SAErB,EAzFA6B,EAdW3B,EAAW,OAsBR,eAAa2B,EAtBhB3B,EAAW,WAwBJH,GAAwB8B,EAxB/B3B,EAAW,mBA0BI,CAAC,eAAgB,eAgF7C4B,EAAcC,SAAS7B"}
@@ -1,12 +1,10 @@
1
- import { defineProperty as _defineProperty, objectWithoutProperties as _objectWithoutProperties } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
1
+ import { defineProperty as _defineProperty, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
2
2
  import { BaseFilter } from './BaseFilter.mjs';
3
3
  import { classRegistry } from '../ClassRegistry.mjs';
4
4
  import { fragmentSource } from './shaders/colorMatrix.mjs';
5
5
 
6
- const _excluded = ["matrix"];
7
6
  const colorMatrixDefaultValues = {
8
7
  matrix: [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0],
9
- mainParameter: 'matrix',
10
8
  colorsOnly: true
11
9
  };
12
10
 
@@ -27,17 +25,6 @@ const colorMatrixDefaultValues = {
27
25
  * object.applyFilters();
28
26
  */
29
27
  class ColorMatrix extends BaseFilter {
30
- setOptions(_ref) {
31
- let {
32
- matrix
33
- } = _ref,
34
- options = _objectWithoutProperties(_ref, _excluded);
35
- if (matrix) {
36
- // safeguard against mutation
37
- this.matrix = [...matrix];
38
- }
39
- Object.assign(this, options);
40
- }
41
28
  getFragmentSource() {
42
29
  return fragmentSource;
43
30
  }
@@ -71,19 +58,6 @@ class ColorMatrix extends BaseFilter {
71
58
  }
72
59
  }
73
60
 
74
- /**
75
- * Return WebGL uniform locations for this filter's shader.
76
- *
77
- * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
78
- * @param {WebGLShaderProgram} program This filter's compiled shader program.
79
- */
80
- getUniformLocations(gl, program) {
81
- return {
82
- uColorMatrix: gl.getUniformLocation(program, 'uColorMatrix'),
83
- uConstants: gl.getUniformLocation(program, 'uConstants')
84
- };
85
- }
86
-
87
61
  /**
88
62
  * Send data from this filter to its shader program's uniforms.
89
63
  *
@@ -97,6 +71,11 @@ class ColorMatrix extends BaseFilter {
97
71
  gl.uniformMatrix4fv(uniformLocations.uColorMatrix, false, matrix);
98
72
  gl.uniform4fv(uniformLocations.uConstants, constants);
99
73
  }
74
+ toObject() {
75
+ return _objectSpread2(_objectSpread2({}, super.toObject()), {}, {
76
+ matrix: [...this.matrix]
77
+ });
78
+ }
100
79
  }
101
80
  /**
102
81
  * Colormatrix for pixels.
@@ -114,6 +93,7 @@ class ColorMatrix extends BaseFilter {
114
93
  */
115
94
  _defineProperty(ColorMatrix, "type", 'ColorMatrix');
116
95
  _defineProperty(ColorMatrix, "defaults", colorMatrixDefaultValues);
96
+ _defineProperty(ColorMatrix, "uniformLocations", ['uColorMatrix', 'uConstants']);
117
97
  classRegistry.setClass(ColorMatrix);
118
98
 
119
99
  export { ColorMatrix, colorMatrixDefaultValues };
@@ -1 +1 @@
1
- {"version":3,"file":"ColorMatrix.mjs","sources":["../../../src/filters/ColorMatrix.ts"],"sourcesContent":["import type { TClassProperties } from '../typedefs';\nimport { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/colorMatrix';\nexport const colorMatrixDefaultValues: Partial<TClassProperties<ColorMatrix>> =\n {\n matrix: [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0],\n mainParameter: 'matrix',\n colorsOnly: true,\n };\n\n/**\n * Color Matrix filter class\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @see {@Link http://phoboslab.org/log/2013/11/fast-image-filters-with-webgl demo}\n * @example <caption>Kodachrome filter</caption>\n * const filter = new ColorMatrix({\n * matrix: [\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0\n ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class ColorMatrix extends BaseFilter {\n /**\n * Colormatrix for pixels.\n * array of 20 floats. Numbers in positions 4, 9, 14, 19 loose meaning\n * outside the -1, 1 range.\n * 0.0039215686 is the part of 1 that get translated to 1 in 2d\n * @param {Array} matrix array of 20 numbers.\n * @default\n */\n declare matrix: number[];\n\n /**\n * Lock the colormatrix on the color part, skipping alpha, mainly for non webgl scenario\n * to save some calculation\n * @type Boolean\n * @default true\n */\n declare colorsOnly: boolean;\n\n static type = 'ColorMatrix';\n\n static defaults = colorMatrixDefaultValues;\n\n setOptions({ matrix, ...options }: Record<string, any>) {\n if (matrix) {\n // safeguard against mutation\n this.matrix = [...matrix];\n }\n Object.assign(this, options);\n }\n\n getFragmentSource(): string {\n return fragmentSource;\n }\n\n /**\n * Apply the ColorMatrix operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d(options: T2DPipelineState) {\n const imageData = options.imageData,\n data = imageData.data,\n m = this.matrix,\n colorsOnly = this.colorsOnly;\n\n for (let i = 0; i < data.length; i += 4) {\n const r = data[i];\n const g = data[i + 1];\n const b = data[i + 2];\n if (colorsOnly) {\n data[i] = r * m[0] + g * m[1] + b * m[2] + m[4] * 255;\n data[i + 1] = r * m[5] + g * m[6] + b * m[7] + m[9] * 255;\n data[i + 2] = r * m[10] + g * m[11] + b * m[12] + m[14] * 255;\n } else {\n const a = data[i + 3];\n data[i] = r * m[0] + g * m[1] + b * m[2] + a * m[3] + m[4] * 255;\n data[i + 1] = r * m[5] + g * m[6] + b * m[7] + a * m[8] + m[9] * 255;\n data[i + 2] =\n r * m[10] + g * m[11] + b * m[12] + a * m[13] + m[14] * 255;\n data[i + 3] =\n r * m[15] + g * m[16] + b * m[17] + a * m[18] + m[19] * 255;\n }\n }\n }\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n ): TWebGLUniformLocationMap {\n return {\n uColorMatrix: gl.getUniformLocation(program, 'uColorMatrix'),\n uConstants: gl.getUniformLocation(program, 'uConstants'),\n };\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap\n ) {\n const m = this.matrix,\n matrix = [\n m[0],\n m[1],\n m[2],\n m[3],\n m[5],\n m[6],\n m[7],\n m[8],\n m[10],\n m[11],\n m[12],\n m[13],\n m[15],\n m[16],\n m[17],\n m[18],\n ],\n constants = [m[4], m[9], m[14], m[19]];\n gl.uniformMatrix4fv(uniformLocations.uColorMatrix, false, matrix);\n gl.uniform4fv(uniformLocations.uConstants, constants);\n }\n}\n\nclassRegistry.setClass(ColorMatrix);\n"],"names":["colorMatrixDefaultValues","matrix","mainParameter","colorsOnly","ColorMatrix","BaseFilter","setOptions","_ref","options","_objectWithoutProperties","_excluded","Object","assign","getFragmentSource","fragmentSource","applyTo2d","imageData","data","m","i","length","r","g","b","a","getUniformLocations","gl","program","uColorMatrix","getUniformLocation","uConstants","sendUniformData","uniformLocations","constants","uniformMatrix4fv","uniform4fv","_defineProperty","classRegistry","setClass"],"mappings":";;;;;;AAKO,MAAMA,wBAAgE,GAC3E;AACEC,EAAAA,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACpEC,EAAAA,aAAa,EAAE,QAAQ;AACvBC,EAAAA,UAAU,EAAE,IAAA;AACd,EAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,WAAW,SAASC,UAAU,CAAC;EAuB1CC,UAAUA,CAAAC,IAAA,EAA8C;IAAA,IAA7C;AAAEN,QAAAA,MAAAA;AAAwC,OAAC,GAAAM,IAAA;AAA9BC,MAAAA,OAAO,GAAAC,wBAAA,CAAAF,IAAA,EAAAG,SAAA,CAAA,CAAA;AAC7B,IAAA,IAAIT,MAAM,EAAE;AACV;AACA,MAAA,IAAI,CAACA,MAAM,GAAG,CAAC,GAAGA,MAAM,CAAC,CAAA;AAC3B,KAAA;AACAU,IAAAA,MAAM,CAACC,MAAM,CAAC,IAAI,EAAEJ,OAAO,CAAC,CAAA;AAC9B,GAAA;AAEAK,EAAAA,iBAAiBA,GAAW;AAC1B,IAAA,OAAOC,cAAc,CAAA;AACvB,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACEC,SAASA,CAACP,OAAyB,EAAE;AACnC,IAAA,MAAMQ,SAAS,GAAGR,OAAO,CAACQ,SAAS;MACjCC,IAAI,GAAGD,SAAS,CAACC,IAAI;MACrBC,CAAC,GAAG,IAAI,CAACjB,MAAM;MACfE,UAAU,GAAG,IAAI,CAACA,UAAU,CAAA;AAE9B,IAAA,KAAK,IAAIgB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,IAAI,CAACG,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;AACvC,MAAA,MAAME,CAAC,GAAGJ,IAAI,CAACE,CAAC,CAAC,CAAA;AACjB,MAAA,MAAMG,CAAC,GAAGL,IAAI,CAACE,CAAC,GAAG,CAAC,CAAC,CAAA;AACrB,MAAA,MAAMI,CAAC,GAAGN,IAAI,CAACE,CAAC,GAAG,CAAC,CAAC,CAAA;AACrB,MAAA,IAAIhB,UAAU,EAAE;AACdc,QAAAA,IAAI,CAACE,CAAC,CAAC,GAAGE,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGI,CAAC,GAAGJ,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,GAAGL,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;AACrDD,QAAAA,IAAI,CAACE,CAAC,GAAG,CAAC,CAAC,GAAGE,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGI,CAAC,GAAGJ,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,GAAGL,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;AACzDD,QAAAA,IAAI,CAACE,CAAC,GAAG,CAAC,CAAC,GAAGE,CAAC,GAAGH,CAAC,CAAC,EAAE,CAAC,GAAGI,CAAC,GAAGJ,CAAC,CAAC,EAAE,CAAC,GAAGK,CAAC,GAAGL,CAAC,CAAC,EAAE,CAAC,GAAGA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAA;AAC/D,OAAC,MAAM;AACL,QAAA,MAAMM,CAAC,GAAGP,IAAI,CAACE,CAAC,GAAG,CAAC,CAAC,CAAA;AACrBF,QAAAA,IAAI,CAACE,CAAC,CAAC,GAAGE,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGI,CAAC,GAAGJ,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,GAAGL,CAAC,CAAC,CAAC,CAAC,GAAGM,CAAC,GAAGN,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;AAChED,QAAAA,IAAI,CAACE,CAAC,GAAG,CAAC,CAAC,GAAGE,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGI,CAAC,GAAGJ,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,GAAGL,CAAC,CAAC,CAAC,CAAC,GAAGM,CAAC,GAAGN,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;AACpED,QAAAA,IAAI,CAACE,CAAC,GAAG,CAAC,CAAC,GACTE,CAAC,GAAGH,CAAC,CAAC,EAAE,CAAC,GAAGI,CAAC,GAAGJ,CAAC,CAAC,EAAE,CAAC,GAAGK,CAAC,GAAGL,CAAC,CAAC,EAAE,CAAC,GAAGM,CAAC,GAAGN,CAAC,CAAC,EAAE,CAAC,GAAGA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAA;AAC7DD,QAAAA,IAAI,CAACE,CAAC,GAAG,CAAC,CAAC,GACTE,CAAC,GAAGH,CAAC,CAAC,EAAE,CAAC,GAAGI,CAAC,GAAGJ,CAAC,CAAC,EAAE,CAAC,GAAGK,CAAC,GAAGL,CAAC,CAAC,EAAE,CAAC,GAAGM,CAAC,GAAGN,CAAC,CAAC,EAAE,CAAC,GAAGA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAA;AAC/D,OAAA;AACF,KAAA;AACF,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEO,EAAAA,mBAAmBA,CACjBC,EAAyB,EACzBC,OAAqB,EACK;IAC1B,OAAO;MACLC,YAAY,EAAEF,EAAE,CAACG,kBAAkB,CAACF,OAAO,EAAE,cAAc,CAAC;AAC5DG,MAAAA,UAAU,EAAEJ,EAAE,CAACG,kBAAkB,CAACF,OAAO,EAAE,YAAY,CAAA;KACxD,CAAA;AACH,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEI,EAAAA,eAAeA,CACbL,EAAyB,EACzBM,gBAA0C,EAC1C;AACA,IAAA,MAAMd,CAAC,GAAG,IAAI,CAACjB,MAAM;AACnBA,MAAAA,MAAM,GAAG,CACPiB,CAAC,CAAC,CAAC,CAAC,EACJA,CAAC,CAAC,CAAC,CAAC,EACJA,CAAC,CAAC,CAAC,CAAC,EACJA,CAAC,CAAC,CAAC,CAAC,EACJA,CAAC,CAAC,CAAC,CAAC,EACJA,CAAC,CAAC,CAAC,CAAC,EACJA,CAAC,CAAC,CAAC,CAAC,EACJA,CAAC,CAAC,CAAC,CAAC,EACJA,CAAC,CAAC,EAAE,CAAC,EACLA,CAAC,CAAC,EAAE,CAAC,EACLA,CAAC,CAAC,EAAE,CAAC,EACLA,CAAC,CAAC,EAAE,CAAC,EACLA,CAAC,CAAC,EAAE,CAAC,EACLA,CAAC,CAAC,EAAE,CAAC,EACLA,CAAC,CAAC,EAAE,CAAC,EACLA,CAAC,CAAC,EAAE,CAAC,CACN;MACDe,SAAS,GAAG,CAACf,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,EAAE,CAAC,EAAEA,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACxCQ,EAAE,CAACQ,gBAAgB,CAACF,gBAAgB,CAACJ,YAAY,EAAE,KAAK,EAAE3B,MAAM,CAAC,CAAA;IACjEyB,EAAE,CAACS,UAAU,CAACH,gBAAgB,CAACF,UAAU,EAAEG,SAAS,CAAC,CAAA;AACvD,GAAA;AACF,CAAA;AAnHE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AAGE;AACF;AACA;AACA;AACA;AACA;AALEG,eAAA,CAXWhC,WAAW,EAAA,MAAA,EAmBR,aAAa,CAAA,CAAA;AAAAgC,eAAA,CAnBhBhC,WAAW,EAAA,UAAA,EAqBJJ,wBAAwB,CAAA,CAAA;AAiG5CqC,aAAa,CAACC,QAAQ,CAAClC,WAAW,CAAC;;;;"}
1
+ {"version":3,"file":"ColorMatrix.mjs","sources":["../../../src/filters/ColorMatrix.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type {\n T2DPipelineState,\n TMatColorMatrix,\n TWebGLUniformLocationMap,\n} from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/colorMatrix';\n\ntype ColorMatrixOwnProps = {\n matrix: TMatColorMatrix;\n colorsOnly: boolean;\n};\n\nexport const colorMatrixDefaultValues: ColorMatrixOwnProps = {\n matrix: [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0],\n colorsOnly: true,\n};\n\n/**\n * Color Matrix filter class\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @see {@Link http://phoboslab.org/log/2013/11/fast-image-filters-with-webgl demo}\n * @example <caption>Kodachrome filter</caption>\n * const filter = new ColorMatrix({\n * matrix: [\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0\n ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class ColorMatrix<\n Name extends string = 'ColorMatrix',\n OwnProps extends object = ColorMatrixOwnProps\n> extends BaseFilter<Name, OwnProps> {\n /**\n * Colormatrix for pixels.\n * array of 20 floats. Numbers in positions 4, 9, 14, 19 loose meaning\n * outside the -1, 1 range.\n * 0.0039215686 is the part of 1 that get translated to 1 in 2d\n * @param {Array} matrix array of 20 numbers.\n * @default\n */\n declare matrix: ColorMatrixOwnProps['matrix'];\n\n /**\n * Lock the colormatrix on the color part, skipping alpha, mainly for non webgl scenario\n * to save some calculation\n * @type Boolean\n * @default true\n */\n declare colorsOnly: ColorMatrixOwnProps['colorsOnly'];\n\n static type = 'ColorMatrix';\n\n static defaults = colorMatrixDefaultValues;\n\n static uniformLocations = ['uColorMatrix', 'uConstants'];\n\n getFragmentSource(): string {\n return fragmentSource;\n }\n\n /**\n * Apply the ColorMatrix operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d(options: T2DPipelineState) {\n const imageData = options.imageData,\n data = imageData.data,\n m = this.matrix,\n colorsOnly = this.colorsOnly;\n\n for (let i = 0; i < data.length; i += 4) {\n const r = data[i];\n const g = data[i + 1];\n const b = data[i + 2];\n if (colorsOnly) {\n data[i] = r * m[0] + g * m[1] + b * m[2] + m[4] * 255;\n data[i + 1] = r * m[5] + g * m[6] + b * m[7] + m[9] * 255;\n data[i + 2] = r * m[10] + g * m[11] + b * m[12] + m[14] * 255;\n } else {\n const a = data[i + 3];\n data[i] = r * m[0] + g * m[1] + b * m[2] + a * m[3] + m[4] * 255;\n data[i + 1] = r * m[5] + g * m[6] + b * m[7] + a * m[8] + m[9] * 255;\n data[i + 2] =\n r * m[10] + g * m[11] + b * m[12] + a * m[13] + m[14] * 255;\n data[i + 3] =\n r * m[15] + g * m[16] + b * m[17] + a * m[18] + m[19] * 255;\n }\n }\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap\n ) {\n const m = this.matrix,\n matrix = [\n m[0],\n m[1],\n m[2],\n m[3],\n m[5],\n m[6],\n m[7],\n m[8],\n m[10],\n m[11],\n m[12],\n m[13],\n m[15],\n m[16],\n m[17],\n m[18],\n ],\n constants = [m[4], m[9], m[14], m[19]];\n gl.uniformMatrix4fv(uniformLocations.uColorMatrix, false, matrix);\n gl.uniform4fv(uniformLocations.uConstants, constants);\n }\n\n toObject() {\n return {\n ...super.toObject(),\n matrix: [...this.matrix] as TMatColorMatrix,\n };\n }\n}\n\nclassRegistry.setClass(ColorMatrix);\n"],"names":["colorMatrixDefaultValues","matrix","colorsOnly","ColorMatrix","BaseFilter","getFragmentSource","fragmentSource","applyTo2d","options","imageData","data","m","i","length","r","g","b","a","sendUniformData","gl","uniformLocations","constants","uniformMatrix4fv","uColorMatrix","uniform4fv","uConstants","toObject","_objectSpread","_defineProperty","classRegistry","setClass"],"mappings":"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"}