@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,7 +1,9 @@
|
|
|
1
|
-
import type { TClassProperties } from '../typedefs';
|
|
2
1
|
import { BaseFilter } from './BaseFilter';
|
|
3
2
|
import type { TWebGLPipelineState, T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
|
|
4
|
-
|
|
3
|
+
type BlurOwnProps = {
|
|
4
|
+
blur: number;
|
|
5
|
+
};
|
|
6
|
+
export declare const blurDefaultValues: BlurOwnProps;
|
|
5
7
|
/**
|
|
6
8
|
* Blur filter class
|
|
7
9
|
* @example
|
|
@@ -12,7 +14,7 @@ export declare const blurDefaultValues: Partial<TClassProperties<Blur>>;
|
|
|
12
14
|
* object.applyFilters();
|
|
13
15
|
* canvas.renderAll();
|
|
14
16
|
*/
|
|
15
|
-
export declare class Blur extends BaseFilter {
|
|
17
|
+
export declare class Blur extends BaseFilter<'Blur', BlurOwnProps> {
|
|
16
18
|
/**
|
|
17
19
|
* blur value, in percentage of image dimensions.
|
|
18
20
|
* specific to keep the image blur constant at different resolutions
|
|
@@ -20,22 +22,16 @@ export declare class Blur extends BaseFilter {
|
|
|
20
22
|
* @type Number
|
|
21
23
|
* @default
|
|
22
24
|
*/
|
|
23
|
-
blur:
|
|
25
|
+
blur: BlurOwnProps['blur'];
|
|
24
26
|
horizontal: boolean;
|
|
25
27
|
aspectRatio: number;
|
|
26
28
|
static type: string;
|
|
27
|
-
static defaults:
|
|
29
|
+
static defaults: BlurOwnProps;
|
|
30
|
+
static uniformLocations: string[];
|
|
28
31
|
getFragmentSource(): string;
|
|
29
32
|
applyTo(options: TWebGLPipelineState | T2DPipelineState): void;
|
|
30
33
|
applyTo2d(options: T2DPipelineState): void;
|
|
31
34
|
simpleBlur({ ctx, imageData, filterBackend: { resources }, }: T2DPipelineState): ImageData;
|
|
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,10 +39,12 @@ export declare class Blur 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;
|
|
42
|
+
isNeutralState(): boolean;
|
|
46
43
|
/**
|
|
47
44
|
* choose right value of image percentage to blur with
|
|
48
45
|
* @returns {Array} a numeric array with delta values
|
|
49
46
|
*/
|
|
50
47
|
chooseRightDelta(): number[];
|
|
51
48
|
}
|
|
49
|
+
export {};
|
|
52
50
|
//# sourceMappingURL=Blur.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Blur.d.ts","sourceRoot":"","sources":["../../../src/filters/Blur.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Blur.d.ts","sourceRoot":"","sources":["../../../src/filters/Blur.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAKpB,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,YAE/B,CAAC;AAEF;;;;;;;;;GASG;AACH,qBAAa,IAAK,SAAQ,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC;IACxD;;;;;;OAMG;IACK,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAE3B,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IAE5B,MAAM,CAAC,IAAI,SAAU;IAErB,MAAM,CAAC,QAAQ,eAAqB;IAEpC,MAAM,CAAC,gBAAgB,WAAc;IAErC,iBAAiB,IAAI,MAAM;IAI3B,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,gBAAgB;IAkBvD,SAAS,CAAC,OAAO,EAAE,gBAAgB;IAInC,UAAU,CAAC,EACT,GAAG,EACH,SAAS,EACT,aAAa,EAAE,EAAE,SAAS,EAAE,GAC7B,EAAE,gBAAgB;IAiDnB;;;;;OAKG;IACH,eAAe,CACb,EAAE,EAAE,qBAAqB,EACzB,gBAAgB,EAAE,wBAAwB;IAM5C,cAAc;IAId;;;OAGG;IACH,gBAAgB;CAsBjB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineProperty as t}from"../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{createCanvasElement as e}from"../util/misc/dom.min.mjs";import{BaseFilter as a}from"./BaseFilter.min.mjs";import{isWebGLPipelineState as r}from"./utils.min.mjs";import{classRegistry as i}from"../ClassRegistry.min.mjs";import{fragmentSource as s}from"./shaders/blur.min.mjs";const o={blur:0
|
|
1
|
+
import{defineProperty as t}from"../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{createCanvasElement as e}from"../util/misc/dom.min.mjs";import{BaseFilter as a}from"./BaseFilter.min.mjs";import{isWebGLPipelineState as r}from"./utils.min.mjs";import{classRegistry as i}from"../ClassRegistry.min.mjs";import{fragmentSource as s}from"./shaders/blur.min.mjs";const o={blur:0};class h extends a{getFragmentSource(){return s}applyTo(t){r(t)?(this.aspectRatio=t.sourceWidth/t.sourceHeight,t.passes++,this._setupFrameBuffer(t),this.horizontal=!0,this.applyToWebGL(t),this._swapTextures(t),this._setupFrameBuffer(t),this.horizontal=!1,this.applyToWebGL(t),this._swapTextures(t)):this.applyTo2d(t)}applyTo2d(t){t.imageData=this.simpleBlur(t)}simpleBlur(t){let{ctx:a,imageData:r,filterBackend:{resources:i}}=t;const{width:s,height:o}=r;i.blurLayer1||(i.blurLayer1=e(),i.blurLayer2=e());const h=i.blurLayer1,l=i.blurLayer2;h.width===s&&h.height===o||(l.width=h.width=s,l.height=h.height=o);const m=h.getContext("2d"),p=l.getContext("2d"),u=15,n=.06*this.blur*.5;let c,g,d,b;for(m.putImageData(r,0,0),p.clearRect(0,0,s,o),b=-15;b<=u;b++)c=(Math.random()-.5)/4,g=b/u,d=n*g*s+c,p.globalAlpha=1-Math.abs(g),p.drawImage(h,d,c),m.drawImage(l,0,0),p.globalAlpha=1,p.clearRect(0,0,l.width,l.height);for(b=-15;b<=u;b++)c=(Math.random()-.5)/4,g=b/u,d=n*g*o+c,p.globalAlpha=1-Math.abs(g),p.drawImage(h,c,d),m.drawImage(l,0,0),p.globalAlpha=1,p.clearRect(0,0,l.width,l.height);a.drawImage(h,0,0);const f=a.getImageData(0,0,h.width,h.height);return m.globalAlpha=1,m.clearRect(0,0,h.width,h.height),f}sendUniformData(t,e){const a=this.chooseRightDelta();t.uniform2fv(e.delta,a)}isNeutralState(){return 0===this.blur}chooseRightDelta(){let t=1;const e=[0,0];this.horizontal?this.aspectRatio>1&&(t=1/this.aspectRatio):this.aspectRatio<1&&(t=this.aspectRatio);const a=t*this.blur*.12;return this.horizontal?e[0]=a:e[1]=a,e}}t(h,"type","Blur"),t(h,"defaults",o),t(h,"uniformLocations",["uDelta"]),i.setClass(h);export{h as Blur,o as blurDefaultValues};
|
|
2
2
|
//# sourceMappingURL=Blur.min.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Blur.min.mjs","sources":["../../../src/filters/Blur.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"Blur.min.mjs","sources":["../../../src/filters/Blur.ts"],"sourcesContent":["import { createCanvasElement } from '../util/misc/dom';\nimport { BaseFilter } from './BaseFilter';\nimport type {\n TWebGLPipelineState,\n T2DPipelineState,\n TWebGLUniformLocationMap,\n} from './typedefs';\nimport { isWebGLPipelineState } from './utils';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/blur';\n\ntype BlurOwnProps = {\n blur: number;\n};\n\nexport const blurDefaultValues: BlurOwnProps = {\n blur: 0,\n};\n\n/**\n * Blur filter class\n * @example\n * const filter = new Blur({\n * blur: 0.5\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\nexport class Blur extends BaseFilter<'Blur', BlurOwnProps> {\n /**\n * blur value, in percentage of image dimensions.\n * specific to keep the image blur constant at different resolutions\n * range between 0 and 1.\n * @type Number\n * @default\n */\n declare blur: BlurOwnProps['blur'];\n\n declare horizontal: boolean;\n declare aspectRatio: number;\n\n static type = 'Blur';\n\n static defaults = blurDefaultValues;\n\n static uniformLocations = ['uDelta'];\n\n getFragmentSource(): string {\n return fragmentSource;\n }\n\n applyTo(options: TWebGLPipelineState | T2DPipelineState) {\n if (isWebGLPipelineState(options)) {\n // this aspectRatio is used to give the same blur to vertical and horizontal\n this.aspectRatio = options.sourceWidth / options.sourceHeight;\n options.passes++;\n this._setupFrameBuffer(options);\n this.horizontal = true;\n this.applyToWebGL(options);\n this._swapTextures(options);\n this._setupFrameBuffer(options);\n this.horizontal = false;\n this.applyToWebGL(options);\n this._swapTextures(options);\n } else {\n this.applyTo2d(options);\n }\n }\n\n applyTo2d(options: T2DPipelineState) {\n options.imageData = this.simpleBlur(options);\n }\n\n simpleBlur({\n ctx,\n imageData,\n filterBackend: { resources },\n }: T2DPipelineState) {\n const { width, height } = imageData;\n if (!resources.blurLayer1) {\n resources.blurLayer1 = createCanvasElement();\n resources.blurLayer2 = createCanvasElement();\n }\n const canvas1 = resources.blurLayer1!;\n const canvas2 = resources.blurLayer2!;\n if (canvas1.width !== width || canvas1.height !== height) {\n canvas2.width = canvas1.width = width;\n canvas2.height = canvas1.height = height;\n }\n const ctx1 = canvas1.getContext('2d')!,\n ctx2 = canvas2.getContext('2d')!,\n nSamples = 15,\n blur = this.blur * 0.06 * 0.5;\n let random, percent, j, i;\n\n // load first canvas\n ctx1.putImageData(imageData, 0, 0);\n ctx2.clearRect(0, 0, width, height);\n\n for (i = -nSamples; i <= nSamples; i++) {\n random = (Math.random() - 0.5) / 4;\n percent = i / nSamples;\n j = blur * percent * width + random;\n ctx2.globalAlpha = 1 - Math.abs(percent);\n ctx2.drawImage(canvas1, j, random);\n ctx1.drawImage(canvas2, 0, 0);\n ctx2.globalAlpha = 1;\n ctx2.clearRect(0, 0, canvas2.width, canvas2.height);\n }\n for (i = -nSamples; i <= nSamples; i++) {\n random = (Math.random() - 0.5) / 4;\n percent = i / nSamples;\n j = blur * percent * height + random;\n ctx2.globalAlpha = 1 - Math.abs(percent);\n ctx2.drawImage(canvas1, random, j);\n ctx1.drawImage(canvas2, 0, 0);\n ctx2.globalAlpha = 1;\n ctx2.clearRect(0, 0, canvas2.width, canvas2.height);\n }\n ctx.drawImage(canvas1, 0, 0);\n const newImageData = ctx.getImageData(0, 0, canvas1.width, canvas1.height);\n ctx1.globalAlpha = 1;\n ctx1.clearRect(0, 0, canvas1.width, canvas1.height);\n return newImageData;\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 delta = this.chooseRightDelta();\n gl.uniform2fv(uniformLocations.delta, delta);\n }\n\n isNeutralState() {\n return this.blur === 0;\n }\n\n /**\n * choose right value of image percentage to blur with\n * @returns {Array} a numeric array with delta values\n */\n chooseRightDelta() {\n let blurScale = 1;\n const delta = [0, 0];\n if (this.horizontal) {\n if (this.aspectRatio > 1) {\n // image is wide, i want to shrink radius horizontal\n blurScale = 1 / this.aspectRatio;\n }\n } else {\n if (this.aspectRatio < 1) {\n // image is tall, i want to shrink radius vertical\n blurScale = this.aspectRatio;\n }\n }\n const blur = blurScale * this.blur * 0.12;\n if (this.horizontal) {\n delta[0] = blur;\n } else {\n delta[1] = blur;\n }\n return delta;\n }\n}\n\nclassRegistry.setClass(Blur);\n"],"names":["blurDefaultValues","blur","Blur","BaseFilter","getFragmentSource","fragmentSource","applyTo","options","isWebGLPipelineState","this","aspectRatio","sourceWidth","sourceHeight","passes","_setupFrameBuffer","horizontal","applyToWebGL","_swapTextures","applyTo2d","imageData","simpleBlur","_ref","ctx","filterBackend","resources","width","height","blurLayer1","createCanvasElement","blurLayer2","canvas1","canvas2","ctx1","getContext","ctx2","nSamples","random","percent","j","i","putImageData","clearRect","Math","globalAlpha","abs","drawImage","newImageData","getImageData","sendUniformData","gl","uniformLocations","delta","chooseRightDelta","uniform2fv","isNeutralState","blurScale","_defineProperty","classRegistry","setClass"],"mappings":"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"}
|
|
@@ -6,8 +6,7 @@ import { classRegistry } from '../ClassRegistry.mjs';
|
|
|
6
6
|
import { fragmentSource } from './shaders/blur.mjs';
|
|
7
7
|
|
|
8
8
|
const blurDefaultValues = {
|
|
9
|
-
blur: 0
|
|
10
|
-
mainParameter: 'blur'
|
|
9
|
+
blur: 0
|
|
11
10
|
};
|
|
12
11
|
|
|
13
12
|
/**
|
|
@@ -102,18 +101,6 @@ class Blur extends BaseFilter {
|
|
|
102
101
|
return newImageData;
|
|
103
102
|
}
|
|
104
103
|
|
|
105
|
-
/**
|
|
106
|
-
* Return WebGL uniform locations for this filter's shader.
|
|
107
|
-
*
|
|
108
|
-
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
109
|
-
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
110
|
-
*/
|
|
111
|
-
getUniformLocations(gl, program) {
|
|
112
|
-
return {
|
|
113
|
-
delta: gl.getUniformLocation(program, 'uDelta')
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
|
|
117
104
|
/**
|
|
118
105
|
* Send data from this filter to its shader program's uniforms.
|
|
119
106
|
*
|
|
@@ -124,6 +111,9 @@ class Blur extends BaseFilter {
|
|
|
124
111
|
const delta = this.chooseRightDelta();
|
|
125
112
|
gl.uniform2fv(uniformLocations.delta, delta);
|
|
126
113
|
}
|
|
114
|
+
isNeutralState() {
|
|
115
|
+
return this.blur === 0;
|
|
116
|
+
}
|
|
127
117
|
|
|
128
118
|
/**
|
|
129
119
|
* choose right value of image percentage to blur with
|
|
@@ -161,6 +151,7 @@ class Blur extends BaseFilter {
|
|
|
161
151
|
*/
|
|
162
152
|
_defineProperty(Blur, "type", 'Blur');
|
|
163
153
|
_defineProperty(Blur, "defaults", blurDefaultValues);
|
|
154
|
+
_defineProperty(Blur, "uniformLocations", ['uDelta']);
|
|
164
155
|
classRegistry.setClass(Blur);
|
|
165
156
|
|
|
166
157
|
export { Blur, blurDefaultValues };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Blur.mjs","sources":["../../../src/filters/Blur.ts"],"sourcesContent":["import type { TClassProperties } from '../typedefs';\nimport { createCanvasElement } from '../util/misc/dom';\nimport { BaseFilter } from './BaseFilter';\nimport type {\n TWebGLPipelineState,\n T2DPipelineState,\n TWebGLUniformLocationMap,\n} from './typedefs';\nimport { isWebGLPipelineState } from './utils';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/blur';\n\nexport const blurDefaultValues: Partial<TClassProperties<Blur>> = {\n blur: 0,\n mainParameter: 'blur',\n};\n\n/**\n * Blur filter class\n * @example\n * const filter = new Blur({\n * blur: 0.5\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\nexport class Blur extends BaseFilter {\n /**\n * blur value, in percentage of image dimensions.\n * specific to keep the image blur constant at different resolutions\n * range between 0 and 1.\n * @type Number\n * @default\n */\n declare blur: number;\n\n declare horizontal: boolean;\n declare aspectRatio: number;\n\n static type = 'Blur';\n\n static defaults = blurDefaultValues;\n\n getFragmentSource(): string {\n return fragmentSource;\n }\n\n applyTo(options: TWebGLPipelineState | T2DPipelineState) {\n if (isWebGLPipelineState(options)) {\n // this aspectRatio is used to give the same blur to vertical and horizontal\n this.aspectRatio = options.sourceWidth / options.sourceHeight;\n options.passes++;\n this._setupFrameBuffer(options);\n this.horizontal = true;\n this.applyToWebGL(options);\n this._swapTextures(options);\n this._setupFrameBuffer(options);\n this.horizontal = false;\n this.applyToWebGL(options);\n this._swapTextures(options);\n } else {\n this.applyTo2d(options);\n }\n }\n\n applyTo2d(options: T2DPipelineState) {\n options.imageData = this.simpleBlur(options);\n }\n\n simpleBlur({\n ctx,\n imageData,\n filterBackend: { resources },\n }: T2DPipelineState) {\n const { width, height } = imageData;\n if (!resources.blurLayer1) {\n resources.blurLayer1 = createCanvasElement();\n resources.blurLayer2 = createCanvasElement();\n }\n const canvas1 = resources.blurLayer1!;\n const canvas2 = resources.blurLayer2!;\n if (canvas1.width !== width || canvas1.height !== height) {\n canvas2.width = canvas1.width = width;\n canvas2.height = canvas1.height = height;\n }\n const ctx1 = canvas1.getContext('2d')!,\n ctx2 = canvas2.getContext('2d')!,\n nSamples = 15,\n blur = this.blur * 0.06 * 0.5;\n let random, percent, j, i;\n\n // load first canvas\n ctx1.putImageData(imageData, 0, 0);\n ctx2.clearRect(0, 0, width, height);\n\n for (i = -nSamples; i <= nSamples; i++) {\n random = (Math.random() - 0.5) / 4;\n percent = i / nSamples;\n j = blur * percent * width + random;\n ctx2.globalAlpha = 1 - Math.abs(percent);\n ctx2.drawImage(canvas1, j, random);\n ctx1.drawImage(canvas2, 0, 0);\n ctx2.globalAlpha = 1;\n ctx2.clearRect(0, 0, canvas2.width, canvas2.height);\n }\n for (i = -nSamples; i <= nSamples; i++) {\n random = (Math.random() - 0.5) / 4;\n percent = i / nSamples;\n j = blur * percent * height + random;\n ctx2.globalAlpha = 1 - Math.abs(percent);\n ctx2.drawImage(canvas1, random, j);\n ctx1.drawImage(canvas2, 0, 0);\n ctx2.globalAlpha = 1;\n ctx2.clearRect(0, 0, canvas2.width, canvas2.height);\n }\n ctx.drawImage(canvas1, 0, 0);\n const newImageData = ctx.getImageData(0, 0, canvas1.width, canvas1.height);\n ctx1.globalAlpha = 1;\n ctx1.clearRect(0, 0, canvas1.width, canvas1.height);\n return newImageData;\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 delta: gl.getUniformLocation(program, 'uDelta'),\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 delta = this.chooseRightDelta();\n gl.uniform2fv(uniformLocations.delta, delta);\n }\n\n /**\n * choose right value of image percentage to blur with\n * @returns {Array} a numeric array with delta values\n */\n chooseRightDelta() {\n let blurScale = 1;\n const delta = [0, 0];\n if (this.horizontal) {\n if (this.aspectRatio > 1) {\n // image is wide, i want to shrink radius horizontal\n blurScale = 1 / this.aspectRatio;\n }\n } else {\n if (this.aspectRatio < 1) {\n // image is tall, i want to shrink radius vertical\n blurScale = this.aspectRatio;\n }\n }\n const blur = blurScale * this.blur * 0.12;\n if (this.horizontal) {\n delta[0] = blur;\n } else {\n delta[1] = blur;\n }\n return delta;\n }\n}\n\nclassRegistry.setClass(Blur);\n"],"names":["blurDefaultValues","blur","mainParameter","Blur","BaseFilter","getFragmentSource","fragmentSource","applyTo","options","isWebGLPipelineState","aspectRatio","sourceWidth","sourceHeight","passes","_setupFrameBuffer","horizontal","applyToWebGL","_swapTextures","applyTo2d","imageData","simpleBlur","_ref","ctx","filterBackend","resources","width","height","blurLayer1","createCanvasElement","blurLayer2","canvas1","canvas2","ctx1","getContext","ctx2","nSamples","random","percent","j","i","putImageData","clearRect","Math","globalAlpha","abs","drawImage","newImageData","getImageData","getUniformLocations","gl","program","delta","getUniformLocation","sendUniformData","uniformLocations","chooseRightDelta","uniform2fv","blurScale","_defineProperty","classRegistry","setClass"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Blur.mjs","sources":["../../../src/filters/Blur.ts"],"sourcesContent":["import { createCanvasElement } from '../util/misc/dom';\nimport { BaseFilter } from './BaseFilter';\nimport type {\n TWebGLPipelineState,\n T2DPipelineState,\n TWebGLUniformLocationMap,\n} from './typedefs';\nimport { isWebGLPipelineState } from './utils';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/blur';\n\ntype BlurOwnProps = {\n blur: number;\n};\n\nexport const blurDefaultValues: BlurOwnProps = {\n blur: 0,\n};\n\n/**\n * Blur filter class\n * @example\n * const filter = new Blur({\n * blur: 0.5\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\nexport class Blur extends BaseFilter<'Blur', BlurOwnProps> {\n /**\n * blur value, in percentage of image dimensions.\n * specific to keep the image blur constant at different resolutions\n * range between 0 and 1.\n * @type Number\n * @default\n */\n declare blur: BlurOwnProps['blur'];\n\n declare horizontal: boolean;\n declare aspectRatio: number;\n\n static type = 'Blur';\n\n static defaults = blurDefaultValues;\n\n static uniformLocations = ['uDelta'];\n\n getFragmentSource(): string {\n return fragmentSource;\n }\n\n applyTo(options: TWebGLPipelineState | T2DPipelineState) {\n if (isWebGLPipelineState(options)) {\n // this aspectRatio is used to give the same blur to vertical and horizontal\n this.aspectRatio = options.sourceWidth / options.sourceHeight;\n options.passes++;\n this._setupFrameBuffer(options);\n this.horizontal = true;\n this.applyToWebGL(options);\n this._swapTextures(options);\n this._setupFrameBuffer(options);\n this.horizontal = false;\n this.applyToWebGL(options);\n this._swapTextures(options);\n } else {\n this.applyTo2d(options);\n }\n }\n\n applyTo2d(options: T2DPipelineState) {\n options.imageData = this.simpleBlur(options);\n }\n\n simpleBlur({\n ctx,\n imageData,\n filterBackend: { resources },\n }: T2DPipelineState) {\n const { width, height } = imageData;\n if (!resources.blurLayer1) {\n resources.blurLayer1 = createCanvasElement();\n resources.blurLayer2 = createCanvasElement();\n }\n const canvas1 = resources.blurLayer1!;\n const canvas2 = resources.blurLayer2!;\n if (canvas1.width !== width || canvas1.height !== height) {\n canvas2.width = canvas1.width = width;\n canvas2.height = canvas1.height = height;\n }\n const ctx1 = canvas1.getContext('2d')!,\n ctx2 = canvas2.getContext('2d')!,\n nSamples = 15,\n blur = this.blur * 0.06 * 0.5;\n let random, percent, j, i;\n\n // load first canvas\n ctx1.putImageData(imageData, 0, 0);\n ctx2.clearRect(0, 0, width, height);\n\n for (i = -nSamples; i <= nSamples; i++) {\n random = (Math.random() - 0.5) / 4;\n percent = i / nSamples;\n j = blur * percent * width + random;\n ctx2.globalAlpha = 1 - Math.abs(percent);\n ctx2.drawImage(canvas1, j, random);\n ctx1.drawImage(canvas2, 0, 0);\n ctx2.globalAlpha = 1;\n ctx2.clearRect(0, 0, canvas2.width, canvas2.height);\n }\n for (i = -nSamples; i <= nSamples; i++) {\n random = (Math.random() - 0.5) / 4;\n percent = i / nSamples;\n j = blur * percent * height + random;\n ctx2.globalAlpha = 1 - Math.abs(percent);\n ctx2.drawImage(canvas1, random, j);\n ctx1.drawImage(canvas2, 0, 0);\n ctx2.globalAlpha = 1;\n ctx2.clearRect(0, 0, canvas2.width, canvas2.height);\n }\n ctx.drawImage(canvas1, 0, 0);\n const newImageData = ctx.getImageData(0, 0, canvas1.width, canvas1.height);\n ctx1.globalAlpha = 1;\n ctx1.clearRect(0, 0, canvas1.width, canvas1.height);\n return newImageData;\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 delta = this.chooseRightDelta();\n gl.uniform2fv(uniformLocations.delta, delta);\n }\n\n isNeutralState() {\n return this.blur === 0;\n }\n\n /**\n * choose right value of image percentage to blur with\n * @returns {Array} a numeric array with delta values\n */\n chooseRightDelta() {\n let blurScale = 1;\n const delta = [0, 0];\n if (this.horizontal) {\n if (this.aspectRatio > 1) {\n // image is wide, i want to shrink radius horizontal\n blurScale = 1 / this.aspectRatio;\n }\n } else {\n if (this.aspectRatio < 1) {\n // image is tall, i want to shrink radius vertical\n blurScale = this.aspectRatio;\n }\n }\n const blur = blurScale * this.blur * 0.12;\n if (this.horizontal) {\n delta[0] = blur;\n } else {\n delta[1] = blur;\n }\n return delta;\n }\n}\n\nclassRegistry.setClass(Blur);\n"],"names":["blurDefaultValues","blur","Blur","BaseFilter","getFragmentSource","fragmentSource","applyTo","options","isWebGLPipelineState","aspectRatio","sourceWidth","sourceHeight","passes","_setupFrameBuffer","horizontal","applyToWebGL","_swapTextures","applyTo2d","imageData","simpleBlur","_ref","ctx","filterBackend","resources","width","height","blurLayer1","createCanvasElement","blurLayer2","canvas1","canvas2","ctx1","getContext","ctx2","nSamples","random","percent","j","i","putImageData","clearRect","Math","globalAlpha","abs","drawImage","newImageData","getImageData","sendUniformData","gl","uniformLocations","delta","chooseRightDelta","uniform2fv","isNeutralState","blurScale","_defineProperty","classRegistry","setClass"],"mappings":"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"}
|
|
@@ -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
|
-
|
|
3
|
+
type MyFilterOwnProps = {
|
|
4
|
+
myParameter: number;
|
|
5
|
+
};
|
|
6
|
+
export declare const myFilterDefaultValues: MyFilterOwnProps;
|
|
5
7
|
/**
|
|
6
8
|
* MyFilter filter class
|
|
7
9
|
* @example
|
|
@@ -11,7 +13,7 @@ export declare const myFilterDefaultValues: Partial<TClassProperties<MyFilter>>;
|
|
|
11
13
|
* object.filters.push(filter);
|
|
12
14
|
* object.applyFilters();
|
|
13
15
|
*/
|
|
14
|
-
export declare class MyFilter extends BaseFilter {
|
|
16
|
+
export declare class MyFilter extends BaseFilter<'MyFilter', MyFilterOwnProps> {
|
|
15
17
|
/**
|
|
16
18
|
* MyFilter value, from -1 to 1.
|
|
17
19
|
* translated to -255 to 255 for 2d
|
|
@@ -19,8 +21,10 @@ export declare class MyFilter extends BaseFilter {
|
|
|
19
21
|
* @param {Number} myParameter
|
|
20
22
|
* @default
|
|
21
23
|
*/
|
|
22
|
-
myParameter:
|
|
23
|
-
static
|
|
24
|
+
myParameter: MyFilterOwnProps['myParameter'];
|
|
25
|
+
static type: string;
|
|
26
|
+
static defaults: MyFilterOwnProps;
|
|
27
|
+
static uniformLocations: string[];
|
|
24
28
|
getFragmentSource(): string;
|
|
25
29
|
/**
|
|
26
30
|
* Apply the MyFilter operation to a Uint8ClampedArray representing the pixels of an image.
|
|
@@ -29,13 +33,6 @@ export declare class MyFilter extends BaseFilter {
|
|
|
29
33
|
* @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
|
|
30
34
|
*/
|
|
31
35
|
applyTo2d(options: 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
36
|
/**
|
|
40
37
|
* Send data from this filter to its shader program's uniforms.
|
|
41
38
|
*
|
|
@@ -43,6 +40,7 @@ export declare class MyFilter extends BaseFilter {
|
|
|
43
40
|
* @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
|
|
44
41
|
*/
|
|
45
42
|
sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
|
|
46
|
-
static fromObject(object: any): Promise<
|
|
43
|
+
static fromObject(object: any): Promise<MyFilter>;
|
|
47
44
|
}
|
|
45
|
+
export {};
|
|
48
46
|
//# sourceMappingURL=Boilerplate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Boilerplate.d.ts","sourceRoot":"","sources":["../../../src/filters/Boilerplate.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Boilerplate.d.ts","sourceRoot":"","sources":["../../../src/filters/Boilerplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE7E,KAAK,gBAAgB,GAAG;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,gBAEnC,CAAC;AAEF;;;;;;;;GAQG;AACH,qBAAa,QAAS,SAAQ,UAAU,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACpE;;;;;;OAMG;IACK,WAAW,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAErD,MAAM,CAAC,IAAI,SAAc;IAEzB,MAAM,CAAC,QAAQ,mBAAyB;IAExC,MAAM,CAAC,gBAAgB,WAAoB;IAE3C,iBAAiB;IAajB;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,gBAAgB;IAWnC;;;;;OAKG;IACH,eAAe,CACb,EAAE,EAAE,qBAAqB,EACzB,gBAAgB,EAAE,wBAAwB;WAK/B,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;CAKxD"}
|
|
@@ -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
|
-
|
|
3
|
+
type BrightnessOwnProps = {
|
|
4
|
+
brightness: number;
|
|
5
|
+
};
|
|
6
|
+
export declare const brightnessDefaultValues: BrightnessOwnProps;
|
|
5
7
|
/**
|
|
6
8
|
* Brightness filter class
|
|
7
9
|
* @example
|
|
@@ -11,7 +13,7 @@ export declare const brightnessDefaultValues: Partial<TClassProperties<Brightnes
|
|
|
11
13
|
* object.filters.push(filter);
|
|
12
14
|
* object.applyFilters();
|
|
13
15
|
*/
|
|
14
|
-
export declare class Brightness extends BaseFilter {
|
|
16
|
+
export declare class Brightness extends BaseFilter<'Brightness', BrightnessOwnProps> {
|
|
15
17
|
/**
|
|
16
18
|
* Brightness value, from -1 to 1.
|
|
17
19
|
* translated to -255 to 255 for 2d
|
|
@@ -19,9 +21,10 @@ export declare class Brightness extends BaseFilter {
|
|
|
19
21
|
* @param {Number} brightness
|
|
20
22
|
* @default
|
|
21
23
|
*/
|
|
22
|
-
brightness:
|
|
24
|
+
brightness: BrightnessOwnProps['brightness'];
|
|
23
25
|
static type: string;
|
|
24
|
-
static defaults:
|
|
26
|
+
static defaults: BrightnessOwnProps;
|
|
27
|
+
static uniformLocations: string[];
|
|
25
28
|
getFragmentSource(): string;
|
|
26
29
|
/**
|
|
27
30
|
* Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.
|
|
@@ -30,13 +33,7 @@ export declare class Brightness extends BaseFilter {
|
|
|
30
33
|
* @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
|
|
31
34
|
*/
|
|
32
35
|
applyTo2d({ imageData: { data } }: T2DPipelineState): void;
|
|
33
|
-
|
|
34
|
-
* Return WebGL uniform locations for this filter's shader.
|
|
35
|
-
*
|
|
36
|
-
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
37
|
-
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
38
|
-
*/
|
|
39
|
-
getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
|
|
36
|
+
isNeutralState(): boolean;
|
|
40
37
|
/**
|
|
41
38
|
* Send data from this filter to its shader program's uniforms.
|
|
42
39
|
*
|
|
@@ -45,4 +42,5 @@ export declare class Brightness extends BaseFilter {
|
|
|
45
42
|
*/
|
|
46
43
|
sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
|
|
47
44
|
}
|
|
45
|
+
export {};
|
|
48
46
|
//# sourceMappingURL=Brightness.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Brightness.d.ts","sourceRoot":"","sources":["../../../src/filters/Brightness.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Brightness.d.ts","sourceRoot":"","sources":["../../../src/filters/Brightness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAI7E,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,kBAErC,CAAC;AAEF;;;;;;;;GAQG;AACH,qBAAa,UAAW,SAAQ,UAAU,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1E;;;;;;OAMG;IACK,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAErD,MAAM,CAAC,IAAI,SAAgB;IAE3B,MAAM,CAAC,QAAQ,qBAA2B;IAE1C,MAAM,CAAC,gBAAgB,WAAmB;IAE1C,iBAAiB;IAIjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,gBAAgB;IASnD,cAAc;IAId;;;;;OAKG;IACH,eAAe,CACb,EAAE,EAAE,qBAAqB,EACzB,gBAAgB,EAAE,wBAAwB;CAI7C"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineProperty as s}from"../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{BaseFilter as t}from"./BaseFilter.min.mjs";import{classRegistry as r}from"../ClassRegistry.min.mjs";import{fragmentSource as e}from"./shaders/brightness.min.mjs";const i={brightness:0
|
|
1
|
+
import{defineProperty as s}from"../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{BaseFilter as t}from"./BaseFilter.min.mjs";import{classRegistry as r}from"../ClassRegistry.min.mjs";import{fragmentSource as e}from"./shaders/brightness.min.mjs";const i={brightness:0};class n extends t{getFragmentSource(){return e}applyTo2d(s){let{imageData:{data:t}}=s;const r=Math.round(255*this.brightness);for(let s=0;s<t.length;s+=4)t[s]=t[s]+r,t[s+1]=t[s+1]+r,t[s+2]=t[s+2]+r}isNeutralState(){return 0===this.brightness}sendUniformData(s,t){s.uniform1f(t.uBrightness,this.brightness)}}s(n,"type","Brightness"),s(n,"defaults",i),s(n,"uniformLocations",["uBrightness"]),r.setClass(n);export{n as Brightness,i as brightnessDefaultValues};
|
|
2
2
|
//# sourceMappingURL=Brightness.min.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Brightness.min.mjs","sources":["../../../src/filters/Brightness.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"Brightness.min.mjs","sources":["../../../src/filters/Brightness.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/brightness';\n\ntype BrightnessOwnProps = {\n brightness: number;\n};\n\nexport const brightnessDefaultValues: BrightnessOwnProps = {\n brightness: 0,\n};\n\n/**\n * Brightness filter class\n * @example\n * const filter = new Brightness({\n * brightness: 0.05\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class Brightness extends BaseFilter<'Brightness', BrightnessOwnProps> {\n /**\n * Brightness value, from -1 to 1.\n * translated to -255 to 255 for 2d\n * 0.0039215686 is the part of 1 that get translated to 1 in 2d\n * @param {Number} brightness\n * @default\n */\n declare brightness: BrightnessOwnProps['brightness'];\n\n static type = 'Brightness';\n\n static defaults = brightnessDefaultValues;\n\n static uniformLocations = ['uBrightness'];\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 brightness = Math.round(this.brightness * 255);\n for (let i = 0; i < data.length; i += 4) {\n data[i] = data[i] + brightness;\n data[i + 1] = data[i + 1] + brightness;\n data[i + 2] = data[i + 2] + brightness;\n }\n }\n\n isNeutralState() {\n return this.brightness === 0;\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.uBrightness, this.brightness);\n }\n}\n\nclassRegistry.setClass(Brightness);\n"],"names":["brightnessDefaultValues","brightness","Brightness","BaseFilter","getFragmentSource","fragmentSource","applyTo2d","_ref","imageData","data","Math","round","this","i","length","isNeutralState","sendUniformData","gl","uniformLocations","uniform1f","uBrightness","_defineProperty","classRegistry","setClass"],"mappings":"2PASO,MAAMA,EAA8C,CACzDC,WAAY,GAYP,MAAMC,UAAmBC,EAgB9BC,iBAAAA,GACE,OAAOC,CACT,CAQAC,SAAAA,CAASC,GAA4C,IAAzCC,WAAWC,KAAEA,IAA0BF,EACjD,MAAMN,EAAaS,KAAKC,MAAwB,IAAlBC,KAAKX,YACnC,IAAK,IAAIY,EAAI,EAAGA,EAAIJ,EAAKK,OAAQD,GAAK,EACpCJ,EAAKI,GAAKJ,EAAKI,GAAKZ,EACpBQ,EAAKI,EAAI,GAAKJ,EAAKI,EAAI,GAAKZ,EAC5BQ,EAAKI,EAAI,GAAKJ,EAAKI,EAAI,GAAKZ,CAEhC,CAEAc,cAAAA,GACE,OAA2B,IAApBH,KAAKX,UACd,CAQAe,eAAAA,CACEC,EACAC,GAEAD,EAAGE,UAAUD,EAAiBE,YAAaR,KAAKX,WAClD,EAjDAoB,EADWnB,EAAU,OAUP,cAAYmB,EAVfnB,EAAU,WAYHF,GAAuBqB,EAZ9BnB,EAce,mBAAA,CAAC,gBAuC7BoB,EAAcC,SAASrB"}
|
|
@@ -4,8 +4,7 @@ import { classRegistry } from '../ClassRegistry.mjs';
|
|
|
4
4
|
import { fragmentSource } from './shaders/brightness.mjs';
|
|
5
5
|
|
|
6
6
|
const brightnessDefaultValues = {
|
|
7
|
-
brightness: 0
|
|
8
|
-
mainParameter: 'brightness'
|
|
7
|
+
brightness: 0
|
|
9
8
|
};
|
|
10
9
|
|
|
11
10
|
/**
|
|
@@ -34,9 +33,6 @@ class Brightness extends BaseFilter {
|
|
|
34
33
|
data
|
|
35
34
|
}
|
|
36
35
|
} = _ref;
|
|
37
|
-
if (this.brightness === 0) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
36
|
const brightness = Math.round(this.brightness * 255);
|
|
41
37
|
for (let i = 0; i < data.length; i += 4) {
|
|
42
38
|
data[i] = data[i] + brightness;
|
|
@@ -44,17 +40,8 @@ class Brightness extends BaseFilter {
|
|
|
44
40
|
data[i + 2] = data[i + 2] + brightness;
|
|
45
41
|
}
|
|
46
42
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
* Return WebGL uniform locations for this filter's shader.
|
|
50
|
-
*
|
|
51
|
-
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
52
|
-
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
53
|
-
*/
|
|
54
|
-
getUniformLocations(gl, program) {
|
|
55
|
-
return {
|
|
56
|
-
uBrightness: gl.getUniformLocation(program, 'uBrightness')
|
|
57
|
-
};
|
|
43
|
+
isNeutralState() {
|
|
44
|
+
return this.brightness === 0;
|
|
58
45
|
}
|
|
59
46
|
|
|
60
47
|
/**
|
|
@@ -76,6 +63,7 @@ class Brightness extends BaseFilter {
|
|
|
76
63
|
*/
|
|
77
64
|
_defineProperty(Brightness, "type", 'Brightness');
|
|
78
65
|
_defineProperty(Brightness, "defaults", brightnessDefaultValues);
|
|
66
|
+
_defineProperty(Brightness, "uniformLocations", ['uBrightness']);
|
|
79
67
|
classRegistry.setClass(Brightness);
|
|
80
68
|
|
|
81
69
|
export { Brightness, brightnessDefaultValues };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Brightness.mjs","sources":["../../../src/filters/Brightness.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"Brightness.mjs","sources":["../../../src/filters/Brightness.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/brightness';\n\ntype BrightnessOwnProps = {\n brightness: number;\n};\n\nexport const brightnessDefaultValues: BrightnessOwnProps = {\n brightness: 0,\n};\n\n/**\n * Brightness filter class\n * @example\n * const filter = new Brightness({\n * brightness: 0.05\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class Brightness extends BaseFilter<'Brightness', BrightnessOwnProps> {\n /**\n * Brightness value, from -1 to 1.\n * translated to -255 to 255 for 2d\n * 0.0039215686 is the part of 1 that get translated to 1 in 2d\n * @param {Number} brightness\n * @default\n */\n declare brightness: BrightnessOwnProps['brightness'];\n\n static type = 'Brightness';\n\n static defaults = brightnessDefaultValues;\n\n static uniformLocations = ['uBrightness'];\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 brightness = Math.round(this.brightness * 255);\n for (let i = 0; i < data.length; i += 4) {\n data[i] = data[i] + brightness;\n data[i + 1] = data[i + 1] + brightness;\n data[i + 2] = data[i + 2] + brightness;\n }\n }\n\n isNeutralState() {\n return this.brightness === 0;\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.uBrightness, this.brightness);\n }\n}\n\nclassRegistry.setClass(Brightness);\n"],"names":["brightnessDefaultValues","brightness","Brightness","BaseFilter","getFragmentSource","fragmentSource","applyTo2d","_ref","imageData","data","Math","round","i","length","isNeutralState","sendUniformData","gl","uniformLocations","uniform1f","uBrightness","_defineProperty","classRegistry","setClass"],"mappings":";;;;;AASO,MAAMA,uBAA2C,GAAG;AACzDC,EAAAA,UAAU,EAAE,CAAA;AACd,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,UAAU,SAASC,UAAU,CAAmC;AAgB3EC,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;IACjD,MAAMN,UAAU,GAAGS,IAAI,CAACC,KAAK,CAAC,IAAI,CAACV,UAAU,GAAG,GAAG,CAAC,CAAA;AACpD,IAAA,KAAK,IAAIW,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,IAAI,CAACI,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;MACvCH,IAAI,CAACG,CAAC,CAAC,GAAGH,IAAI,CAACG,CAAC,CAAC,GAAGX,UAAU,CAAA;AAC9BQ,MAAAA,IAAI,CAACG,CAAC,GAAG,CAAC,CAAC,GAAGH,IAAI,CAACG,CAAC,GAAG,CAAC,CAAC,GAAGX,UAAU,CAAA;AACtCQ,MAAAA,IAAI,CAACG,CAAC,GAAG,CAAC,CAAC,GAAGH,IAAI,CAACG,CAAC,GAAG,CAAC,CAAC,GAAGX,UAAU,CAAA;AACxC,KAAA;AACF,GAAA;AAEAa,EAAAA,cAAcA,GAAG;AACf,IAAA,OAAO,IAAI,CAACb,UAAU,KAAK,CAAC,CAAA;AAC9B,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEc,EAAAA,eAAeA,CACbC,EAAyB,EACzBC,gBAA0C,EAC1C;IACAD,EAAE,CAACE,SAAS,CAACD,gBAAgB,CAACE,WAAW,EAAE,IAAI,CAAClB,UAAU,CAAC,CAAA;AAC7D,GAAA;AACF,CAAA;AAlDE;AACF;AACA;AACA;AACA;AACA;AACA;AANEmB,eAAA,CADWlB,UAAU,EAAA,MAAA,EAUP,YAAY,CAAA,CAAA;AAAAkB,eAAA,CAVflB,UAAU,EAAA,UAAA,EAYHF,uBAAuB,CAAA,CAAA;AAAAoB,eAAA,CAZ9BlB,UAAU,EAcK,kBAAA,EAAA,CAAC,aAAa,CAAC,CAAA,CAAA;AAuC3CmB,aAAa,CAACC,QAAQ,CAACpB,UAAU,CAAC;;;;"}
|
|
@@ -22,6 +22,6 @@ export declare class Canvas2dFilterBackend {
|
|
|
22
22
|
* @param {Number} sourceHeight The height of the source input.
|
|
23
23
|
* @param {HTMLCanvasElement} targetCanvas The destination for filtered output to be drawn.
|
|
24
24
|
*/
|
|
25
|
-
applyFilters(filters: BaseFilter[], sourceElement: CanvasImageSource, sourceWidth: number, sourceHeight: number, targetCanvas: HTMLCanvasElement): T2DPipelineState | void;
|
|
25
|
+
applyFilters(filters: BaseFilter<string, Record<string, any>>[], sourceElement: CanvasImageSource, sourceWidth: number, sourceHeight: number, targetCanvas: HTMLCanvasElement): T2DPipelineState | void;
|
|
26
26
|
}
|
|
27
27
|
//# sourceMappingURL=Canvas2dFilterBackend.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Canvas2dFilterBackend.d.ts","sourceRoot":"","sources":["../../../src/filters/Canvas2dFilterBackend.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEvE,qBAAa,qBAAqB;IAChC;;;;;;QAMI;IACJ,SAAS,EAAE,kBAAkB,CAAM;IAEnC;;;;;;;;;OASG;IACH,YAAY,CACV,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"Canvas2dFilterBackend.d.ts","sourceRoot":"","sources":["../../../src/filters/Canvas2dFilterBackend.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEvE,qBAAa,qBAAqB;IAChC;;;;;;QAMI;IACJ,SAAS,EAAE,kBAAkB,CAAM;IAEnC;;;;;;;;;OASG;IACH,YAAY,CACV,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,EAClD,aAAa,EAAE,iBAAiB,EAChC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,iBAAiB,GAC9B,gBAAgB,GAAG,IAAI;CAgC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Canvas2dFilterBackend.min.mjs","sources":["../../../src/filters/Canvas2dFilterBackend.ts"],"sourcesContent":["/**\n * Canvas 2D filter backend.\n */\nimport type { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TPipelineResources } from './typedefs';\n\nexport class Canvas2dFilterBackend {\n /**\n * Experimental. This object is a sort of repository of help layers used to avoid\n * of recreating them during frequent filtering. If you are previewing a filter with\n * a slider you probably do not want to create help layers every filter step.\n * in this object there will be appended some canvases, created once, resized sometimes\n * cleared never. Clearing is left to the developer.\n **/\n resources: TPipelineResources = {};\n\n /**\n * Apply a set of filters against a source image and draw the filtered output\n * to the provided destination canvas.\n *\n * @param {EnhancedFilter} filters The filter to apply.\n * @param {HTMLImageElement|HTMLCanvasElement} sourceElement The source to be filtered.\n * @param {Number} sourceWidth The width of the source input.\n * @param {Number} sourceHeight The height of the source input.\n * @param {HTMLCanvasElement} targetCanvas The destination for filtered output to be drawn.\n */\n applyFilters(\n filters: BaseFilter[],\n sourceElement: CanvasImageSource,\n sourceWidth: number,\n sourceHeight: number,\n targetCanvas: HTMLCanvasElement\n ): T2DPipelineState | void {\n const ctx = targetCanvas.getContext('2d');\n if (!ctx) {\n return;\n }\n ctx.drawImage(sourceElement, 0, 0, sourceWidth, sourceHeight);\n const imageData = ctx.getImageData(0, 0, sourceWidth, sourceHeight);\n const originalImageData = ctx.getImageData(0, 0, sourceWidth, sourceHeight);\n const pipelineState: T2DPipelineState = {\n sourceWidth,\n sourceHeight,\n imageData,\n originalEl: sourceElement,\n originalImageData,\n canvasEl: targetCanvas,\n ctx,\n filterBackend: this,\n };\n filters.forEach((filter) => {\n filter.applyTo(pipelineState);\n });\n const { imageData: imageDataPostFilter } = pipelineState;\n if (\n imageDataPostFilter.width !== sourceWidth ||\n imageDataPostFilter.height !== sourceHeight\n ) {\n targetCanvas.width = imageDataPostFilter.width;\n targetCanvas.height = imageDataPostFilter.height;\n }\n ctx.putImageData(imageDataPostFilter, 0, 0);\n return pipelineState;\n }\n}\n"],"names":["Canvas2dFilterBackend","constructor","_defineProperty","this","applyFilters","filters","sourceElement","sourceWidth","sourceHeight","targetCanvas","ctx","getContext","drawImage","pipelineState","imageData","getImageData","originalEl","originalImageData","canvasEl","filterBackend","forEach","filter","applyTo","imageDataPostFilter","width","height","putImageData"],"mappings":"kFAMO,MAAMA,EAAsBC,WAAAA,GACjCC,EAAAC,KAAA,YAOgC,CAAA,EAAE,CAYlCC,YAAAA,CACEC,EACAC,EACAC,EACAC,EACAC,GAEA,MAAMC,EAAMD,EAAaE,WAAW,MACpC,IAAKD,EACH,OAEFA,EAAIE,UAAUN,EAAe,EAAG,EAAGC,EAAaC,GAChD,MAEMK,EAAkC,CACtCN,cACAC,eACAM,UALgBJ,EAAIK,aAAa,EAAG,EAAGR,EAAaC,GAMpDQ,WAAYV,EACZW,kBANwBP,EAAIK,aAAa,EAAG,EAAGR,EAAaC,GAO5DU,SAAUT,EACVC,MACAS,cAAehB,MAEjBE,EAAQe,SAASC,IACfA,EAAOC,QAAQT,EAAc,IAE/B,MAAQC,UAAWS,GAAwBV,EAS3C,OAPEU,EAAoBC,QAAUjB,GAC9BgB,EAAoBE,SAAWjB,IAE/BC,EAAae,MAAQD,EAAoBC,MACzCf,EAAagB,OAASF,EAAoBE,QAE5Cf,EAAIgB,aAAaH,EAAqB,EAAG,GAClCV,CACT"}
|
|
1
|
+
{"version":3,"file":"Canvas2dFilterBackend.min.mjs","sources":["../../../src/filters/Canvas2dFilterBackend.ts"],"sourcesContent":["/**\n * Canvas 2D filter backend.\n */\nimport type { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TPipelineResources } from './typedefs';\n\nexport class Canvas2dFilterBackend {\n /**\n * Experimental. This object is a sort of repository of help layers used to avoid\n * of recreating them during frequent filtering. If you are previewing a filter with\n * a slider you probably do not want to create help layers every filter step.\n * in this object there will be appended some canvases, created once, resized sometimes\n * cleared never. Clearing is left to the developer.\n **/\n resources: TPipelineResources = {};\n\n /**\n * Apply a set of filters against a source image and draw the filtered output\n * to the provided destination canvas.\n *\n * @param {EnhancedFilter} filters The filter to apply.\n * @param {HTMLImageElement|HTMLCanvasElement} sourceElement The source to be filtered.\n * @param {Number} sourceWidth The width of the source input.\n * @param {Number} sourceHeight The height of the source input.\n * @param {HTMLCanvasElement} targetCanvas The destination for filtered output to be drawn.\n */\n applyFilters(\n filters: BaseFilter<string, Record<string, any>>[],\n sourceElement: CanvasImageSource,\n sourceWidth: number,\n sourceHeight: number,\n targetCanvas: HTMLCanvasElement\n ): T2DPipelineState | void {\n const ctx = targetCanvas.getContext('2d');\n if (!ctx) {\n return;\n }\n ctx.drawImage(sourceElement, 0, 0, sourceWidth, sourceHeight);\n const imageData = ctx.getImageData(0, 0, sourceWidth, sourceHeight);\n const originalImageData = ctx.getImageData(0, 0, sourceWidth, sourceHeight);\n const pipelineState: T2DPipelineState = {\n sourceWidth,\n sourceHeight,\n imageData,\n originalEl: sourceElement,\n originalImageData,\n canvasEl: targetCanvas,\n ctx,\n filterBackend: this,\n };\n filters.forEach((filter) => {\n filter.applyTo(pipelineState);\n });\n const { imageData: imageDataPostFilter } = pipelineState;\n if (\n imageDataPostFilter.width !== sourceWidth ||\n imageDataPostFilter.height !== sourceHeight\n ) {\n targetCanvas.width = imageDataPostFilter.width;\n targetCanvas.height = imageDataPostFilter.height;\n }\n ctx.putImageData(imageDataPostFilter, 0, 0);\n return pipelineState;\n }\n}\n"],"names":["Canvas2dFilterBackend","constructor","_defineProperty","this","applyFilters","filters","sourceElement","sourceWidth","sourceHeight","targetCanvas","ctx","getContext","drawImage","pipelineState","imageData","getImageData","originalEl","originalImageData","canvasEl","filterBackend","forEach","filter","applyTo","imageDataPostFilter","width","height","putImageData"],"mappings":"kFAMO,MAAMA,EAAsBC,WAAAA,GACjCC,EAAAC,KAAA,YAOgC,CAAA,EAAE,CAYlCC,YAAAA,CACEC,EACAC,EACAC,EACAC,EACAC,GAEA,MAAMC,EAAMD,EAAaE,WAAW,MACpC,IAAKD,EACH,OAEFA,EAAIE,UAAUN,EAAe,EAAG,EAAGC,EAAaC,GAChD,MAEMK,EAAkC,CACtCN,cACAC,eACAM,UALgBJ,EAAIK,aAAa,EAAG,EAAGR,EAAaC,GAMpDQ,WAAYV,EACZW,kBANwBP,EAAIK,aAAa,EAAG,EAAGR,EAAaC,GAO5DU,SAAUT,EACVC,MACAS,cAAehB,MAEjBE,EAAQe,SAASC,IACfA,EAAOC,QAAQT,EAAc,IAE/B,MAAQC,UAAWS,GAAwBV,EAS3C,OAPEU,EAAoBC,QAAUjB,GAC9BgB,EAAoBE,SAAWjB,IAE/BC,EAAae,MAAQD,EAAoBC,MACzCf,EAAagB,OAASF,EAAoBE,QAE5Cf,EAAIgB,aAAaH,EAAqB,EAAG,GAClCV,CACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Canvas2dFilterBackend.mjs","sources":["../../../src/filters/Canvas2dFilterBackend.ts"],"sourcesContent":["/**\n * Canvas 2D filter backend.\n */\nimport type { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TPipelineResources } from './typedefs';\n\nexport class Canvas2dFilterBackend {\n /**\n * Experimental. This object is a sort of repository of help layers used to avoid\n * of recreating them during frequent filtering. If you are previewing a filter with\n * a slider you probably do not want to create help layers every filter step.\n * in this object there will be appended some canvases, created once, resized sometimes\n * cleared never. Clearing is left to the developer.\n **/\n resources: TPipelineResources = {};\n\n /**\n * Apply a set of filters against a source image and draw the filtered output\n * to the provided destination canvas.\n *\n * @param {EnhancedFilter} filters The filter to apply.\n * @param {HTMLImageElement|HTMLCanvasElement} sourceElement The source to be filtered.\n * @param {Number} sourceWidth The width of the source input.\n * @param {Number} sourceHeight The height of the source input.\n * @param {HTMLCanvasElement} targetCanvas The destination for filtered output to be drawn.\n */\n applyFilters(\n filters: BaseFilter[],\n sourceElement: CanvasImageSource,\n sourceWidth: number,\n sourceHeight: number,\n targetCanvas: HTMLCanvasElement\n ): T2DPipelineState | void {\n const ctx = targetCanvas.getContext('2d');\n if (!ctx) {\n return;\n }\n ctx.drawImage(sourceElement, 0, 0, sourceWidth, sourceHeight);\n const imageData = ctx.getImageData(0, 0, sourceWidth, sourceHeight);\n const originalImageData = ctx.getImageData(0, 0, sourceWidth, sourceHeight);\n const pipelineState: T2DPipelineState = {\n sourceWidth,\n sourceHeight,\n imageData,\n originalEl: sourceElement,\n originalImageData,\n canvasEl: targetCanvas,\n ctx,\n filterBackend: this,\n };\n filters.forEach((filter) => {\n filter.applyTo(pipelineState);\n });\n const { imageData: imageDataPostFilter } = pipelineState;\n if (\n imageDataPostFilter.width !== sourceWidth ||\n imageDataPostFilter.height !== sourceHeight\n ) {\n targetCanvas.width = imageDataPostFilter.width;\n targetCanvas.height = imageDataPostFilter.height;\n }\n ctx.putImageData(imageDataPostFilter, 0, 0);\n return pipelineState;\n }\n}\n"],"names":["Canvas2dFilterBackend","constructor","_defineProperty","applyFilters","filters","sourceElement","sourceWidth","sourceHeight","targetCanvas","ctx","getContext","drawImage","imageData","getImageData","originalImageData","pipelineState","originalEl","canvasEl","filterBackend","forEach","filter","applyTo","imageDataPostFilter","width","height","putImageData"],"mappings":";;AAAA;AACA;AACA;;AAIO,MAAMA,qBAAqB,CAAC;EAAAC,WAAA,GAAA;AACjC;AACF;AACA;AACA;AACA;AACA;AACA;IANEC,eAAA,CAAA,IAAA,EAAA,WAAA,EAOgC,EAAE,CAAA,CAAA;AAAA,GAAA;AAElC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,YAAYA,CACVC,
|
|
1
|
+
{"version":3,"file":"Canvas2dFilterBackend.mjs","sources":["../../../src/filters/Canvas2dFilterBackend.ts"],"sourcesContent":["/**\n * Canvas 2D filter backend.\n */\nimport type { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TPipelineResources } from './typedefs';\n\nexport class Canvas2dFilterBackend {\n /**\n * Experimental. This object is a sort of repository of help layers used to avoid\n * of recreating them during frequent filtering. If you are previewing a filter with\n * a slider you probably do not want to create help layers every filter step.\n * in this object there will be appended some canvases, created once, resized sometimes\n * cleared never. Clearing is left to the developer.\n **/\n resources: TPipelineResources = {};\n\n /**\n * Apply a set of filters against a source image and draw the filtered output\n * to the provided destination canvas.\n *\n * @param {EnhancedFilter} filters The filter to apply.\n * @param {HTMLImageElement|HTMLCanvasElement} sourceElement The source to be filtered.\n * @param {Number} sourceWidth The width of the source input.\n * @param {Number} sourceHeight The height of the source input.\n * @param {HTMLCanvasElement} targetCanvas The destination for filtered output to be drawn.\n */\n applyFilters(\n filters: BaseFilter<string, Record<string, any>>[],\n sourceElement: CanvasImageSource,\n sourceWidth: number,\n sourceHeight: number,\n targetCanvas: HTMLCanvasElement\n ): T2DPipelineState | void {\n const ctx = targetCanvas.getContext('2d');\n if (!ctx) {\n return;\n }\n ctx.drawImage(sourceElement, 0, 0, sourceWidth, sourceHeight);\n const imageData = ctx.getImageData(0, 0, sourceWidth, sourceHeight);\n const originalImageData = ctx.getImageData(0, 0, sourceWidth, sourceHeight);\n const pipelineState: T2DPipelineState = {\n sourceWidth,\n sourceHeight,\n imageData,\n originalEl: sourceElement,\n originalImageData,\n canvasEl: targetCanvas,\n ctx,\n filterBackend: this,\n };\n filters.forEach((filter) => {\n filter.applyTo(pipelineState);\n });\n const { imageData: imageDataPostFilter } = pipelineState;\n if (\n imageDataPostFilter.width !== sourceWidth ||\n imageDataPostFilter.height !== sourceHeight\n ) {\n targetCanvas.width = imageDataPostFilter.width;\n targetCanvas.height = imageDataPostFilter.height;\n }\n ctx.putImageData(imageDataPostFilter, 0, 0);\n return pipelineState;\n }\n}\n"],"names":["Canvas2dFilterBackend","constructor","_defineProperty","applyFilters","filters","sourceElement","sourceWidth","sourceHeight","targetCanvas","ctx","getContext","drawImage","imageData","getImageData","originalImageData","pipelineState","originalEl","canvasEl","filterBackend","forEach","filter","applyTo","imageDataPostFilter","width","height","putImageData"],"mappings":";;AAAA;AACA;AACA;;AAIO,MAAMA,qBAAqB,CAAC;EAAAC,WAAA,GAAA;AACjC;AACF;AACA;AACA;AACA;AACA;AACA;IANEC,eAAA,CAAA,IAAA,EAAA,WAAA,EAOgC,EAAE,CAAA,CAAA;AAAA,GAAA;AAElC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,YAAYA,CACVC,OAAkD,EAClDC,aAAgC,EAChCC,WAAmB,EACnBC,YAAoB,EACpBC,YAA+B,EACN;AACzB,IAAA,MAAMC,GAAG,GAAGD,YAAY,CAACE,UAAU,CAAC,IAAI,CAAC,CAAA;IACzC,IAAI,CAACD,GAAG,EAAE;AACR,MAAA,OAAA;AACF,KAAA;AACAA,IAAAA,GAAG,CAACE,SAAS,CAACN,aAAa,EAAE,CAAC,EAAE,CAAC,EAAEC,WAAW,EAAEC,YAAY,CAAC,CAAA;AAC7D,IAAA,MAAMK,SAAS,GAAGH,GAAG,CAACI,YAAY,CAAC,CAAC,EAAE,CAAC,EAAEP,WAAW,EAAEC,YAAY,CAAC,CAAA;AACnE,IAAA,MAAMO,iBAAiB,GAAGL,GAAG,CAACI,YAAY,CAAC,CAAC,EAAE,CAAC,EAAEP,WAAW,EAAEC,YAAY,CAAC,CAAA;AAC3E,IAAA,MAAMQ,aAA+B,GAAG;MACtCT,WAAW;MACXC,YAAY;MACZK,SAAS;AACTI,MAAAA,UAAU,EAAEX,aAAa;MACzBS,iBAAiB;AACjBG,MAAAA,QAAQ,EAAET,YAAY;MACtBC,GAAG;AACHS,MAAAA,aAAa,EAAE,IAAA;KAChB,CAAA;AACDd,IAAAA,OAAO,CAACe,OAAO,CAAEC,MAAM,IAAK;AAC1BA,MAAAA,MAAM,CAACC,OAAO,CAACN,aAAa,CAAC,CAAA;AAC/B,KAAC,CAAC,CAAA;IACF,MAAM;AAAEH,MAAAA,SAAS,EAAEU,mBAAAA;AAAoB,KAAC,GAAGP,aAAa,CAAA;IACxD,IACEO,mBAAmB,CAACC,KAAK,KAAKjB,WAAW,IACzCgB,mBAAmB,CAACE,MAAM,KAAKjB,YAAY,EAC3C;AACAC,MAAAA,YAAY,CAACe,KAAK,GAAGD,mBAAmB,CAACC,KAAK,CAAA;AAC9Cf,MAAAA,YAAY,CAACgB,MAAM,GAAGF,mBAAmB,CAACE,MAAM,CAAA;AAClD,KAAA;IACAf,GAAG,CAACgB,YAAY,CAACH,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAC3C,IAAA,OAAOP,aAAa,CAAA;AACtB,GAAA;AACF;;;;"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import type { TClassProperties } from '../typedefs';
|
|
2
1
|
import { BaseFilter } from './BaseFilter';
|
|
3
|
-
import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
|
|
4
|
-
|
|
2
|
+
import type { T2DPipelineState, TMatColorMatrix, TWebGLUniformLocationMap } from './typedefs';
|
|
3
|
+
type ColorMatrixOwnProps = {
|
|
4
|
+
matrix: TMatColorMatrix;
|
|
5
|
+
colorsOnly: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const colorMatrixDefaultValues: ColorMatrixOwnProps;
|
|
5
8
|
/**
|
|
6
9
|
* Color Matrix filter class
|
|
7
10
|
* @see {@link http://fabricjs.com/image-filters|ImageFilters demo}
|
|
@@ -18,7 +21,7 @@ export declare const colorMatrixDefaultValues: Partial<TClassProperties<ColorMat
|
|
|
18
21
|
* object.filters.push(filter);
|
|
19
22
|
* object.applyFilters();
|
|
20
23
|
*/
|
|
21
|
-
export declare class ColorMatrix extends BaseFilter {
|
|
24
|
+
export declare class ColorMatrix<Name extends string = 'ColorMatrix', OwnProps extends object = ColorMatrixOwnProps> extends BaseFilter<Name, OwnProps> {
|
|
22
25
|
/**
|
|
23
26
|
* Colormatrix for pixels.
|
|
24
27
|
* array of 20 floats. Numbers in positions 4, 9, 14, 19 loose meaning
|
|
@@ -27,17 +30,17 @@ export declare class ColorMatrix extends BaseFilter {
|
|
|
27
30
|
* @param {Array} matrix array of 20 numbers.
|
|
28
31
|
* @default
|
|
29
32
|
*/
|
|
30
|
-
matrix:
|
|
33
|
+
matrix: ColorMatrixOwnProps['matrix'];
|
|
31
34
|
/**
|
|
32
35
|
* Lock the colormatrix on the color part, skipping alpha, mainly for non webgl scenario
|
|
33
36
|
* to save some calculation
|
|
34
37
|
* @type Boolean
|
|
35
38
|
* @default true
|
|
36
39
|
*/
|
|
37
|
-
colorsOnly:
|
|
40
|
+
colorsOnly: ColorMatrixOwnProps['colorsOnly'];
|
|
38
41
|
static type: string;
|
|
39
|
-
static defaults:
|
|
40
|
-
|
|
42
|
+
static defaults: ColorMatrixOwnProps;
|
|
43
|
+
static uniformLocations: string[];
|
|
41
44
|
getFragmentSource(): string;
|
|
42
45
|
/**
|
|
43
46
|
* Apply the ColorMatrix operation to a Uint8Array representing the pixels of an image.
|
|
@@ -46,13 +49,6 @@ export declare class ColorMatrix extends BaseFilter {
|
|
|
46
49
|
* @param {ImageData} options.imageData The Uint8Array to be filtered.
|
|
47
50
|
*/
|
|
48
51
|
applyTo2d(options: T2DPipelineState): void;
|
|
49
|
-
/**
|
|
50
|
-
* Return WebGL uniform locations for this filter's shader.
|
|
51
|
-
*
|
|
52
|
-
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
53
|
-
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
54
|
-
*/
|
|
55
|
-
getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
|
|
56
52
|
/**
|
|
57
53
|
* Send data from this filter to its shader program's uniforms.
|
|
58
54
|
*
|
|
@@ -60,5 +56,11 @@ export declare class ColorMatrix extends BaseFilter {
|
|
|
60
56
|
* @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
|
|
61
57
|
*/
|
|
62
58
|
sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
|
|
59
|
+
toObject(): {
|
|
60
|
+
type: Name;
|
|
61
|
+
} & OwnProps & {
|
|
62
|
+
matrix: TMatColorMatrix;
|
|
63
|
+
};
|
|
63
64
|
}
|
|
65
|
+
export {};
|
|
64
66
|
//# sourceMappingURL=ColorMatrix.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorMatrix.d.ts","sourceRoot":"","sources":["../../../src/filters/ColorMatrix.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ColorMatrix.d.ts","sourceRoot":"","sources":["../../../src/filters/ColorMatrix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAIpB,KAAK,mBAAmB,GAAG;IACzB,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,mBAGtC,CAAC;AAEF;;;;;;;;;;;;;;;KAeK;AACL,qBAAa,WAAW,CACtB,IAAI,SAAS,MAAM,GAAG,aAAa,EACnC,QAAQ,SAAS,MAAM,GAAG,mBAAmB,CAC7C,SAAQ,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC;IAClC;;;;;;;OAOG;IACK,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAE9C;;;;;OAKG;IACK,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAEtD,MAAM,CAAC,IAAI,SAAiB;IAE5B,MAAM,CAAC,QAAQ,sBAA4B;IAE3C,MAAM,CAAC,gBAAgB,WAAkC;IAEzD,iBAAiB,IAAI,MAAM;IAI3B;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,gBAAgB;IA0BnC;;;;;OAKG;IACH,eAAe,CACb,EAAE,EAAE,qBAAqB,EACzB,gBAAgB,EAAE,wBAAwB;IA0B5C,QAAQ;;;;;CAMT"}
|