@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.
- package/CHANGELOG.md +18 -1
- package/dist/index.js +229 -491
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/index.min.mjs +1 -1
- package/dist/index.min.mjs.map +1 -1
- package/dist/index.mjs +229 -491
- package/dist/index.mjs.map +1 -1
- package/dist/index.node.cjs +229 -491
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.mjs +229 -491
- package/dist/index.node.mjs.map +1 -1
- package/dist/package.json.min.mjs +1 -1
- package/dist/package.json.mjs +1 -1
- package/dist/src/canvas/Canvas.d.ts.map +1 -1
- package/dist/src/canvas/Canvas.min.mjs +1 -1
- package/dist/src/canvas/Canvas.min.mjs.map +1 -1
- package/dist/src/canvas/Canvas.mjs +8 -9
- package/dist/src/canvas/Canvas.mjs.map +1 -1
- package/dist/src/canvas/SelectableCanvas.d.ts +1 -1
- package/dist/src/canvas/SelectableCanvas.d.ts.map +1 -1
- package/dist/src/canvas/SelectableCanvas.min.mjs +1 -1
- package/dist/src/canvas/SelectableCanvas.min.mjs.map +1 -1
- package/dist/src/canvas/SelectableCanvas.mjs +1 -1
- package/dist/src/canvas/SelectableCanvas.mjs.map +1 -1
- package/dist/src/canvas/StaticCanvas.d.ts +4 -4
- package/dist/src/canvas/StaticCanvas.d.ts.map +1 -1
- package/dist/src/canvas/StaticCanvas.min.mjs +1 -1
- package/dist/src/canvas/StaticCanvas.min.mjs.map +1 -1
- package/dist/src/canvas/StaticCanvas.mjs +0 -13
- package/dist/src/canvas/StaticCanvas.mjs.map +1 -1
- package/dist/src/color/Color.d.ts +1 -0
- package/dist/src/color/Color.d.ts.map +1 -1
- package/dist/src/color/Color.min.mjs +1 -1
- package/dist/src/color/Color.min.mjs.map +1 -1
- package/dist/src/color/Color.mjs +3 -1
- package/dist/src/color/Color.mjs.map +1 -1
- package/dist/src/filters/BaseFilter.d.ts +16 -23
- package/dist/src/filters/BaseFilter.d.ts.map +1 -1
- package/dist/src/filters/BaseFilter.min.mjs +1 -1
- package/dist/src/filters/BaseFilter.min.mjs.map +1 -1
- package/dist/src/filters/BaseFilter.mjs +24 -41
- package/dist/src/filters/BaseFilter.mjs.map +1 -1
- package/dist/src/filters/BlendColor.d.ts +13 -24
- package/dist/src/filters/BlendColor.d.ts.map +1 -1
- package/dist/src/filters/BlendColor.min.mjs +1 -1
- package/dist/src/filters/BlendColor.min.mjs.map +1 -1
- package/dist/src/filters/BlendColor.mjs +1 -25
- package/dist/src/filters/BlendColor.mjs.map +1 -1
- package/dist/src/filters/BlendImage.d.ts +18 -19
- package/dist/src/filters/BlendImage.d.ts.map +1 -1
- package/dist/src/filters/BlendImage.min.mjs +1 -1
- package/dist/src/filters/BlendImage.min.mjs.map +1 -1
- package/dist/src/filters/BlendImage.mjs +13 -24
- package/dist/src/filters/BlendImage.mjs.map +1 -1
- package/dist/src/filters/Blur.d.ts +10 -12
- package/dist/src/filters/Blur.d.ts.map +1 -1
- package/dist/src/filters/Blur.min.mjs +1 -1
- package/dist/src/filters/Blur.min.mjs.map +1 -1
- package/dist/src/filters/Blur.mjs +5 -14
- package/dist/src/filters/Blur.mjs.map +1 -1
- package/dist/src/filters/Boilerplate.d.ts +11 -13
- package/dist/src/filters/Boilerplate.d.ts.map +1 -1
- package/dist/src/filters/Brightness.d.ts +10 -12
- package/dist/src/filters/Brightness.d.ts.map +1 -1
- package/dist/src/filters/Brightness.min.mjs +1 -1
- package/dist/src/filters/Brightness.min.mjs.map +1 -1
- package/dist/src/filters/Brightness.mjs +4 -16
- package/dist/src/filters/Brightness.mjs.map +1 -1
- package/dist/src/filters/Canvas2dFilterBackend.d.ts +1 -1
- package/dist/src/filters/Canvas2dFilterBackend.d.ts.map +1 -1
- package/dist/src/filters/Canvas2dFilterBackend.min.mjs.map +1 -1
- package/dist/src/filters/Canvas2dFilterBackend.mjs.map +1 -1
- package/dist/src/filters/ColorMatrix.d.ts +17 -15
- package/dist/src/filters/ColorMatrix.d.ts.map +1 -1
- package/dist/src/filters/ColorMatrix.min.mjs +1 -1
- package/dist/src/filters/ColorMatrix.min.mjs.map +1 -1
- package/dist/src/filters/ColorMatrix.mjs +7 -27
- package/dist/src/filters/ColorMatrix.mjs.map +1 -1
- package/dist/src/filters/ColorMatrixFilters.d.ts +63 -497
- package/dist/src/filters/ColorMatrixFilters.d.ts.map +1 -1
- package/dist/src/filters/ColorMatrixFilters.min.mjs +1 -1
- package/dist/src/filters/ColorMatrixFilters.min.mjs.map +1 -1
- package/dist/src/filters/ColorMatrixFilters.mjs +13 -8
- package/dist/src/filters/ColorMatrixFilters.mjs.map +1 -1
- package/dist/src/filters/Composed.d.ts +11 -10
- package/dist/src/filters/Composed.d.ts.map +1 -1
- package/dist/src/filters/Composed.min.mjs +1 -1
- package/dist/src/filters/Composed.min.mjs.map +1 -1
- package/dist/src/filters/Composed.mjs +7 -12
- package/dist/src/filters/Composed.mjs.map +1 -1
- package/dist/src/filters/Contrast.d.ts +10 -12
- package/dist/src/filters/Contrast.d.ts.map +1 -1
- package/dist/src/filters/Contrast.min.mjs +1 -1
- package/dist/src/filters/Contrast.min.mjs.map +1 -1
- package/dist/src/filters/Contrast.mjs +6 -17
- package/dist/src/filters/Contrast.mjs.map +1 -1
- package/dist/src/filters/Convolute.d.ts +11 -14
- package/dist/src/filters/Convolute.d.ts.map +1 -1
- package/dist/src/filters/Convolute.min.mjs +1 -1
- package/dist/src/filters/Convolute.min.mjs.map +1 -1
- package/dist/src/filters/Convolute.mjs +1 -15
- package/dist/src/filters/Convolute.mjs.map +1 -1
- package/dist/src/filters/Gamma.d.ts +17 -14
- package/dist/src/filters/Gamma.d.ts.map +1 -1
- package/dist/src/filters/Gamma.min.mjs +1 -1
- package/dist/src/filters/Gamma.min.mjs.map +1 -1
- package/dist/src/filters/Gamma.mjs +20 -24
- package/dist/src/filters/Gamma.mjs.map +1 -1
- package/dist/src/filters/Grayscale.d.ts +8 -11
- package/dist/src/filters/Grayscale.d.ts.map +1 -1
- package/dist/src/filters/Grayscale.min.mjs +1 -1
- package/dist/src/filters/Grayscale.min.mjs.map +1 -1
- package/dist/src/filters/Grayscale.mjs +2 -14
- package/dist/src/filters/Grayscale.mjs.map +1 -1
- package/dist/src/filters/HueRotation.d.ts +11 -5
- package/dist/src/filters/HueRotation.d.ts.map +1 -1
- package/dist/src/filters/HueRotation.min.mjs +1 -1
- package/dist/src/filters/HueRotation.min.mjs.map +1 -1
- package/dist/src/filters/HueRotation.mjs +10 -5
- package/dist/src/filters/HueRotation.mjs.map +1 -1
- package/dist/src/filters/Invert.d.ts +10 -13
- package/dist/src/filters/Invert.d.ts.map +1 -1
- package/dist/src/filters/Invert.min.mjs +1 -1
- package/dist/src/filters/Invert.min.mjs.map +1 -1
- package/dist/src/filters/Invert.mjs +2 -15
- package/dist/src/filters/Invert.mjs.map +1 -1
- package/dist/src/filters/Noise.d.ts +9 -20
- package/dist/src/filters/Noise.d.ts.map +1 -1
- package/dist/src/filters/Noise.min.mjs +1 -1
- package/dist/src/filters/Noise.min.mjs.map +1 -1
- package/dist/src/filters/Noise.mjs +4 -27
- package/dist/src/filters/Noise.mjs.map +1 -1
- package/dist/src/filters/Pixelate.d.ts +8 -12
- package/dist/src/filters/Pixelate.d.ts.map +1 -1
- package/dist/src/filters/Pixelate.min.mjs +1 -1
- package/dist/src/filters/Pixelate.min.mjs.map +1 -1
- package/dist/src/filters/Pixelate.mjs +2 -16
- package/dist/src/filters/Pixelate.mjs.map +1 -1
- package/dist/src/filters/RemoveColor.d.ts +12 -23
- package/dist/src/filters/RemoveColor.d.ts.map +1 -1
- package/dist/src/filters/RemoveColor.min.mjs +1 -1
- package/dist/src/filters/RemoveColor.min.mjs.map +1 -1
- package/dist/src/filters/RemoveColor.mjs +2 -25
- package/dist/src/filters/RemoveColor.mjs.map +1 -1
- package/dist/src/filters/Resize.d.ts +14 -30
- package/dist/src/filters/Resize.d.ts.map +1 -1
- package/dist/src/filters/Resize.min.mjs +1 -1
- package/dist/src/filters/Resize.min.mjs.map +1 -1
- package/dist/src/filters/Resize.mjs +3 -30
- package/dist/src/filters/Resize.mjs.map +1 -1
- package/dist/src/filters/Saturation.d.ts +9 -12
- package/dist/src/filters/Saturation.d.ts.map +1 -1
- package/dist/src/filters/Saturation.min.mjs +1 -1
- package/dist/src/filters/Saturation.min.mjs.map +1 -1
- package/dist/src/filters/Saturation.mjs +8 -20
- package/dist/src/filters/Saturation.mjs.map +1 -1
- package/dist/src/filters/Vibrance.d.ts +10 -13
- package/dist/src/filters/Vibrance.d.ts.map +1 -1
- package/dist/src/filters/Vibrance.min.mjs +1 -1
- package/dist/src/filters/Vibrance.min.mjs.map +1 -1
- package/dist/src/filters/Vibrance.mjs +6 -18
- package/dist/src/filters/Vibrance.mjs.map +1 -1
- package/dist/src/filters/WebGLFilterBackend.d.ts +1 -1
- package/dist/src/filters/WebGLFilterBackend.d.ts.map +1 -1
- package/dist/src/filters/WebGLFilterBackend.min.mjs.map +1 -1
- package/dist/src/filters/WebGLFilterBackend.mjs.map +1 -1
- package/dist/src/filters/shaders/blendImage.d.ts +1 -0
- package/dist/src/filters/shaders/blendImage.d.ts.map +1 -1
- package/dist/src/filters/shaders/blendImage.min.mjs +1 -1
- package/dist/src/filters/shaders/blendImage.min.mjs.map +1 -1
- package/dist/src/filters/shaders/blendImage.mjs +2 -1
- package/dist/src/filters/shaders/blendImage.mjs.map +1 -1
- package/dist/src/filters/typedefs.d.ts +22 -0
- package/dist/src/filters/typedefs.d.ts.map +1 -1
- package/dist/src/parser/elements_parser.d.ts +1 -1
- package/dist/src/parser/elements_parser.d.ts.map +1 -1
- package/dist/src/parser/elements_parser.min.mjs.map +1 -1
- package/dist/src/parser/elements_parser.mjs.map +1 -1
- package/dist/src/shapes/ActiveSelection.d.ts +1 -1
- package/dist/src/shapes/ActiveSelection.d.ts.map +1 -1
- package/dist/src/shapes/ActiveSelection.min.mjs +1 -1
- package/dist/src/shapes/ActiveSelection.min.mjs.map +1 -1
- package/dist/src/shapes/ActiveSelection.mjs +13 -10
- package/dist/src/shapes/ActiveSelection.mjs.map +1 -1
- package/dist/src/shapes/Group.d.ts +9 -0
- package/dist/src/shapes/Group.d.ts.map +1 -1
- package/dist/src/shapes/Group.min.mjs +1 -1
- package/dist/src/shapes/Group.min.mjs.map +1 -1
- package/dist/src/shapes/Group.mjs +10 -1
- package/dist/src/shapes/Group.mjs.map +1 -1
- package/dist/src/shapes/Image.d.ts +4 -4
- package/dist/src/shapes/Image.d.ts.map +1 -1
- package/dist/src/shapes/Image.min.mjs.map +1 -1
- package/dist/src/shapes/Image.mjs.map +1 -1
- package/dist/src/shapes/Object/InteractiveObject.d.ts +3 -0
- package/dist/src/shapes/Object/InteractiveObject.d.ts.map +1 -1
- package/dist/src/shapes/Object/InteractiveObject.min.mjs +1 -1
- package/dist/src/shapes/Object/InteractiveObject.min.mjs.map +1 -1
- package/dist/src/shapes/Object/InteractiveObject.mjs +3 -1
- package/dist/src/shapes/Object/InteractiveObject.mjs.map +1 -1
- package/dist/src/shapes/Object/Object.d.ts +1 -16
- package/dist/src/shapes/Object/Object.d.ts.map +1 -1
- package/dist/src/shapes/Object/Object.min.mjs +1 -1
- package/dist/src/shapes/Object/Object.min.mjs.map +1 -1
- package/dist/src/shapes/Object/Object.mjs +9 -10
- package/dist/src/shapes/Object/Object.mjs.map +1 -1
- package/dist/src/shapes/Object/StackedObject.d.ts +8 -15
- package/dist/src/shapes/Object/StackedObject.d.ts.map +1 -1
- package/dist/src/shapes/Object/StackedObject.min.mjs +1 -1
- package/dist/src/shapes/Object/StackedObject.min.mjs.map +1 -1
- package/dist/src/shapes/Object/StackedObject.mjs +11 -21
- package/dist/src/shapes/Object/StackedObject.mjs.map +1 -1
- package/dist/src/shapes/Path.d.ts +2 -2
- package/dist/src/shapes/Path.d.ts.map +1 -1
- package/dist/src/shapes/Path.min.mjs.map +1 -1
- package/dist/src/shapes/Path.mjs +2 -2
- package/dist/src/shapes/Path.mjs.map +1 -1
- package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +1 -1
- package/dist/src/shapes/Text/TextSVGExportMixin.d.ts.map +1 -1
- package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs.map +1 -1
- package/dist/src/shapes/Text/TextSVGExportMixin.mjs.map +1 -1
- package/dist/src/util/misc/objectEnlive.d.ts +2 -2
- package/dist/src/util/misc/objectEnlive.d.ts.map +1 -1
- package/dist/src/util/misc/objectEnlive.min.mjs.map +1 -1
- package/dist/src/util/misc/objectEnlive.mjs.map +1 -1
- package/package.json +2 -2
- package/src/canvas/Canvas.ts +6 -9
- package/src/canvas/SelectableCanvas.ts +2 -2
- package/src/canvas/StaticCanvas.ts +4 -18
- package/src/color/Color.ts +2 -1
- package/src/color/color.test.ts +6 -0
- package/src/filters/BaseFilter.ts +45 -51
- package/src/filters/BlendColor.ts +13 -35
- package/src/filters/BlendImage.ts +26 -40
- package/src/filters/Blur.ts +13 -20
- package/src/filters/Boilerplate.ts +13 -22
- package/src/filters/Brightness.ts +12 -21
- package/src/filters/Canvas2dFilterBackend.ts +1 -1
- package/src/filters/ColorMatrix.ts +29 -34
- package/src/filters/ColorMatrixFilters.ts +15 -9
- package/src/filters/Composed.ts +26 -16
- package/src/filters/Contrast.ts +15 -23
- package/src/filters/Convolute.ts +11 -23
- package/src/filters/Gamma.ts +32 -24
- package/src/filters/Grayscale.ts +8 -19
- package/src/filters/HueRotation.ts +21 -11
- package/src/filters/Invert.ts +11 -22
- package/src/filters/Noise.ts +11 -30
- package/src/filters/Pixelate.ts +9 -22
- package/src/filters/RemoveColor.ts +21 -35
- package/src/filters/Resize.ts +20 -44
- package/src/filters/Saturation.ts +16 -27
- package/src/filters/Vibrance.ts +14 -24
- package/src/filters/WebGLFilterBackend.ts +1 -1
- package/src/filters/shaders/blendImage.ts +12 -0
- package/src/filters/typedefs.ts +23 -0
- package/src/parser/elements_parser.ts +1 -1
- package/src/shapes/ActiveSelection.ts +8 -4
- package/src/shapes/Group.ts +16 -1
- package/src/shapes/Image.ts +8 -6
- package/src/shapes/Object/InteractiveObject.ts +3 -1
- package/src/shapes/Object/Object.ts +10 -35
- package/src/shapes/Object/StackedObject.ts +28 -44
- package/src/shapes/Path.ts +4 -4
- package/src/shapes/Text/TextSVGExportMixin.ts +1 -1
- package/src/util/misc/objectEnlive.ts +12 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HueRotation.mjs","sources":["../../../src/filters/HueRotation.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"HueRotation.mjs","sources":["../../../src/filters/HueRotation.ts"],"sourcesContent":["import { cos } from '../util/misc/cos';\nimport { sin } from '../util/misc/sin';\nimport { ColorMatrix } from './ColorMatrix';\nimport type { TWebGLPipelineState, T2DPipelineState } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\n\nexport type HueRotationOwnProps = {\n rotation: number;\n};\n\nexport const hueRotationDefaultValues: HueRotationOwnProps = {\n rotation: 0,\n};\n\n/**\n * HueRotation filter class\n * @example\n * const filter = new HueRotation({\n * rotation: -0.5\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class HueRotation extends ColorMatrix<\n 'HueRotation',\n HueRotationOwnProps\n> {\n /**\n * HueRotation value, from -1 to 1.\n */\n declare rotation: HueRotationOwnProps['rotation'];\n\n static type = 'HueRotation';\n\n static defaults = hueRotationDefaultValues;\n\n calculateMatrix() {\n const rad = this.rotation * Math.PI,\n cosine = cos(rad),\n sine = sin(rad),\n aThird = 1 / 3,\n aThirdSqtSin = Math.sqrt(aThird) * sine,\n OneMinusCos = 1 - cosine;\n this.matrix = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];\n this.matrix[0] = cosine + OneMinusCos / 3;\n this.matrix[1] = aThird * OneMinusCos - aThirdSqtSin;\n this.matrix[2] = aThird * OneMinusCos + aThirdSqtSin;\n this.matrix[5] = aThird * OneMinusCos + aThirdSqtSin;\n this.matrix[6] = cosine + aThird * OneMinusCos;\n this.matrix[7] = aThird * OneMinusCos - aThirdSqtSin;\n this.matrix[10] = aThird * OneMinusCos - aThirdSqtSin;\n this.matrix[11] = aThird * OneMinusCos + aThirdSqtSin;\n this.matrix[12] = cosine + aThird * OneMinusCos;\n }\n\n isNeutralState() {\n return this.rotation === 0;\n }\n\n applyTo(options: TWebGLPipelineState | T2DPipelineState) {\n this.calculateMatrix();\n super.applyTo(options);\n }\n\n //@ts-expect-error TS and classes with different methods\n toObject(): { type: 'HueRotation'; rotation: number } {\n return {\n type: this.type,\n rotation: this.rotation,\n };\n }\n}\n\nclassRegistry.setClass(HueRotation);\n"],"names":["hueRotationDefaultValues","rotation","HueRotation","ColorMatrix","calculateMatrix","rad","Math","PI","cosine","cos","sine","sin","aThird","aThirdSqtSin","sqrt","OneMinusCos","matrix","isNeutralState","applyTo","options","toObject","type","_defineProperty","classRegistry","setClass"],"mappings":";;;;;;AAUO,MAAMA,wBAA6C,GAAG;AAC3DC,EAAAA,QAAQ,EAAE,CAAA;AACZ,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,WAAW,SAASC,WAAW,CAG1C;AAUAC,EAAAA,eAAeA,GAAG;IAChB,MAAMC,GAAG,GAAG,IAAI,CAACJ,QAAQ,GAAGK,IAAI,CAACC,EAAE;AACjCC,MAAAA,MAAM,GAAGC,GAAG,CAACJ,GAAG,CAAC;AACjBK,MAAAA,IAAI,GAAGC,GAAG,CAACN,GAAG,CAAC;MACfO,MAAM,GAAG,CAAC,GAAG,CAAC;MACdC,YAAY,GAAGP,IAAI,CAACQ,IAAI,CAACF,MAAM,CAAC,GAAGF,IAAI;MACvCK,WAAW,GAAG,CAAC,GAAGP,MAAM,CAAA;AAC1B,IAAA,IAAI,CAACQ,MAAM,GAAG,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,CAAA;IAC1E,IAAI,CAACA,MAAM,CAAC,CAAC,CAAC,GAAGR,MAAM,GAAGO,WAAW,GAAG,CAAC,CAAA;IACzC,IAAI,CAACC,MAAM,CAAC,CAAC,CAAC,GAAGJ,MAAM,GAAGG,WAAW,GAAGF,YAAY,CAAA;IACpD,IAAI,CAACG,MAAM,CAAC,CAAC,CAAC,GAAGJ,MAAM,GAAGG,WAAW,GAAGF,YAAY,CAAA;IACpD,IAAI,CAACG,MAAM,CAAC,CAAC,CAAC,GAAGJ,MAAM,GAAGG,WAAW,GAAGF,YAAY,CAAA;IACpD,IAAI,CAACG,MAAM,CAAC,CAAC,CAAC,GAAGR,MAAM,GAAGI,MAAM,GAAGG,WAAW,CAAA;IAC9C,IAAI,CAACC,MAAM,CAAC,CAAC,CAAC,GAAGJ,MAAM,GAAGG,WAAW,GAAGF,YAAY,CAAA;IACpD,IAAI,CAACG,MAAM,CAAC,EAAE,CAAC,GAAGJ,MAAM,GAAGG,WAAW,GAAGF,YAAY,CAAA;IACrD,IAAI,CAACG,MAAM,CAAC,EAAE,CAAC,GAAGJ,MAAM,GAAGG,WAAW,GAAGF,YAAY,CAAA;IACrD,IAAI,CAACG,MAAM,CAAC,EAAE,CAAC,GAAGR,MAAM,GAAGI,MAAM,GAAGG,WAAW,CAAA;AACjD,GAAA;AAEAE,EAAAA,cAAcA,GAAG;AACf,IAAA,OAAO,IAAI,CAAChB,QAAQ,KAAK,CAAC,CAAA;AAC5B,GAAA;EAEAiB,OAAOA,CAACC,OAA+C,EAAE;IACvD,IAAI,CAACf,eAAe,EAAE,CAAA;AACtB,IAAA,KAAK,CAACc,OAAO,CAACC,OAAO,CAAC,CAAA;AACxB,GAAA;;AAEA;AACAC,EAAAA,QAAQA,GAA8C;IACpD,OAAO;MACLC,IAAI,EAAE,IAAI,CAACA,IAAI;MACfpB,QAAQ,EAAE,IAAI,CAACA,QAAAA;KAChB,CAAA;AACH,GAAA;AACF,CAAA;AA5CE;AACF;AACA;AAFEqB,eAAA,CAJWpB,WAAW,EAAA,MAAA,EASR,aAAa,CAAA,CAAA;AAAAoB,eAAA,CAThBpB,WAAW,EAAA,UAAA,EAWJF,wBAAwB,CAAA,CAAA;AAuC5CuB,aAAa,CAACC,QAAQ,CAACtB,WAAW,CAAC;;;;"}
|
|
@@ -1,28 +1,32 @@
|
|
|
1
|
-
import type { TClassProperties } from '../typedefs';
|
|
2
1
|
import { BaseFilter } from './BaseFilter';
|
|
3
2
|
import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
|
|
4
|
-
export
|
|
3
|
+
export type InvertOwnProps = {
|
|
4
|
+
alpha: boolean;
|
|
5
|
+
invert: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const invertDefaultValues: InvertOwnProps;
|
|
5
8
|
/**
|
|
6
9
|
* @example
|
|
7
10
|
* const filter = new Invert();
|
|
8
11
|
* object.filters.push(filter);
|
|
9
12
|
* object.applyFilters(canvas.renderAll.bind(canvas));
|
|
10
13
|
*/
|
|
11
|
-
export declare class Invert extends BaseFilter {
|
|
14
|
+
export declare class Invert extends BaseFilter<'Invert', InvertOwnProps> {
|
|
12
15
|
/**
|
|
13
16
|
* Invert also alpha.
|
|
14
17
|
* @param {Boolean} alpha
|
|
15
18
|
* @default
|
|
16
19
|
**/
|
|
17
|
-
alpha:
|
|
20
|
+
alpha: InvertOwnProps['alpha'];
|
|
18
21
|
/**
|
|
19
22
|
* Filter invert. if false, does nothing
|
|
20
23
|
* @param {Boolean} invert
|
|
21
24
|
* @default
|
|
22
25
|
*/
|
|
23
|
-
invert:
|
|
26
|
+
invert: InvertOwnProps['invert'];
|
|
24
27
|
static type: string;
|
|
25
|
-
static defaults:
|
|
28
|
+
static defaults: InvertOwnProps;
|
|
29
|
+
static uniformLocations: string[];
|
|
26
30
|
/**
|
|
27
31
|
* Apply the Invert operation to a Uint8Array representing the pixels of an image.
|
|
28
32
|
*
|
|
@@ -38,13 +42,6 @@ export declare class Invert extends BaseFilter {
|
|
|
38
42
|
* @param {Object} options
|
|
39
43
|
**/
|
|
40
44
|
isNeutralState(): boolean;
|
|
41
|
-
/**
|
|
42
|
-
* Return WebGL uniform locations for this filter's shader.
|
|
43
|
-
*
|
|
44
|
-
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
45
|
-
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
46
|
-
*/
|
|
47
|
-
getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
|
|
48
45
|
/**
|
|
49
46
|
* Send data from this filter to its shader program's uniforms.
|
|
50
47
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Invert.d.ts","sourceRoot":"","sources":["../../../src/filters/Invert.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Invert.d.ts","sourceRoot":"","sources":["../../../src/filters/Invert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAI7E,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,cAGjC,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,MAAO,SAAQ,UAAU,CAAC,QAAQ,EAAE,cAAc,CAAC;IAC9D;;;;QAII;IACI,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAEvC;;;;OAIG;IACK,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAEzC,MAAM,CAAC,IAAI,SAAY;IAEvB,MAAM,CAAC,QAAQ,iBAAuB;IAEtC,MAAM,CAAC,gBAAgB,WAAyB;IAEhD;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,gBAAgB;IAYnD,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAIrC;;;;;QAKI;IACJ,cAAc;IAId;;;;;OAKG;IACH,eAAe,CACb,EAAE,EAAE,qBAAqB,EACzB,gBAAgB,EAAE,wBAAwB;CAK7C"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineProperty as t}from"../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{BaseFilter as r}from"./BaseFilter.min.mjs";import{classRegistry as e}from"../ClassRegistry.min.mjs";import{fragmentSource as i}from"./shaders/invert.min.mjs";const a={alpha:!1,invert:!0
|
|
1
|
+
import{defineProperty as t}from"../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{BaseFilter as r}from"./BaseFilter.min.mjs";import{classRegistry as e}from"../ClassRegistry.min.mjs";import{fragmentSource as i}from"./shaders/invert.min.mjs";const a={alpha:!1,invert:!0};class s extends r{applyTo2d(t){let{imageData:{data:r}}=t;for(let t=0;t<r.length;t+=4)r[t]=255-r[t],r[t+1]=255-r[t+1],r[t+2]=255-r[t+2],this.alpha&&(r[t+3]=255-r[t+3])}getFragmentSource(){return i}isNeutralState(){return!this.invert}sendUniformData(t,r){t.uniform1i(r.uInvert,Number(this.invert)),t.uniform1i(r.uAlpha,Number(this.alpha))}}t(s,"type","Invert"),t(s,"defaults",a),t(s,"uniformLocations",["uInvert","uAlpha"]),e.setClass(s);export{s as Invert,a as invertDefaultValues};
|
|
2
2
|
//# sourceMappingURL=Invert.min.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Invert.min.mjs","sources":["../../../src/filters/Invert.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"Invert.min.mjs","sources":["../../../src/filters/Invert.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/invert';\n\nexport type InvertOwnProps = {\n alpha: boolean;\n invert: boolean;\n};\n\nexport const invertDefaultValues: InvertOwnProps = {\n alpha: false,\n invert: true,\n};\n\n/**\n * @example\n * const filter = new Invert();\n * object.filters.push(filter);\n * object.applyFilters(canvas.renderAll.bind(canvas));\n */\nexport class Invert extends BaseFilter<'Invert', InvertOwnProps> {\n /**\n * Invert also alpha.\n * @param {Boolean} alpha\n * @default\n **/\n declare alpha: InvertOwnProps['alpha'];\n\n /**\n * Filter invert. if false, does nothing\n * @param {Boolean} invert\n * @default\n */\n declare invert: InvertOwnProps['invert'];\n\n static type = 'Invert';\n\n static defaults = invertDefaultValues;\n\n static uniformLocations = ['uInvert', 'uAlpha'];\n\n /**\n * Apply the Invert 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({ imageData: { data } }: T2DPipelineState) {\n for (let i = 0; i < data.length; i += 4) {\n data[i] = 255 - data[i];\n data[i + 1] = 255 - data[i + 1];\n data[i + 2] = 255 - data[i + 2];\n\n if (this.alpha) {\n data[i + 3] = 255 - data[i + 3];\n }\n }\n }\n\n protected getFragmentSource(): string {\n return fragmentSource;\n }\n\n /**\n * Invert filter isNeutralState implementation\n * Used only in image applyFilters to discard filters that will not have an effect\n * on the image\n * @param {Object} options\n **/\n isNeutralState() {\n return !this.invert;\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 gl.uniform1i(uniformLocations.uInvert, Number(this.invert));\n gl.uniform1i(uniformLocations.uAlpha, Number(this.alpha));\n }\n}\n\nclassRegistry.setClass(Invert);\n"],"names":["invertDefaultValues","alpha","invert","Invert","BaseFilter","applyTo2d","_ref","imageData","data","i","length","this","getFragmentSource","fragmentSource","isNeutralState","sendUniformData","gl","uniformLocations","uniform1i","uInvert","Number","uAlpha","_defineProperty","classRegistry","setClass"],"mappings":"uPAUO,MAAMA,EAAsC,CACjDC,OAAO,EACPC,QAAQ,GASH,MAAMC,UAAeC,EA2B1BC,SAAAA,CAASC,GAA4C,IAAzCC,WAAWC,KAAEA,IAA0BF,EACjD,IAAK,IAAIG,EAAI,EAAGA,EAAID,EAAKE,OAAQD,GAAK,EACpCD,EAAKC,GAAK,IAAMD,EAAKC,GACrBD,EAAKC,EAAI,GAAK,IAAMD,EAAKC,EAAI,GAC7BD,EAAKC,EAAI,GAAK,IAAMD,EAAKC,EAAI,GAEzBE,KAAKV,QACPO,EAAKC,EAAI,GAAK,IAAMD,EAAKC,EAAI,GAGnC,CAEUG,iBAAAA,GACR,OAAOC,CACT,CAQAC,cAAAA,GACE,OAAQH,KAAKT,MACf,CAQAa,eAAAA,CACEC,EACAC,GAEAD,EAAGE,UAAUD,EAAiBE,QAASC,OAAOT,KAAKT,SACnDc,EAAGE,UAAUD,EAAiBI,OAAQD,OAAOT,KAAKV,OACpD,EAzDAqB,EARWnB,EAAM,OAeH,UAAQmB,EAfXnB,EAAM,WAiBCH,GAAmBsB,EAjB1BnB,EAAM,mBAmBS,CAAC,UAAW,WAiDxCoB,EAAcC,SAASrB"}
|
|
@@ -5,8 +5,7 @@ import { fragmentSource } from './shaders/invert.mjs';
|
|
|
5
5
|
|
|
6
6
|
const invertDefaultValues = {
|
|
7
7
|
alpha: false,
|
|
8
|
-
invert: true
|
|
9
|
-
mainParameter: 'invert'
|
|
8
|
+
invert: true
|
|
10
9
|
};
|
|
11
10
|
|
|
12
11
|
/**
|
|
@@ -51,19 +50,6 @@ class Invert extends BaseFilter {
|
|
|
51
50
|
return !this.invert;
|
|
52
51
|
}
|
|
53
52
|
|
|
54
|
-
/**
|
|
55
|
-
* Return WebGL uniform locations for this filter's shader.
|
|
56
|
-
*
|
|
57
|
-
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
58
|
-
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
59
|
-
*/
|
|
60
|
-
getUniformLocations(gl, program) {
|
|
61
|
-
return {
|
|
62
|
-
uInvert: gl.getUniformLocation(program, 'uInvert'),
|
|
63
|
-
uAlpha: gl.getUniformLocation(program, 'uAlpha')
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
|
|
67
53
|
/**
|
|
68
54
|
* Send data from this filter to its shader program's uniforms.
|
|
69
55
|
*
|
|
@@ -87,6 +73,7 @@ class Invert extends BaseFilter {
|
|
|
87
73
|
*/
|
|
88
74
|
_defineProperty(Invert, "type", 'Invert');
|
|
89
75
|
_defineProperty(Invert, "defaults", invertDefaultValues);
|
|
76
|
+
_defineProperty(Invert, "uniformLocations", ['uInvert', 'uAlpha']);
|
|
90
77
|
classRegistry.setClass(Invert);
|
|
91
78
|
|
|
92
79
|
export { Invert, invertDefaultValues };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Invert.mjs","sources":["../../../src/filters/Invert.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"Invert.mjs","sources":["../../../src/filters/Invert.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/invert';\n\nexport type InvertOwnProps = {\n alpha: boolean;\n invert: boolean;\n};\n\nexport const invertDefaultValues: InvertOwnProps = {\n alpha: false,\n invert: true,\n};\n\n/**\n * @example\n * const filter = new Invert();\n * object.filters.push(filter);\n * object.applyFilters(canvas.renderAll.bind(canvas));\n */\nexport class Invert extends BaseFilter<'Invert', InvertOwnProps> {\n /**\n * Invert also alpha.\n * @param {Boolean} alpha\n * @default\n **/\n declare alpha: InvertOwnProps['alpha'];\n\n /**\n * Filter invert. if false, does nothing\n * @param {Boolean} invert\n * @default\n */\n declare invert: InvertOwnProps['invert'];\n\n static type = 'Invert';\n\n static defaults = invertDefaultValues;\n\n static uniformLocations = ['uInvert', 'uAlpha'];\n\n /**\n * Apply the Invert 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({ imageData: { data } }: T2DPipelineState) {\n for (let i = 0; i < data.length; i += 4) {\n data[i] = 255 - data[i];\n data[i + 1] = 255 - data[i + 1];\n data[i + 2] = 255 - data[i + 2];\n\n if (this.alpha) {\n data[i + 3] = 255 - data[i + 3];\n }\n }\n }\n\n protected getFragmentSource(): string {\n return fragmentSource;\n }\n\n /**\n * Invert filter isNeutralState implementation\n * Used only in image applyFilters to discard filters that will not have an effect\n * on the image\n * @param {Object} options\n **/\n isNeutralState() {\n return !this.invert;\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 gl.uniform1i(uniformLocations.uInvert, Number(this.invert));\n gl.uniform1i(uniformLocations.uAlpha, Number(this.alpha));\n }\n}\n\nclassRegistry.setClass(Invert);\n"],"names":["invertDefaultValues","alpha","invert","Invert","BaseFilter","applyTo2d","_ref","imageData","data","i","length","getFragmentSource","fragmentSource","isNeutralState","sendUniformData","gl","uniformLocations","uniform1i","uInvert","Number","uAlpha","_defineProperty","classRegistry","setClass"],"mappings":";;;;;AAUO,MAAMA,mBAAmC,GAAG;AACjDC,EAAAA,KAAK,EAAE,KAAK;AACZC,EAAAA,MAAM,EAAE,IAAA;AACV,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,MAAM,SAASC,UAAU,CAA2B;AAqB/D;AACF;AACA;AACA;AACA;AACA;EACEC,SAASA,CAAAC,IAAA,EAA4C;IAAA,IAA3C;AAAEC,MAAAA,SAAS,EAAE;AAAEC,QAAAA,IAAAA;AAAK,OAAA;AAAoB,KAAC,GAAAF,IAAA,CAAA;AACjD,IAAA,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,IAAI,CAACE,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;MACvCD,IAAI,CAACC,CAAC,CAAC,GAAG,GAAG,GAAGD,IAAI,CAACC,CAAC,CAAC,CAAA;AACvBD,MAAAA,IAAI,CAACC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAGD,IAAI,CAACC,CAAC,GAAG,CAAC,CAAC,CAAA;AAC/BD,MAAAA,IAAI,CAACC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAGD,IAAI,CAACC,CAAC,GAAG,CAAC,CAAC,CAAA;MAE/B,IAAI,IAAI,CAACR,KAAK,EAAE;AACdO,QAAAA,IAAI,CAACC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAGD,IAAI,CAACC,CAAC,GAAG,CAAC,CAAC,CAAA;AACjC,OAAA;AACF,KAAA;AACF,GAAA;AAEUE,EAAAA,iBAAiBA,GAAW;AACpC,IAAA,OAAOC,cAAc,CAAA;AACvB,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,cAAcA,GAAG;IACf,OAAO,CAAC,IAAI,CAACX,MAAM,CAAA;AACrB,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEY,EAAAA,eAAeA,CACbC,EAAyB,EACzBC,gBAA0C,EAC1C;AACAD,IAAAA,EAAE,CAACE,SAAS,CAACD,gBAAgB,CAACE,OAAO,EAAEC,MAAM,CAAC,IAAI,CAACjB,MAAM,CAAC,CAAC,CAAA;AAC3Da,IAAAA,EAAE,CAACE,SAAS,CAACD,gBAAgB,CAACI,MAAM,EAAED,MAAM,CAAC,IAAI,CAAClB,KAAK,CAAC,CAAC,CAAA;AAC3D,GAAA;AACF,CAAA;AAjEE;AACF;AACA;AACA;AACA;AAGE;AACF;AACA;AACA;AACA;AAJEoB,eAAA,CARWlB,MAAM,EAAA,MAAA,EAeH,QAAQ,CAAA,CAAA;AAAAkB,eAAA,CAfXlB,MAAM,EAAA,UAAA,EAiBCH,mBAAmB,CAAA,CAAA;AAAAqB,eAAA,CAjB1BlB,MAAM,EAAA,kBAAA,EAmBS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA,CAAA;AAiDjDmB,aAAa,CAACC,QAAQ,CAACpB,MAAM,CAAC;;;;"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import type { TClassProperties } from '../typedefs';
|
|
2
1
|
import { BaseFilter } from './BaseFilter';
|
|
3
2
|
import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
|
|
4
|
-
export
|
|
3
|
+
export type NoiseOwnProps = {
|
|
4
|
+
noise: number;
|
|
5
|
+
};
|
|
6
|
+
export declare const noiseDefaultValues: NoiseOwnProps;
|
|
5
7
|
/**
|
|
6
8
|
* Noise filter class
|
|
7
9
|
* @example
|
|
@@ -12,15 +14,16 @@ export declare const noiseDefaultValues: Partial<TClassProperties<Noise>>;
|
|
|
12
14
|
* object.applyFilters();
|
|
13
15
|
* canvas.renderAll();
|
|
14
16
|
*/
|
|
15
|
-
export declare class Noise extends BaseFilter {
|
|
17
|
+
export declare class Noise extends BaseFilter<'Noise', NoiseOwnProps> {
|
|
16
18
|
/**
|
|
17
19
|
* Noise value, from
|
|
18
20
|
* @param {Number} noise
|
|
19
21
|
* @default
|
|
20
22
|
*/
|
|
21
|
-
noise:
|
|
23
|
+
noise: NoiseOwnProps['noise'];
|
|
22
24
|
static type: string;
|
|
23
|
-
static defaults:
|
|
25
|
+
static defaults: NoiseOwnProps;
|
|
26
|
+
static uniformLocations: string[];
|
|
24
27
|
getFragmentSource(): string;
|
|
25
28
|
/**
|
|
26
29
|
* Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.
|
|
@@ -29,13 +32,6 @@ export declare class Noise extends BaseFilter {
|
|
|
29
32
|
* @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
|
|
30
33
|
*/
|
|
31
34
|
applyTo2d({ imageData: { data } }: T2DPipelineState): void;
|
|
32
|
-
/**
|
|
33
|
-
* Return WebGL uniform locations for this filter's shader.
|
|
34
|
-
*
|
|
35
|
-
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
36
|
-
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
37
|
-
*/
|
|
38
|
-
getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
|
|
39
35
|
/**
|
|
40
36
|
* Send data from this filter to its shader program's uniforms.
|
|
41
37
|
*
|
|
@@ -43,13 +39,6 @@ export declare class Noise extends BaseFilter {
|
|
|
43
39
|
* @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
|
|
44
40
|
*/
|
|
45
41
|
sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
|
|
46
|
-
|
|
47
|
-
* Returns object representation of an instance
|
|
48
|
-
* @return {Object} Object representation of an instance
|
|
49
|
-
*/
|
|
50
|
-
toObject(): {
|
|
51
|
-
noise: number;
|
|
52
|
-
type: string;
|
|
53
|
-
};
|
|
42
|
+
isNeutralState(): boolean;
|
|
54
43
|
}
|
|
55
44
|
//# sourceMappingURL=Noise.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Noise.d.ts","sourceRoot":"","sources":["../../../src/filters/Noise.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Noise.d.ts","sourceRoot":"","sources":["../../../src/filters/Noise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAI7E,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,aAEhC,CAAC;AAEF;;;;;;;;;GASG;AACH,qBAAa,KAAM,SAAQ,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC;IAC3D;;;;OAIG;IACK,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,SAAW;IAEtB,MAAM,CAAC,QAAQ,gBAAsB;IAErC,MAAM,CAAC,gBAAgB,WAAuB;IAE9C,iBAAiB;IAIjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,gBAAgB;IAUnD;;;;;OAKG;IACH,eAAe,CACb,EAAE,EAAE,qBAAqB,EACzB,gBAAgB,EAAE,wBAAwB;IAM5C,cAAc;CAGf"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineProperty as e
|
|
1
|
+
import{defineProperty as e}from"../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{BaseFilter as s}from"./BaseFilter.min.mjs";import{classRegistry as t}from"../ClassRegistry.min.mjs";import{fragmentSource as o}from"./shaders/noise.min.mjs";const i={noise:0};class r extends s{getFragmentSource(){return o}applyTo2d(e){let{imageData:{data:s}}=e;const t=this.noise;for(let e=0;e<s.length;e+=4){const o=(.5-Math.random())*t;s[e]+=o,s[e+1]+=o,s[e+2]+=o}}sendUniformData(e,s){e.uniform1f(s.uNoise,this.noise/255),e.uniform1f(s.uSeed,Math.random())}isNeutralState(){return 0===this.noise}}e(r,"type","Noise"),e(r,"defaults",i),e(r,"uniformLocations",["uNoise","uSeed"]),t.setClass(r);export{r as Noise,i as noiseDefaultValues};
|
|
2
2
|
//# sourceMappingURL=Noise.min.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Noise.min.mjs","sources":["../../../src/filters/Noise.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"Noise.min.mjs","sources":["../../../src/filters/Noise.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/noise';\n\nexport type NoiseOwnProps = {\n noise: number;\n};\n\nexport const noiseDefaultValues: NoiseOwnProps = {\n noise: 0,\n};\n\n/**\n * Noise filter class\n * @example\n * const filter = new Noise({\n * noise: 700\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\nexport class Noise extends BaseFilter<'Noise', NoiseOwnProps> {\n /**\n * Noise value, from\n * @param {Number} noise\n * @default\n */\n declare noise: NoiseOwnProps['noise'];\n\n static type = 'Noise';\n\n static defaults = noiseDefaultValues;\n\n static uniformLocations = ['uNoise', 'uSeed'];\n\n getFragmentSource() {\n return fragmentSource;\n }\n\n /**\n * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n const noise = this.noise;\n for (let i = 0; i < data.length; i += 4) {\n const rand = (0.5 - Math.random()) * noise;\n data[i] += rand;\n data[i + 1] += rand;\n data[i + 2] += rand;\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 gl.uniform1f(uniformLocations.uNoise, this.noise / 255);\n gl.uniform1f(uniformLocations.uSeed, Math.random());\n }\n\n isNeutralState() {\n return this.noise === 0;\n }\n}\n\nclassRegistry.setClass(Noise);\n"],"names":["noiseDefaultValues","noise","Noise","BaseFilter","getFragmentSource","fragmentSource","applyTo2d","_ref","imageData","data","this","i","length","rand","Math","random","sendUniformData","gl","uniformLocations","uniform1f","uNoise","uSeed","isNeutralState","_defineProperty","classRegistry","setClass"],"mappings":"sPASO,MAAMA,EAAoC,CAC/CC,MAAO,GAaF,MAAMC,UAAcC,EAczBC,iBAAAA,GACE,OAAOC,CACT,CAQAC,SAAAA,CAASC,GAA4C,IAAzCC,WAAWC,KAAEA,IAA0BF,EACjD,MAAMN,EAAQS,KAAKT,MACnB,IAAK,IAAIU,EAAI,EAAGA,EAAIF,EAAKG,OAAQD,GAAK,EAAG,CACvC,MAAME,GAAQ,GAAMC,KAAKC,UAAYd,EACrCQ,EAAKE,IAAME,EACXJ,EAAKE,EAAI,IAAME,EACfJ,EAAKE,EAAI,IAAME,CACjB,CACF,CAQAG,eAAAA,CACEC,EACAC,GAEAD,EAAGE,UAAUD,EAAiBE,OAAQV,KAAKT,MAAQ,KACnDgB,EAAGE,UAAUD,EAAiBG,MAAOP,KAAKC,SAC5C,CAEAO,cAAAA,GACE,OAAsB,IAAfZ,KAAKT,KACd,EAjDAsB,EADWrB,EAAK,OAQF,SAAOqB,EARVrB,EAAK,WAUEF,GAAkBuB,EAVzBrB,EAAK,mBAYU,CAAC,SAAU,UAyCvCsB,EAAcC,SAASvB"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { defineProperty as _defineProperty
|
|
1
|
+
import { defineProperty as _defineProperty } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
|
|
2
2
|
import { BaseFilter } from './BaseFilter.mjs';
|
|
3
3
|
import { classRegistry } from '../ClassRegistry.mjs';
|
|
4
4
|
import { fragmentSource } from './shaders/noise.mjs';
|
|
5
5
|
|
|
6
6
|
const noiseDefaultValues = {
|
|
7
|
-
mainParameter: 'noise',
|
|
8
7
|
noise: 0
|
|
9
8
|
};
|
|
10
9
|
|
|
@@ -35,9 +34,6 @@ class Noise extends BaseFilter {
|
|
|
35
34
|
data
|
|
36
35
|
}
|
|
37
36
|
} = _ref;
|
|
38
|
-
if (this.noise === 0) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
37
|
const noise = this.noise;
|
|
42
38
|
for (let i = 0; i < data.length; i += 4) {
|
|
43
39
|
const rand = (0.5 - Math.random()) * noise;
|
|
@@ -47,19 +43,6 @@ class Noise extends BaseFilter {
|
|
|
47
43
|
}
|
|
48
44
|
}
|
|
49
45
|
|
|
50
|
-
/**
|
|
51
|
-
* Return WebGL uniform locations for this filter's shader.
|
|
52
|
-
*
|
|
53
|
-
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
54
|
-
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
55
|
-
*/
|
|
56
|
-
getUniformLocations(gl, program) {
|
|
57
|
-
return {
|
|
58
|
-
uNoise: gl.getUniformLocation(program, 'uNoise'),
|
|
59
|
-
uSeed: gl.getUniformLocation(program, 'uSeed')
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
|
|
63
46
|
/**
|
|
64
47
|
* Send data from this filter to its shader program's uniforms.
|
|
65
48
|
*
|
|
@@ -70,15 +53,8 @@ class Noise extends BaseFilter {
|
|
|
70
53
|
gl.uniform1f(uniformLocations.uNoise, this.noise / 255);
|
|
71
54
|
gl.uniform1f(uniformLocations.uSeed, Math.random());
|
|
72
55
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
* Returns object representation of an instance
|
|
76
|
-
* @return {Object} Object representation of an instance
|
|
77
|
-
*/
|
|
78
|
-
toObject() {
|
|
79
|
-
return _objectSpread2(_objectSpread2({}, super.toObject()), {}, {
|
|
80
|
-
noise: this.noise
|
|
81
|
-
});
|
|
56
|
+
isNeutralState() {
|
|
57
|
+
return this.noise === 0;
|
|
82
58
|
}
|
|
83
59
|
}
|
|
84
60
|
/**
|
|
@@ -88,6 +64,7 @@ class Noise extends BaseFilter {
|
|
|
88
64
|
*/
|
|
89
65
|
_defineProperty(Noise, "type", 'Noise');
|
|
90
66
|
_defineProperty(Noise, "defaults", noiseDefaultValues);
|
|
67
|
+
_defineProperty(Noise, "uniformLocations", ['uNoise', 'uSeed']);
|
|
91
68
|
classRegistry.setClass(Noise);
|
|
92
69
|
|
|
93
70
|
export { Noise, noiseDefaultValues };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Noise.mjs","sources":["../../../src/filters/Noise.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"Noise.mjs","sources":["../../../src/filters/Noise.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/noise';\n\nexport type NoiseOwnProps = {\n noise: number;\n};\n\nexport const noiseDefaultValues: NoiseOwnProps = {\n noise: 0,\n};\n\n/**\n * Noise filter class\n * @example\n * const filter = new Noise({\n * noise: 700\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\nexport class Noise extends BaseFilter<'Noise', NoiseOwnProps> {\n /**\n * Noise value, from\n * @param {Number} noise\n * @default\n */\n declare noise: NoiseOwnProps['noise'];\n\n static type = 'Noise';\n\n static defaults = noiseDefaultValues;\n\n static uniformLocations = ['uNoise', 'uSeed'];\n\n getFragmentSource() {\n return fragmentSource;\n }\n\n /**\n * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n const noise = this.noise;\n for (let i = 0; i < data.length; i += 4) {\n const rand = (0.5 - Math.random()) * noise;\n data[i] += rand;\n data[i + 1] += rand;\n data[i + 2] += rand;\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 gl.uniform1f(uniformLocations.uNoise, this.noise / 255);\n gl.uniform1f(uniformLocations.uSeed, Math.random());\n }\n\n isNeutralState() {\n return this.noise === 0;\n }\n}\n\nclassRegistry.setClass(Noise);\n"],"names":["noiseDefaultValues","noise","Noise","BaseFilter","getFragmentSource","fragmentSource","applyTo2d","_ref","imageData","data","i","length","rand","Math","random","sendUniformData","gl","uniformLocations","uniform1f","uNoise","uSeed","isNeutralState","_defineProperty","classRegistry","setClass"],"mappings":";;;;;AASO,MAAMA,kBAAiC,GAAG;AAC/CC,EAAAA,KAAK,EAAE,CAAA;AACT,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,KAAK,SAASC,UAAU,CAAyB;AAc5DC,EAAAA,iBAAiBA,GAAG;AAClB,IAAA,OAAOC,cAAc,CAAA;AACvB,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACEC,SAASA,CAAAC,IAAA,EAA4C;IAAA,IAA3C;AAAEC,MAAAA,SAAS,EAAE;AAAEC,QAAAA,IAAAA;AAAK,OAAA;AAAoB,KAAC,GAAAF,IAAA,CAAA;AACjD,IAAA,MAAMN,KAAK,GAAG,IAAI,CAACA,KAAK,CAAA;AACxB,IAAA,KAAK,IAAIS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,IAAI,CAACE,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;MACvC,MAAME,IAAI,GAAG,CAAC,GAAG,GAAGC,IAAI,CAACC,MAAM,EAAE,IAAIb,KAAK,CAAA;AAC1CQ,MAAAA,IAAI,CAACC,CAAC,CAAC,IAAIE,IAAI,CAAA;AACfH,MAAAA,IAAI,CAACC,CAAC,GAAG,CAAC,CAAC,IAAIE,IAAI,CAAA;AACnBH,MAAAA,IAAI,CAACC,CAAC,GAAG,CAAC,CAAC,IAAIE,IAAI,CAAA;AACrB,KAAA;AACF,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEG,EAAAA,eAAeA,CACbC,EAAyB,EACzBC,gBAA0C,EAC1C;AACAD,IAAAA,EAAE,CAACE,SAAS,CAACD,gBAAgB,CAACE,MAAM,EAAE,IAAI,CAAClB,KAAK,GAAG,GAAG,CAAC,CAAA;AACvDe,IAAAA,EAAE,CAACE,SAAS,CAACD,gBAAgB,CAACG,KAAK,EAAEP,IAAI,CAACC,MAAM,EAAE,CAAC,CAAA;AACrD,GAAA;AAEAO,EAAAA,cAAcA,GAAG;AACf,IAAA,OAAO,IAAI,CAACpB,KAAK,KAAK,CAAC,CAAA;AACzB,GAAA;AACF,CAAA;AAlDE;AACF;AACA;AACA;AACA;AAJEqB,eAAA,CADWpB,KAAK,EAAA,MAAA,EAQF,OAAO,CAAA,CAAA;AAAAoB,eAAA,CARVpB,KAAK,EAAA,UAAA,EAUEF,kBAAkB,CAAA,CAAA;AAAAsB,eAAA,CAVzBpB,KAAK,EAAA,kBAAA,EAYU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA,CAAA;AAyC/CqB,aAAa,CAACC,QAAQ,CAACtB,KAAK,CAAC;;;;"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import type { TClassProperties } from '../typedefs';
|
|
2
1
|
import { BaseFilter } from './BaseFilter';
|
|
3
2
|
import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
|
|
4
|
-
export
|
|
3
|
+
export type PixelateOwnProps = {
|
|
4
|
+
blocksize: number;
|
|
5
|
+
};
|
|
6
|
+
export declare const pixelateDefaultValues: PixelateOwnProps;
|
|
5
7
|
/**
|
|
6
8
|
* Pixelate filter class
|
|
7
9
|
* @example
|
|
@@ -11,10 +13,11 @@ export declare const pixelateDefaultValues: Partial<TClassProperties<Pixelate>>;
|
|
|
11
13
|
* object.filters.push(filter);
|
|
12
14
|
* object.applyFilters();
|
|
13
15
|
*/
|
|
14
|
-
export declare class Pixelate extends BaseFilter {
|
|
15
|
-
blocksize:
|
|
16
|
+
export declare class Pixelate extends BaseFilter<'Pixelate', PixelateOwnProps> {
|
|
17
|
+
blocksize: PixelateOwnProps['blocksize'];
|
|
16
18
|
static type: string;
|
|
17
|
-
static defaults:
|
|
19
|
+
static defaults: PixelateOwnProps;
|
|
20
|
+
static uniformLocations: string[];
|
|
18
21
|
/**
|
|
19
22
|
* Apply the Pixelate operation to a Uint8ClampedArray representing the pixels of an image.
|
|
20
23
|
*
|
|
@@ -27,13 +30,6 @@ export declare class Pixelate extends BaseFilter {
|
|
|
27
30
|
**/
|
|
28
31
|
isNeutralState(): boolean;
|
|
29
32
|
protected getFragmentSource(): string;
|
|
30
|
-
/**
|
|
31
|
-
* Return WebGL uniform locations for this filter's shader.
|
|
32
|
-
*
|
|
33
|
-
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
34
|
-
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
35
|
-
*/
|
|
36
|
-
getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
|
|
37
33
|
/**
|
|
38
34
|
* Send data from this filter to its shader program's uniforms.
|
|
39
35
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pixelate.d.ts","sourceRoot":"","sources":["../../../src/filters/Pixelate.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Pixelate.d.ts","sourceRoot":"","sources":["../../../src/filters/Pixelate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAI7E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,gBAEnC,CAAC;AAEF;;;;;;;;GAQG;AACH,qBAAa,QAAS,SAAQ,UAAU,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAC5D,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEjD,MAAM,CAAC,IAAI,SAAc;IAEzB,MAAM,CAAC,QAAQ,mBAAyB;IAExC,MAAM,CAAC,gBAAgB,WAAkB;IAEzC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB;IAsBlE;;QAEI;IACJ,cAAc;IAId,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAIrC;;;;;OAKG;IACH,eAAe,CACb,EAAE,EAAE,qBAAqB,EACzB,gBAAgB,EAAE,wBAAwB;CAI7C"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineProperty as e}from"../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{BaseFilter as t}from"./BaseFilter.min.mjs";import{classRegistry as i}from"../ClassRegistry.min.mjs";import{fragmentSource as
|
|
1
|
+
import{defineProperty as e}from"../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{BaseFilter as t}from"./BaseFilter.min.mjs";import{classRegistry as i}from"../ClassRegistry.min.mjs";import{fragmentSource as s}from"./shaders/pixelate.min.mjs";const o={blocksize:4};class r extends t{applyTo2d(e){let{imageData:{data:t,width:i,height:s}}=e;for(let e=0;e<s;e+=this.blocksize)for(let o=0;o<i;o+=this.blocksize){const r=4*e*i+4*o,l=t[r],a=t[r+1],m=t[r+2],n=t[r+3];for(let r=e;r<Math.min(e+this.blocksize,s);r++)for(let e=o;e<Math.min(o+this.blocksize,i);e++){const s=4*r*i+4*e;t[s]=l,t[s+1]=a,t[s+2]=m,t[s+3]=n}}}isNeutralState(){return 1===this.blocksize}getFragmentSource(){return s}sendUniformData(e,t){e.uniform1f(t.uBlocksize,this.blocksize)}}e(r,"type","Pixelate"),e(r,"defaults",o),e(r,"uniformLocations",["uBlockSize"]),i.setClass(r);export{r as Pixelate,o as pixelateDefaultValues};
|
|
2
2
|
//# sourceMappingURL=Pixelate.min.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pixelate.min.mjs","sources":["../../../src/filters/Pixelate.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"Pixelate.min.mjs","sources":["../../../src/filters/Pixelate.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/pixelate';\n\nexport type PixelateOwnProps = {\n blocksize: number;\n};\n\nexport const pixelateDefaultValues: PixelateOwnProps = {\n blocksize: 4,\n};\n\n/**\n * Pixelate filter class\n * @example\n * const filter = new Pixelate({\n * blocksize: 8\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class Pixelate extends BaseFilter<'Pixelate', PixelateOwnProps> {\n declare blocksize: PixelateOwnProps['blocksize'];\n\n static type = 'Pixelate';\n\n static defaults = pixelateDefaultValues;\n\n static uniformLocations = ['uBlockSize'];\n\n /**\n * Apply the Pixelate operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d({ imageData: { data, width, height } }: T2DPipelineState) {\n for (let i = 0; i < height; i += this.blocksize) {\n for (let j = 0; j < width; j += this.blocksize) {\n const index = i * 4 * width + j * 4;\n const r = data[index];\n const g = data[index + 1];\n const b = data[index + 2];\n const a = data[index + 3];\n\n for (let _i = i; _i < Math.min(i + this.blocksize, height); _i++) {\n for (let _j = j; _j < Math.min(j + this.blocksize, width); _j++) {\n const index = _i * 4 * width + _j * 4;\n data[index] = r;\n data[index + 1] = g;\n data[index + 2] = b;\n data[index + 3] = a;\n }\n }\n }\n }\n }\n\n /**\n * Indicate when the filter is not gonna apply changes to the image\n **/\n isNeutralState() {\n return this.blocksize === 1;\n }\n\n protected getFragmentSource(): string {\n return fragmentSource;\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 gl.uniform1f(uniformLocations.uBlocksize, this.blocksize);\n }\n}\n\nclassRegistry.setClass(Pixelate);\n"],"names":["pixelateDefaultValues","blocksize","Pixelate","BaseFilter","applyTo2d","_ref","imageData","data","width","height","i","this","j","index","r","g","b","a","_i","Math","min","_j","isNeutralState","getFragmentSource","fragmentSource","sendUniformData","gl","uniformLocations","uniform1f","uBlocksize","_defineProperty","classRegistry","setClass"],"mappings":"yPASO,MAAMA,EAA0C,CACrDC,UAAW,GAYN,MAAMC,UAAiBC,EAe5BC,SAAAA,CAASC,GAA2D,IAAxDC,WAAWC,KAAEA,EAAIC,MAAEA,EAAKC,OAAEA,IAA4BJ,EAChE,IAAK,IAAIK,EAAI,EAAGA,EAAID,EAAQC,GAAKC,KAAKV,UACpC,IAAK,IAAIW,EAAI,EAAGA,EAAIJ,EAAOI,GAAKD,KAAKV,UAAW,CAC9C,MAAMY,EAAY,EAAJH,EAAQF,EAAY,EAAJI,EACxBE,EAAIP,EAAKM,GACTE,EAAIR,EAAKM,EAAQ,GACjBG,EAAIT,EAAKM,EAAQ,GACjBI,EAAIV,EAAKM,EAAQ,GAEvB,IAAK,IAAIK,EAAKR,EAAGQ,EAAKC,KAAKC,IAAIV,EAAIC,KAAKV,UAAWQ,GAASS,IAC1D,IAAK,IAAIG,EAAKT,EAAGS,EAAKF,KAAKC,IAAIR,EAAID,KAAKV,UAAWO,GAAQa,IAAM,CAC/D,MAAMR,EAAa,EAALK,EAASV,EAAa,EAALa,EAC/Bd,EAAKM,GAASC,EACdP,EAAKM,EAAQ,GAAKE,EAClBR,EAAKM,EAAQ,GAAKG,EAClBT,EAAKM,EAAQ,GAAKI,CACpB,CAEJ,CAEJ,CAKAK,cAAAA,GACE,OAA0B,IAAnBX,KAAKV,SACd,CAEUsB,iBAAAA,GACR,OAAOC,CACT,CAQAC,eAAAA,CACEC,EACAC,GAEAD,EAAGE,UAAUD,EAAiBE,WAAYlB,KAAKV,UACjD,EACD6B,EA5DY5B,EAAQ,OAGL,YAAU4B,EAHb5B,EAAQ,WAKDF,GAAqB8B,EAL5B5B,EAOe,mBAAA,CAAC,eAuD7B6B,EAAcC,SAAS9B"}
|
|
@@ -4,8 +4,7 @@ import { classRegistry } from '../ClassRegistry.mjs';
|
|
|
4
4
|
import { fragmentSource } from './shaders/pixelate.mjs';
|
|
5
5
|
|
|
6
6
|
const pixelateDefaultValues = {
|
|
7
|
-
blocksize: 4
|
|
8
|
-
mainParameter: 'blocksize'
|
|
7
|
+
blocksize: 4
|
|
9
8
|
};
|
|
10
9
|
|
|
11
10
|
/**
|
|
@@ -62,20 +61,6 @@ class Pixelate extends BaseFilter {
|
|
|
62
61
|
return fragmentSource;
|
|
63
62
|
}
|
|
64
63
|
|
|
65
|
-
/**
|
|
66
|
-
* Return WebGL uniform locations for this filter's shader.
|
|
67
|
-
*
|
|
68
|
-
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
69
|
-
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
70
|
-
*/
|
|
71
|
-
getUniformLocations(gl, program) {
|
|
72
|
-
return {
|
|
73
|
-
uBlocksize: gl.getUniformLocation(program, 'uBlocksize'),
|
|
74
|
-
uStepW: gl.getUniformLocation(program, 'uStepW'),
|
|
75
|
-
uStepH: gl.getUniformLocation(program, 'uStepH')
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
|
|
79
64
|
/**
|
|
80
65
|
* Send data from this filter to its shader program's uniforms.
|
|
81
66
|
*
|
|
@@ -88,6 +73,7 @@ class Pixelate extends BaseFilter {
|
|
|
88
73
|
}
|
|
89
74
|
_defineProperty(Pixelate, "type", 'Pixelate');
|
|
90
75
|
_defineProperty(Pixelate, "defaults", pixelateDefaultValues);
|
|
76
|
+
_defineProperty(Pixelate, "uniformLocations", ['uBlockSize']);
|
|
91
77
|
classRegistry.setClass(Pixelate);
|
|
92
78
|
|
|
93
79
|
export { Pixelate, pixelateDefaultValues };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pixelate.mjs","sources":["../../../src/filters/Pixelate.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"Pixelate.mjs","sources":["../../../src/filters/Pixelate.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/pixelate';\n\nexport type PixelateOwnProps = {\n blocksize: number;\n};\n\nexport const pixelateDefaultValues: PixelateOwnProps = {\n blocksize: 4,\n};\n\n/**\n * Pixelate filter class\n * @example\n * const filter = new Pixelate({\n * blocksize: 8\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class Pixelate extends BaseFilter<'Pixelate', PixelateOwnProps> {\n declare blocksize: PixelateOwnProps['blocksize'];\n\n static type = 'Pixelate';\n\n static defaults = pixelateDefaultValues;\n\n static uniformLocations = ['uBlockSize'];\n\n /**\n * Apply the Pixelate operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d({ imageData: { data, width, height } }: T2DPipelineState) {\n for (let i = 0; i < height; i += this.blocksize) {\n for (let j = 0; j < width; j += this.blocksize) {\n const index = i * 4 * width + j * 4;\n const r = data[index];\n const g = data[index + 1];\n const b = data[index + 2];\n const a = data[index + 3];\n\n for (let _i = i; _i < Math.min(i + this.blocksize, height); _i++) {\n for (let _j = j; _j < Math.min(j + this.blocksize, width); _j++) {\n const index = _i * 4 * width + _j * 4;\n data[index] = r;\n data[index + 1] = g;\n data[index + 2] = b;\n data[index + 3] = a;\n }\n }\n }\n }\n }\n\n /**\n * Indicate when the filter is not gonna apply changes to the image\n **/\n isNeutralState() {\n return this.blocksize === 1;\n }\n\n protected getFragmentSource(): string {\n return fragmentSource;\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 gl.uniform1f(uniformLocations.uBlocksize, this.blocksize);\n }\n}\n\nclassRegistry.setClass(Pixelate);\n"],"names":["pixelateDefaultValues","blocksize","Pixelate","BaseFilter","applyTo2d","_ref","imageData","data","width","height","i","j","index","r","g","b","a","_i","Math","min","_j","isNeutralState","getFragmentSource","fragmentSource","sendUniformData","gl","uniformLocations","uniform1f","uBlocksize","_defineProperty","classRegistry","setClass"],"mappings":";;;;;AASO,MAAMA,qBAAuC,GAAG;AACrDC,EAAAA,SAAS,EAAE,CAAA;AACb,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,QAAQ,SAASC,UAAU,CAA+B;AASrE;AACF;AACA;AACA;AACA;AACA;EACEC,SAASA,CAAAC,IAAA,EAA2D;IAAA,IAA1D;AAAEC,MAAAA,SAAS,EAAE;QAAEC,IAAI;QAAEC,KAAK;AAAEC,QAAAA,MAAAA;AAAO,OAAA;AAAoB,KAAC,GAAAJ,IAAA,CAAA;AAChE,IAAA,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,MAAM,EAAEC,CAAC,IAAI,IAAI,CAACT,SAAS,EAAE;AAC/C,MAAA,KAAK,IAAIU,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,KAAK,EAAEG,CAAC,IAAI,IAAI,CAACV,SAAS,EAAE;QAC9C,MAAMW,KAAK,GAAGF,CAAC,GAAG,CAAC,GAAGF,KAAK,GAAGG,CAAC,GAAG,CAAC,CAAA;AACnC,QAAA,MAAME,CAAC,GAAGN,IAAI,CAACK,KAAK,CAAC,CAAA;AACrB,QAAA,MAAME,CAAC,GAAGP,IAAI,CAACK,KAAK,GAAG,CAAC,CAAC,CAAA;AACzB,QAAA,MAAMG,CAAC,GAAGR,IAAI,CAACK,KAAK,GAAG,CAAC,CAAC,CAAA;AACzB,QAAA,MAAMI,CAAC,GAAGT,IAAI,CAACK,KAAK,GAAG,CAAC,CAAC,CAAA;QAEzB,KAAK,IAAIK,EAAE,GAAGP,CAAC,EAAEO,EAAE,GAAGC,IAAI,CAACC,GAAG,CAACT,CAAC,GAAG,IAAI,CAACT,SAAS,EAAEQ,MAAM,CAAC,EAAEQ,EAAE,EAAE,EAAE;UAChE,KAAK,IAAIG,EAAE,GAAGT,CAAC,EAAES,EAAE,GAAGF,IAAI,CAACC,GAAG,CAACR,CAAC,GAAG,IAAI,CAACV,SAAS,EAAEO,KAAK,CAAC,EAAEY,EAAE,EAAE,EAAE;YAC/D,MAAMR,KAAK,GAAGK,EAAE,GAAG,CAAC,GAAGT,KAAK,GAAGY,EAAE,GAAG,CAAC,CAAA;AACrCb,YAAAA,IAAI,CAACK,KAAK,CAAC,GAAGC,CAAC,CAAA;AACfN,YAAAA,IAAI,CAACK,KAAK,GAAG,CAAC,CAAC,GAAGE,CAAC,CAAA;AACnBP,YAAAA,IAAI,CAACK,KAAK,GAAG,CAAC,CAAC,GAAGG,CAAC,CAAA;AACnBR,YAAAA,IAAI,CAACK,KAAK,GAAG,CAAC,CAAC,GAAGI,CAAC,CAAA;AACrB,WAAA;AACF,SAAA;AACF,OAAA;AACF,KAAA;AACF,GAAA;;AAEA;AACF;AACA;AACEK,EAAAA,cAAcA,GAAG;AACf,IAAA,OAAO,IAAI,CAACpB,SAAS,KAAK,CAAC,CAAA;AAC7B,GAAA;AAEUqB,EAAAA,iBAAiBA,GAAW;AACpC,IAAA,OAAOC,cAAc,CAAA;AACvB,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,eAAeA,CACbC,EAAyB,EACzBC,gBAA0C,EAC1C;IACAD,EAAE,CAACE,SAAS,CAACD,gBAAgB,CAACE,UAAU,EAAE,IAAI,CAAC3B,SAAS,CAAC,CAAA;AAC3D,GAAA;AACF,CAAA;AAAC4B,eAAA,CA5DY3B,QAAQ,EAAA,MAAA,EAGL,UAAU,CAAA,CAAA;AAAA2B,eAAA,CAHb3B,QAAQ,EAAA,UAAA,EAKDF,qBAAqB,CAAA,CAAA;AAAA6B,eAAA,CAL5B3B,QAAQ,EAOO,kBAAA,EAAA,CAAC,YAAY,CAAC,CAAA,CAAA;AAuD1C4B,aAAa,CAACC,QAAQ,CAAC7B,QAAQ,CAAC;;;;"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import type { TClassProperties } from '../typedefs';
|
|
2
1
|
import { BaseFilter } from './BaseFilter';
|
|
3
2
|
import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
|
|
4
|
-
export
|
|
3
|
+
export type RemoveColorOwnProps = {
|
|
4
|
+
color: string;
|
|
5
|
+
distance: number;
|
|
6
|
+
useAlpha: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare const removeColorDefaultValues: RemoveColorOwnProps;
|
|
5
9
|
/**
|
|
6
10
|
* Remove white filter class
|
|
7
11
|
* @example
|
|
@@ -12,38 +16,32 @@ export declare const removeColorDefaultValues: Partial<TClassProperties<RemoveCo
|
|
|
12
16
|
* object.applyFilters();
|
|
13
17
|
* canvas.renderAll();
|
|
14
18
|
*/
|
|
15
|
-
export declare class RemoveColor extends BaseFilter {
|
|
19
|
+
export declare class RemoveColor extends BaseFilter<'RemoveColor', RemoveColorOwnProps> {
|
|
16
20
|
/**
|
|
17
21
|
* Color to remove, in any format understood by {@link Color}.
|
|
18
22
|
* @param {String} type
|
|
19
23
|
* @default
|
|
20
24
|
*/
|
|
21
|
-
color:
|
|
25
|
+
color: RemoveColorOwnProps['color'];
|
|
22
26
|
/**
|
|
23
27
|
* distance to actual color, as value up or down from each r,g,b
|
|
24
28
|
* between 0 and 1
|
|
25
29
|
**/
|
|
26
|
-
distance:
|
|
30
|
+
distance: RemoveColorOwnProps['distance'];
|
|
27
31
|
/**
|
|
28
32
|
* For color to remove inside distance, use alpha channel for a smoother deletion
|
|
29
33
|
* NOT IMPLEMENTED YET
|
|
30
34
|
**/
|
|
31
|
-
useAlpha:
|
|
35
|
+
useAlpha: RemoveColorOwnProps['useAlpha'];
|
|
32
36
|
static type: string;
|
|
33
|
-
static defaults:
|
|
37
|
+
static defaults: RemoveColorOwnProps;
|
|
38
|
+
static uniformLocations: string[];
|
|
34
39
|
getFragmentSource(): string;
|
|
35
40
|
/**
|
|
36
41
|
* Applies filter to canvas element
|
|
37
42
|
* @param {Object} canvasEl Canvas element to apply filter to
|
|
38
43
|
*/
|
|
39
44
|
applyTo2d({ imageData: { data } }: T2DPipelineState): void;
|
|
40
|
-
/**
|
|
41
|
-
* Return WebGL uniform locations for this filter's shader.
|
|
42
|
-
*
|
|
43
|
-
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
44
|
-
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
45
|
-
*/
|
|
46
|
-
getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
|
|
47
45
|
/**
|
|
48
46
|
* Send data from this filter to its shader program's uniforms.
|
|
49
47
|
*
|
|
@@ -51,14 +49,5 @@ export declare class RemoveColor extends BaseFilter {
|
|
|
51
49
|
* @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
|
|
52
50
|
*/
|
|
53
51
|
sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
|
|
54
|
-
/**
|
|
55
|
-
* Returns object representation of an instance
|
|
56
|
-
* @return {Object} Object representation of an instance
|
|
57
|
-
*/
|
|
58
|
-
toObject(): {
|
|
59
|
-
color: string;
|
|
60
|
-
distance: number;
|
|
61
|
-
type: string;
|
|
62
|
-
};
|
|
63
52
|
}
|
|
64
53
|
//# sourceMappingURL=RemoveColor.d.ts.map
|