fabric 5.3.0 → 6.0.0-beta3
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/.babelrc +11 -0
- package/.babelrcAlt +19 -0
- package/.browserslistrc +5 -0
- package/.eslintignore +3 -0
- package/.eslintrc.js +43 -0
- package/.eslintrc.json +38 -46
- package/.eslintrc_tests +12 -0
- package/.gitattributes +2 -0
- package/.gitpod.yml +17 -1
- package/.prettierignore +19 -0
- package/.prettierrc +4 -0
- package/CHANGELOG.md +532 -189
- package/CONTRIBUTING.md +224 -59
- package/README.md +200 -235
- package/bower.json +1 -3
- package/dist/fabric.d.ts +42 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +27582 -0
- package/dist/index.js.map +1 -0
- package/dist/index.min.js +1 -0
- package/dist/index.mjs +27519 -0
- package/dist/index.mjs.map +1 -0
- package/dist/index.node.cjs +27663 -0
- package/dist/index.node.cjs.map +1 -0
- package/dist/index.node.d.ts +14 -0
- package/dist/index.node.mjs +27606 -0
- package/dist/index.node.mjs.map +1 -0
- package/dist/src/ClassRegistry.d.ts +13 -0
- package/dist/src/Collection.d.ts +136 -0
- package/dist/src/CommonMethods.d.ts +32 -0
- package/dist/src/EventTypeDefs.d.ts +227 -0
- package/dist/src/Intersection.d.ts +112 -0
- package/dist/src/Observable.d.ts +60 -0
- package/dist/src/Pattern.d.ts +113 -0
- package/dist/src/Point.d.ts +232 -0
- package/dist/src/Shadow.d.ts +97 -0
- package/dist/src/brushes/BaseBrush.d.ts +105 -0
- package/dist/src/brushes/CircleBrush.d.ts +49 -0
- package/dist/src/brushes/PatternBrush.d.ts +23 -0
- package/dist/src/brushes/PencilBrush.d.ts +92 -0
- package/dist/src/brushes/SprayBrush.d.ts +79 -0
- package/dist/src/cache.d.ts +47 -0
- package/dist/src/canvas/Canvas.d.ts +548 -0
- package/dist/src/canvas/SelectableCanvas.d.ts +754 -0
- package/dist/src/canvas/StaticCanvas.d.ts +778 -0
- package/dist/src/canvas/TextEditingManager.d.ts +17 -0
- package/dist/src/canvas/canvas_gestures.mixin.d.ts +2 -0
- package/dist/src/color/Color.d.ts +174 -0
- package/dist/src/color/color_map.d.ts +155 -0
- package/dist/src/color/constants.d.ts +22 -0
- package/dist/src/color/util.d.ts +12 -0
- package/dist/src/config.d.ts +115 -0
- package/dist/src/constants.d.ts +14 -0
- package/dist/src/controls/Control.d.ts +228 -0
- package/dist/src/controls/changeWidth.d.ts +13 -0
- package/dist/src/controls/commonControls.d.ts +28 -0
- package/dist/src/controls/controlRendering.d.ts +29 -0
- package/dist/src/controls/drag.d.ts +12 -0
- package/dist/src/controls/index.d.ts +13 -0
- package/dist/src/controls/polyControl.d.ts +5 -0
- package/dist/src/controls/rotate.d.ts +12 -0
- package/dist/src/controls/scale.d.ts +47 -0
- package/dist/src/controls/scaleSkew.d.ts +39 -0
- package/dist/src/controls/skew.d.ts +33 -0
- package/dist/src/controls/util.d.ts +41 -0
- package/dist/src/controls/wrapWithFireEvent.d.ts +8 -0
- package/dist/src/controls/wrapWithFixedAnchor.d.ts +9 -0
- package/dist/src/env/browser.d.ts +3 -0
- package/dist/src/env/index.d.ts +15 -0
- package/dist/src/env/node.d.ts +5 -0
- package/dist/src/env/types.d.ts +15 -0
- package/dist/src/filters/BaseFilter.d.ts +153 -0
- package/dist/src/filters/BlendColor.d.ts +80 -0
- package/dist/src/filters/BlendImage.d.ts +92 -0
- package/dist/src/filters/Blur.d.ts +51 -0
- package/dist/src/filters/Boilerplate.d.ts +48 -0
- package/dist/src/filters/Brightness.d.ts +47 -0
- package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
- package/dist/src/filters/ColorMatrix.d.ts +63 -0
- package/dist/src/filters/ColorMatrixFilters.d.ts +545 -0
- package/dist/src/filters/Composed.d.ts +45 -0
- package/dist/src/filters/Contrast.d.ts +45 -0
- package/dist/src/filters/Convolute.d.ts +82 -0
- package/dist/src/filters/FilterBackend.d.ts +14 -0
- package/dist/src/filters/GLProbes/GLProbe.d.ts +11 -0
- package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +11 -0
- package/dist/src/filters/GLProbes/WebGLProbe.d.ts +20 -0
- package/dist/src/filters/Gamma.d.ts +54 -0
- package/dist/src/filters/Grayscale.d.ts +46 -0
- package/dist/src/filters/HueRotation.d.ts +24 -0
- package/dist/src/filters/Invert.d.ts +55 -0
- package/dist/src/filters/Noise.d.ts +54 -0
- package/dist/src/filters/Pixelate.d.ts +44 -0
- package/dist/src/filters/RemoveColor.d.ts +63 -0
- package/dist/src/filters/Resize.d.ts +136 -0
- package/dist/src/filters/Saturation.d.ts +48 -0
- package/dist/src/filters/Vibrance.d.ts +48 -0
- package/dist/src/filters/WebGLFilterBackend.d.ts +126 -0
- package/dist/src/filters/filters.d.ts +21 -0
- package/dist/src/filters/index.d.ts +5 -0
- package/dist/src/filters/shaders/baseFilter.d.ts +4 -0
- package/dist/src/filters/shaders/blendColor.d.ts +13 -0
- package/dist/src/filters/shaders/blendImage.d.ts +3 -0
- package/dist/src/filters/shaders/blur.d.ts +2 -0
- package/dist/src/filters/shaders/brightness.d.ts +2 -0
- package/dist/src/filters/shaders/colorMatrix.d.ts +2 -0
- package/dist/src/filters/shaders/constrast.d.ts +2 -0
- package/dist/src/filters/shaders/convolute.d.ts +11 -0
- package/dist/src/filters/shaders/gamma.d.ts +2 -0
- package/dist/src/filters/shaders/grayscale.d.ts +3 -0
- package/dist/src/filters/shaders/invert.d.ts +2 -0
- package/dist/src/filters/shaders/noise.d.ts +2 -0
- package/dist/src/filters/shaders/pixelate.d.ts +2 -0
- package/dist/src/filters/shaders/removeColor.d.ts +2 -0
- package/dist/src/filters/shaders/saturation.d.ts +2 -0
- package/dist/src/filters/shaders/vibrance.d.ts +2 -0
- package/dist/src/filters/typedefs.d.ts +49 -0
- package/dist/src/gradient/Gradient.d.ts +149 -0
- package/dist/src/gradient/constants.d.ts +15 -0
- package/dist/src/gradient/parser/index.d.ts +4 -0
- package/dist/src/gradient/parser/misc.d.ts +4 -0
- package/dist/src/gradient/parser/parseColorStops.d.ts +3 -0
- package/dist/src/gradient/parser/parseCoords.d.ts +17 -0
- package/dist/src/gradient/typedefs.d.ts +93 -0
- package/dist/src/mixins/eraser_brush.mixin.d.ts +2 -0
- package/dist/src/parkinglot/canvas_animation.mixin.d.ts +2 -0
- package/dist/src/parkinglot/straighten.d.ts +2 -0
- package/dist/src/parser/applyViewboxTransform.d.ts +5 -0
- package/dist/src/parser/attributes.d.ts +6 -0
- package/dist/src/parser/constants.d.ts +53 -0
- package/dist/src/parser/doesSomeParentMatch.d.ts +2 -0
- package/dist/src/parser/elementById.d.ts +6 -0
- package/dist/src/parser/elementMatchesRule.d.ts +5 -0
- package/dist/src/parser/elements_parser.d.ts +3 -0
- package/dist/src/parser/getCSSRules.d.ts +7 -0
- package/dist/src/parser/getGlobalStylesForElement.d.ts +5 -0
- package/dist/src/parser/getGradientDefs.d.ts +7 -0
- package/dist/src/parser/getMultipleNodes.d.ts +2 -0
- package/dist/src/parser/getSvgRegex.d.ts +2 -0
- package/dist/src/parser/hasAncestorWithNodeName.d.ts +2 -0
- package/dist/src/parser/index.d.ts +10 -0
- package/dist/src/parser/loadSVGFromString.d.ts +12 -0
- package/dist/src/parser/loadSVGFromURL.d.ts +13 -0
- package/dist/src/parser/normalizeAttr.d.ts +2 -0
- package/dist/src/parser/normalizeValue.d.ts +2 -0
- package/dist/src/parser/parseAttributes.d.ts +9 -0
- package/dist/src/parser/parseElements.d.ts +11 -0
- package/dist/src/parser/parseFontDeclaration.d.ts +10 -0
- package/dist/src/parser/parsePointsAttribute.d.ts +12 -0
- package/dist/src/parser/parseSVGDocument.d.ts +15 -0
- package/dist/src/parser/parseStyleAttribute.d.ts +9 -0
- package/dist/src/parser/parseStyleObject.d.ts +2 -0
- package/dist/src/parser/parseStyleString.d.ts +2 -0
- package/dist/src/parser/parseTransformAttribute.d.ts +10 -0
- package/dist/src/parser/parseUseDirectives.d.ts +2 -0
- package/dist/src/parser/percent.d.ts +9 -0
- package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
- package/dist/src/parser/rotateMatrix.d.ts +2 -0
- package/dist/src/parser/scaleMatrix.d.ts +2 -0
- package/dist/src/parser/selectorMatches.d.ts +2 -0
- package/dist/src/parser/setStrokeFillOpacity.d.ts +6 -0
- package/dist/src/parser/skewMatrix.d.ts +2 -0
- package/dist/src/parser/translateMatrix.d.ts +2 -0
- package/dist/src/shapes/ActiveSelection.d.ts +82 -0
- package/dist/src/shapes/Circle.d.ts +99 -0
- package/dist/src/shapes/Ellipse.d.ts +84 -0
- package/dist/src/shapes/Group.d.ts +408 -0
- package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
- package/dist/src/shapes/IText/IText.d.ts +335 -0
- package/dist/src/shapes/IText/ITextBehavior.d.ts +287 -0
- package/dist/src/shapes/IText/ITextClickBehavior.d.ts +83 -0
- package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +195 -0
- package/dist/src/shapes/IText/constants.d.ts +13 -0
- package/dist/src/shapes/Image.d.ts +311 -0
- package/dist/src/shapes/Line.d.ts +126 -0
- package/dist/src/shapes/Object/AnimatableObject.d.ts +33 -0
- package/dist/src/shapes/Object/FabricObject.d.ts +11 -0
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +74 -0
- package/dist/src/shapes/Object/InteractiveObject.d.ts +296 -0
- package/dist/src/shapes/Object/Object.d.ts +594 -0
- package/dist/src/shapes/Object/ObjectGeometry.d.ts +327 -0
- package/dist/src/shapes/Object/ObjectOrigin.d.ts +109 -0
- package/dist/src/shapes/Object/StackedObject.d.ts +72 -0
- package/dist/src/shapes/Object/defaultValues.d.ts +76 -0
- package/dist/src/shapes/Object/types/BaseProps.d.ts +84 -0
- package/dist/src/shapes/Object/types/BorderProps.d.ts +37 -0
- package/dist/src/shapes/Object/types/ControlProps.d.ts +62 -0
- package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +96 -0
- package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +80 -0
- package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +51 -0
- package/dist/src/shapes/Object/types/ObjectProps.d.ts +42 -0
- package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +66 -0
- package/dist/src/shapes/Object/types/index.d.ts +6 -0
- package/dist/src/shapes/Path.d.ts +130 -0
- package/dist/src/shapes/Polygon.d.ts +9 -0
- package/dist/src/shapes/Polyline.d.ts +140 -0
- package/dist/src/shapes/Rect.d.ts +76 -0
- package/dist/src/shapes/Text/StyledText.d.ts +119 -0
- package/dist/src/shapes/Text/Text.d.ts +673 -0
- package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +32 -0
- package/dist/src/shapes/Text/constants.d.ts +7 -0
- package/dist/src/shapes/Textbox.d.ts +185 -0
- package/dist/src/shapes/Triangle.d.ts +25 -0
- package/dist/src/typedefs.d.ts +90 -0
- package/dist/src/util/animation/AnimationBase.d.ts +54 -0
- package/dist/src/util/animation/AnimationFrameProvider.d.ts +3 -0
- package/dist/src/util/animation/AnimationRegistry.d.ts +29 -0
- package/dist/src/util/animation/ArrayAnimation.d.ts +10 -0
- package/dist/src/util/animation/ColorAnimation.d.ts +11 -0
- package/dist/src/util/animation/ValueAnimation.d.ts +10 -0
- package/dist/src/util/animation/animate.d.ts +37 -0
- package/dist/src/util/animation/easing.d.ts +130 -0
- package/dist/src/util/animation/types.d.ts +87 -0
- package/dist/src/util/applyMixins.d.ts +8 -0
- package/dist/src/util/dom_event.d.ts +5 -0
- package/dist/src/util/dom_misc.d.ts +39 -0
- package/dist/src/util/dom_request.d.ts +14 -0
- package/dist/src/util/dom_style.d.ts +7 -0
- package/dist/src/util/fireEvent.d.ts +3 -0
- package/dist/src/util/index.d.ts +35 -0
- package/dist/src/util/internals/cloneDeep.d.ts +2 -0
- package/dist/src/util/internals/getRandomInt.d.ts +8 -0
- package/dist/src/util/internals/ifNaN.d.ts +8 -0
- package/dist/src/util/internals/index.d.ts +4 -0
- package/dist/src/util/internals/removeFromArray.d.ts +9 -0
- package/dist/src/util/internals/uid.d.ts +2 -0
- package/dist/src/util/lang_string.d.ts +22 -0
- package/dist/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
- package/dist/src/util/misc/capValue.d.ts +2 -0
- package/dist/src/util/misc/cos.d.ts +10 -0
- package/dist/src/util/misc/dom.d.ts +28 -0
- package/dist/src/util/misc/findScaleTo.d.ts +29 -0
- package/dist/src/util/misc/groupSVGElements.d.ts +9 -0
- package/dist/src/util/misc/isTransparent.d.ts +11 -0
- package/dist/src/util/misc/matrix.d.ts +92 -0
- package/dist/src/util/misc/mergeClipPaths.d.ts +23 -0
- package/dist/src/util/misc/objectEnlive.d.ts +56 -0
- package/dist/src/util/misc/objectTransforms.d.ts +68 -0
- package/dist/src/util/misc/pick.d.ts +9 -0
- package/dist/src/util/misc/planeChange.d.ts +84 -0
- package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +51 -0
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +81 -0
- package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +25 -0
- package/dist/src/util/misc/projectStroke/index.d.ts +11 -0
- package/dist/src/util/misc/projectStroke/types.d.ts +23 -0
- package/dist/src/util/misc/radiansDegreesConversion.d.ts +14 -0
- package/dist/src/util/misc/resolveOrigin.d.ts +9 -0
- package/dist/src/util/misc/rotatePoint.d.ts +12 -0
- package/dist/src/util/misc/sin.d.ts +10 -0
- package/dist/src/util/misc/svgParsing.d.ts +53 -0
- package/dist/src/util/misc/textStyles.d.ts +32 -0
- package/dist/src/util/misc/toFixed.d.ts +8 -0
- package/dist/src/util/misc/vectors.d.ts +57 -0
- package/dist/src/util/path/index.d.ts +96 -0
- package/dist/src/util/path/regex.d.ts +3 -0
- package/dist/src/util/path/typechecks.d.ts +24 -0
- package/dist/src/util/path/typedefs.d.ts +220 -0
- package/dist/src/util/transform_matrix_removal.d.ts +14 -0
- package/dist/src/util/types.d.ts +19 -0
- package/fabric.ts +51 -0
- package/index.node.ts +37 -0
- package/index.ts +1 -0
- package/package.json +100 -40
- package/publish.js +0 -26
- package/rollup.config.mjs +91 -0
- package/rollup.test.config.js +24 -0
- package/scripts/build.mjs +50 -0
- package/scripts/buildLock.mjs +115 -0
- package/scripts/buildReporter.mjs +15 -0
- package/scripts/buildStats.mjs +139 -0
- package/scripts/dirname.mjs +14 -0
- package/scripts/git.mjs +36 -0
- package/scripts/index.mjs +564 -0
- package/scripts/sandbox.mjs +149 -0
- package/src/ClassRegistry.ts +56 -0
- package/src/Collection.ts +346 -0
- package/src/CommonMethods.ts +63 -0
- package/src/EventTypeDefs.ts +296 -0
- package/src/Intersection.ts +302 -0
- package/src/Observable.ts +181 -0
- package/src/Pattern.ts +227 -0
- package/src/Point.ts +388 -0
- package/src/Shadow.ts +214 -0
- package/src/brushes/{base_brush.class.js → BaseBrush.ts} +65 -42
- package/src/brushes/CircleBrush.ts +145 -0
- package/src/brushes/PatternBrush.ts +70 -0
- package/src/brushes/PencilBrush.ts +300 -0
- package/src/brushes/SprayBrush.ts +219 -0
- package/src/cache.ts +90 -0
- package/src/canvas/Canvas.ts +1607 -0
- package/src/canvas/SelectableCanvas.ts +1608 -0
- package/src/canvas/StaticCanvas.ts +1734 -0
- package/src/canvas/TextEditingManager.ts +48 -0
- package/src/canvas/canvas_gestures.mixin.ts +207 -0
- package/src/color/Color.ts +404 -0
- package/src/color/color_map.ts +154 -0
- package/src/color/constants.ts +26 -0
- package/src/color/util.ts +32 -0
- package/src/config.ts +159 -0
- package/src/constants.ts +20 -0
- package/src/controls/Control.ts +380 -0
- package/src/controls/changeWidth.ts +52 -0
- package/src/controls/commonControls.ts +105 -0
- package/src/controls/controlRendering.ts +138 -0
- package/src/controls/drag.ts +31 -0
- package/src/controls/index.ts +22 -0
- package/src/controls/polyControl.ts +135 -0
- package/src/controls/rotate.ts +87 -0
- package/src/controls/scale.ts +277 -0
- package/src/controls/scaleSkew.ts +92 -0
- package/src/controls/skew.ts +242 -0
- package/src/controls/util.ts +154 -0
- package/src/controls/wrapWithFireEvent.ts +25 -0
- package/src/controls/wrapWithFixedAnchor.ts +20 -0
- package/src/env/browser.ts +32 -0
- package/src/env/index.ts +24 -0
- package/src/env/node.ts +56 -0
- package/src/env/types.ts +15 -0
- package/src/filters/{base_filter.class.js → BaseFilter.ts} +192 -151
- package/src/filters/BlendColor.ts +217 -0
- package/src/filters/BlendImage.ts +228 -0
- package/src/filters/Blur.ts +179 -0
- package/src/filters/Boilerplate.ts +94 -0
- package/src/filters/Brightness.ts +83 -0
- package/src/filters/Canvas2dFilterBackend.ts +65 -0
- package/src/filters/ColorMatrix.ts +145 -0
- package/src/filters/ColorMatrixFilters.ts +77 -0
- package/src/filters/Composed.ts +76 -0
- package/src/filters/Contrast.ts +82 -0
- package/src/filters/Convolute.ts +184 -0
- package/src/filters/FilterBackend.ts +34 -0
- package/src/filters/GLProbes/GLProbe.ts +11 -0
- package/src/filters/GLProbes/NodeGLProbe.ts +15 -0
- package/src/filters/GLProbes/WebGLProbe.ts +46 -0
- package/src/filters/Gamma.ts +110 -0
- package/src/filters/Grayscale.ts +102 -0
- package/src/filters/HueRotation.ts +62 -0
- package/src/filters/Invert.ts +99 -0
- package/src/filters/Noise.ts +94 -0
- package/src/filters/Pixelate.ts +96 -0
- package/src/filters/RemoveColor.ts +135 -0
- package/src/filters/Resize.ts +538 -0
- package/src/filters/Saturation.ts +87 -0
- package/src/filters/Vibrance.ts +88 -0
- package/src/filters/WebGLFilterBackend.ts +430 -0
- package/src/filters/filters.ts +28 -0
- package/src/filters/index.ts +5 -0
- package/src/filters/shaders/baseFilter.ts +19 -0
- package/src/filters/shaders/blendColor.ts +33 -0
- package/src/filters/shaders/blendImage.ts +32 -0
- package/src/filters/shaders/blur.ts +24 -0
- package/src/filters/shaders/brightness.ts +11 -0
- package/src/filters/shaders/colorMatrix.ts +12 -0
- package/src/filters/shaders/constrast.ts +11 -0
- package/src/filters/shaders/convolute.ts +154 -0
- package/src/filters/shaders/gamma.ts +15 -0
- package/src/filters/shaders/grayscale.ts +36 -0
- package/src/filters/shaders/invert.ts +19 -0
- package/src/filters/shaders/noise.ts +16 -0
- package/src/filters/shaders/pixelate.ts +19 -0
- package/src/filters/shaders/removeColor.ts +13 -0
- package/src/filters/shaders/saturation.ts +15 -0
- package/src/filters/shaders/vibrance.ts +16 -0
- package/src/filters/typedefs.ts +65 -0
- package/src/gradient/Gradient.ts +406 -0
- package/src/gradient/constants.ts +12 -0
- package/src/gradient/parser/index.ts +3 -0
- package/src/gradient/parser/misc.ts +13 -0
- package/src/gradient/parser/parseColorStops.ts +56 -0
- package/src/gradient/parser/parseCoords.ts +73 -0
- package/src/gradient/typedefs.ts +104 -0
- package/src/mixins/{eraser_brush.mixin.js → eraser_brush.mixin.ts} +350 -239
- package/src/parkinglot/canvas_animation.mixin.ts +121 -0
- package/src/parkinglot/straighten.ts +58 -0
- package/src/parser/applyViewboxTransform.ts +157 -0
- package/src/parser/attributes.ts +25 -0
- package/src/parser/constants.ts +115 -0
- package/src/parser/doesSomeParentMatch.ts +19 -0
- package/src/parser/elementById.ts +21 -0
- package/src/parser/elementMatchesRule.ts +16 -0
- package/src/parser/elements_parser.ts +191 -0
- package/src/parser/getCSSRules.ts +62 -0
- package/src/parser/getGlobalStylesForElement.ts +19 -0
- package/src/parser/getGradientDefs.ts +31 -0
- package/src/parser/getMultipleNodes.ts +15 -0
- package/src/parser/getSvgRegex.ts +5 -0
- package/src/parser/hasAncestorWithNodeName.ts +14 -0
- package/src/parser/index.ts +9 -0
- package/src/parser/loadSVGFromString.ts +26 -0
- package/src/parser/loadSVGFromURL.ts +40 -0
- package/src/parser/normalizeAttr.ts +10 -0
- package/src/parser/normalizeValue.ts +63 -0
- package/src/parser/parseAttributes.ts +90 -0
- package/src/parser/parseElements.ts +28 -0
- package/src/parser/parseFontDeclaration.ts +44 -0
- package/src/parser/parsePointsAttribute.ts +34 -0
- package/src/parser/parseSVGDocument.ts +93 -0
- package/src/parser/parseStyleAttribute.ts +27 -0
- package/src/parser/parseStyleObject.ts +15 -0
- package/src/parser/parseStyleString.ts +16 -0
- package/src/parser/parseTransformAttribute.ts +155 -0
- package/src/parser/parseUseDirectives.ts +78 -0
- package/src/parser/percent.ts +27 -0
- package/src/parser/recursivelyParseGradientsXlink.ts +42 -0
- package/src/parser/rotateMatrix.ts +21 -0
- package/src/parser/scaleMatrix.ts +9 -0
- package/src/parser/selectorMatches.ts +25 -0
- package/src/parser/setStrokeFillOpacity.ts +40 -0
- package/src/parser/skewMatrix.ts +6 -0
- package/src/parser/translateMatrix.ts +8 -0
- package/src/shapes/ActiveSelection.ts +189 -0
- package/src/shapes/Circle.ts +242 -0
- package/src/shapes/Ellipse.ts +179 -0
- package/src/shapes/Group.ts +1100 -0
- package/src/shapes/IText/DraggableTextDelegate.ts +382 -0
- package/src/shapes/IText/IText.ts +693 -0
- package/src/shapes/IText/ITextBehavior.ts +1064 -0
- package/src/shapes/IText/ITextClickBehavior.ts +325 -0
- package/src/shapes/IText/ITextKeyBehavior.ts +685 -0
- package/src/shapes/IText/constants.ts +47 -0
- package/src/shapes/Image.ts +841 -0
- package/src/shapes/Line.ts +346 -0
- package/src/shapes/Object/AnimatableObject.ts +106 -0
- package/src/shapes/Object/FabricObject.ts +29 -0
- package/src/shapes/Object/FabricObjectSVGExportMixin.ts +277 -0
- package/src/shapes/Object/InteractiveObject.ts +672 -0
- package/src/shapes/Object/Object.ts +1561 -0
- package/src/shapes/Object/ObjectGeometry.ts +813 -0
- package/src/shapes/Object/ObjectOrigin.ts +276 -0
- package/src/shapes/Object/StackedObject.ts +206 -0
- package/src/shapes/Object/defaultValues.ts +108 -0
- package/src/shapes/Object/types/BaseProps.ts +96 -0
- package/src/shapes/Object/types/BorderProps.ts +40 -0
- package/src/shapes/Object/types/ControlProps.ts +69 -0
- package/src/shapes/Object/types/FabricObjectProps.ts +111 -0
- package/src/shapes/Object/types/FillStrokeProps.ts +90 -0
- package/src/shapes/Object/types/LockInteractionProps.ts +57 -0
- package/src/shapes/Object/types/ObjectProps.ts +46 -0
- package/src/shapes/Object/types/SerializedObjectProps.ts +73 -0
- package/src/shapes/Object/types/index.ts +8 -0
- package/src/shapes/Path.ts +416 -0
- package/src/shapes/Polygon.ts +20 -0
- package/src/shapes/Polyline.ts +359 -0
- package/src/shapes/Rect.ts +233 -0
- package/src/shapes/Text/StyledText.ts +329 -0
- package/src/shapes/Text/Text.ts +1884 -0
- package/src/shapes/Text/TextSVGExportMixin.ts +288 -0
- package/src/shapes/Text/constants.ts +91 -0
- package/src/shapes/Textbox.ts +477 -0
- package/src/shapes/Triangle.ts +60 -0
- package/src/typedefs.ts +115 -0
- package/src/util/animation/AnimationBase.ts +166 -0
- package/src/util/animation/AnimationFrameProvider.ts +9 -0
- package/src/util/animation/AnimationRegistry.ts +58 -0
- package/src/util/animation/ArrayAnimation.ts +27 -0
- package/src/util/animation/ColorAnimation.ts +74 -0
- package/src/util/animation/ValueAnimation.ts +29 -0
- package/src/util/animation/animate.ts +74 -0
- package/src/util/animation/easing.ts +327 -0
- package/src/util/animation/types.ts +136 -0
- package/src/util/applyMixins.ts +22 -0
- package/src/util/dom_event.ts +28 -0
- package/src/util/dom_misc.ts +121 -0
- package/src/util/dom_request.ts +64 -0
- package/src/util/dom_style.ts +20 -0
- package/src/util/fireEvent.ts +15 -0
- package/src/util/index.ts +102 -0
- package/src/util/internals/cloneDeep.ts +2 -0
- package/src/util/internals/getRandomInt.ts +8 -0
- package/src/util/internals/ifNaN.ts +9 -0
- package/src/util/internals/index.ts +3 -0
- package/src/util/internals/removeFromArray.ts +14 -0
- package/src/util/internals/uid.ts +3 -0
- package/src/util/lang_string.ts +79 -0
- package/src/util/misc/boundingBoxFromPoints.ts +37 -0
- package/src/util/misc/capValue.ts +2 -0
- package/src/util/misc/cos.ts +24 -0
- package/src/util/misc/dom.ts +50 -0
- package/src/util/misc/findScaleTo.ts +44 -0
- package/src/util/misc/groupSVGElements.ts +15 -0
- package/src/util/misc/isTransparent.ts +28 -0
- package/src/util/misc/matrix.ts +207 -0
- package/src/util/misc/mergeClipPaths.ts +40 -0
- package/src/util/misc/objectEnlive.ts +189 -0
- package/src/util/misc/objectTransforms.ts +129 -0
- package/src/util/misc/pick.ts +29 -0
- package/src/util/misc/planeChange.ts +136 -0
- package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +112 -0
- package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +226 -0
- package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +75 -0
- package/src/util/misc/projectStroke/index.ts +53 -0
- package/src/util/misc/projectStroke/types.ts +24 -0
- package/src/util/misc/radiansDegreesConversion.ts +18 -0
- package/src/util/misc/resolveOrigin.ts +22 -0
- package/src/util/misc/rotatePoint.ts +15 -0
- package/src/util/misc/sin.ts +26 -0
- package/src/util/misc/svgParsing.ts +181 -0
- package/src/util/misc/textStyles.ts +134 -0
- package/src/util/misc/toFixed.ts +8 -0
- package/src/util/misc/vectors.ts +82 -0
- package/src/util/path/index.ts +1038 -0
- package/src/util/path/regex.ts +41 -0
- package/src/util/path/typechecks.ts +145 -0
- package/src/util/path/typedefs.ts +305 -0
- package/src/util/transform_matrix_removal.ts +60 -0
- package/src/util/types.ts +78 -0
- package/tsconfig.json +106 -0
- package/HEADER.js +0 -203
- package/build.js +0 -287
- package/dist/fabric.js +0 -31187
- package/dist/fabric.min.js +0 -1
- package/old-travis-reference.yml +0 -97
- package/src/brushes/circle_brush.class.js +0 -144
- package/src/brushes/pattern_brush.class.js +0 -61
- package/src/brushes/pencil_brush.class.js +0 -310
- package/src/brushes/spray_brush.class.js +0 -219
- package/src/canvas.class.js +0 -1312
- package/src/color.class.js +0 -636
- package/src/control.class.js +0 -339
- package/src/controls.actions.js +0 -740
- package/src/controls.render.js +0 -99
- package/src/elements_parser.js +0 -152
- package/src/filters/2d_backend.class.js +0 -65
- package/src/filters/blendcolor_filter.class.js +0 -251
- package/src/filters/blendimage_filter.class.js +0 -247
- package/src/filters/blur_filter.class.js +0 -217
- package/src/filters/brightness_filter.class.js +0 -113
- package/src/filters/colormatrix_filter.class.js +0 -159
- package/src/filters/composed_filter.class.js +0 -72
- package/src/filters/contrast_filter.class.js +0 -113
- package/src/filters/convolute_filter.class.js +0 -352
- package/src/filters/filter_boilerplate.js +0 -111
- package/src/filters/filter_generator.js +0 -85
- package/src/filters/gamma_filter.class.js +0 -136
- package/src/filters/grayscale_filter.class.js +0 -154
- package/src/filters/hue_rotation.class.js +0 -107
- package/src/filters/invert_filter.class.js +0 -111
- package/src/filters/noise_filter.class.js +0 -134
- package/src/filters/pixelate_filter.class.js +0 -137
- package/src/filters/removecolor_filter.class.js +0 -173
- package/src/filters/resize_filter.class.js +0 -490
- package/src/filters/saturate_filter.class.js +0 -119
- package/src/filters/vibrance_filter.class.js +0 -122
- package/src/filters/webgl_backend.class.js +0 -396
- package/src/globalFabric.js +0 -4
- package/src/gradient.class.js +0 -490
- package/src/intersection.class.js +0 -172
- package/src/log.js +0 -11
- package/src/mixins/animation.mixin.js +0 -231
- package/src/mixins/canvas_dataurl_exporter.mixin.js +0 -97
- package/src/mixins/canvas_events.mixin.js +0 -974
- package/src/mixins/canvas_gestures.mixin.js +0 -149
- package/src/mixins/canvas_grouping.mixin.js +0 -177
- package/src/mixins/canvas_serialization.mixin.js +0 -228
- package/src/mixins/collection.mixin.js +0 -170
- package/src/mixins/default_controls.js +0 -114
- package/src/mixins/itext.svg_export.js +0 -241
- package/src/mixins/itext_behavior.mixin.js +0 -940
- package/src/mixins/itext_click_behavior.mixin.js +0 -278
- package/src/mixins/itext_key_behavior.mixin.js +0 -694
- package/src/mixins/object.svg_export.js +0 -258
- package/src/mixins/object_geometry.mixin.js +0 -683
- package/src/mixins/object_interactivity.mixin.js +0 -314
- package/src/mixins/object_origin.mixin.js +0 -255
- package/src/mixins/object_stacking.mixin.js +0 -80
- package/src/mixins/object_straightening.mixin.js +0 -80
- package/src/mixins/observable.mixin.js +0 -141
- package/src/mixins/shared_methods.mixin.js +0 -94
- package/src/mixins/stateful.mixin.js +0 -107
- package/src/mixins/text_style.mixin.js +0 -324
- package/src/parser.js +0 -1090
- package/src/pattern.class.js +0 -189
- package/src/point.class.js +0 -337
- package/src/shadow.class.js +0 -195
- package/src/shapes/active_selection.class.js +0 -155
- package/src/shapes/circle.class.js +0 -210
- package/src/shapes/ellipse.class.js +0 -181
- package/src/shapes/group.class.js +0 -593
- package/src/shapes/image.class.js +0 -764
- package/src/shapes/itext.class.js +0 -526
- package/src/shapes/line.class.js +0 -324
- package/src/shapes/object.class.js +0 -2008
- package/src/shapes/path.class.js +0 -384
- package/src/shapes/polygon.class.js +0 -81
- package/src/shapes/polyline.class.js +0 -268
- package/src/shapes/rect.class.js +0 -187
- package/src/shapes/text.class.js +0 -1696
- package/src/shapes/textbox.class.js +0 -461
- package/src/shapes/triangle.class.js +0 -93
- package/src/static_canvas.class.js +0 -1881
- package/src/util/anim_ease.js +0 -398
- package/src/util/animate.js +0 -254
- package/src/util/animate_color.js +0 -74
- package/src/util/dom_event.js +0 -50
- package/src/util/dom_misc.js +0 -300
- package/src/util/dom_request.js +0 -54
- package/src/util/dom_style.js +0 -70
- package/src/util/lang_array.js +0 -94
- package/src/util/lang_class.js +0 -115
- package/src/util/lang_object.js +0 -75
- package/src/util/lang_string.js +0 -110
- package/src/util/misc.js +0 -1330
- package/src/util/named_accessors.mixin.js +0 -428
- package/src/util/path.js +0 -829
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
(function(global) {
|
|
2
|
-
|
|
3
|
-
'use strict';
|
|
4
|
-
|
|
5
|
-
var fabric = global.fabric || (global.fabric = { }),
|
|
6
|
-
filters = fabric.Image.filters,
|
|
7
|
-
createClass = fabric.util.createClass;
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Color Matrix filter class
|
|
11
|
-
* @class fabric.Image.filters.ColorMatrix
|
|
12
|
-
* @memberOf fabric.Image.filters
|
|
13
|
-
* @extends fabric.Image.filters.BaseFilter
|
|
14
|
-
* @see {@link fabric.Image.filters.ColorMatrix#initialize} for constructor definition
|
|
15
|
-
* @see {@link http://fabricjs.com/image-filters|ImageFilters demo}
|
|
16
|
-
* @see {@Link http://www.webwasp.co.uk/tutorials/219/Color_Matrix_Filter.php}
|
|
17
|
-
* @see {@Link http://phoboslab.org/log/2013/11/fast-image-filters-with-webgl}
|
|
18
|
-
* @example <caption>Kodachrome filter</caption>
|
|
19
|
-
* var filter = new fabric.Image.filters.ColorMatrix({
|
|
20
|
-
* matrix: [
|
|
21
|
-
1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,
|
|
22
|
-
-0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,
|
|
23
|
-
-0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,
|
|
24
|
-
0, 0, 0, 1, 0
|
|
25
|
-
]
|
|
26
|
-
* });
|
|
27
|
-
* object.filters.push(filter);
|
|
28
|
-
* object.applyFilters();
|
|
29
|
-
*/
|
|
30
|
-
filters.ColorMatrix = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.ColorMatrix.prototype */ {
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Filter type
|
|
34
|
-
* @param {String} type
|
|
35
|
-
* @default
|
|
36
|
-
*/
|
|
37
|
-
type: 'ColorMatrix',
|
|
38
|
-
|
|
39
|
-
fragmentSource: 'precision highp float;\n' +
|
|
40
|
-
'uniform sampler2D uTexture;\n' +
|
|
41
|
-
'varying vec2 vTexCoord;\n' +
|
|
42
|
-
'uniform mat4 uColorMatrix;\n' +
|
|
43
|
-
'uniform vec4 uConstants;\n' +
|
|
44
|
-
'void main() {\n' +
|
|
45
|
-
'vec4 color = texture2D(uTexture, vTexCoord);\n' +
|
|
46
|
-
'color *= uColorMatrix;\n' +
|
|
47
|
-
'color += uConstants;\n' +
|
|
48
|
-
'gl_FragColor = color;\n' +
|
|
49
|
-
'}',
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Colormatrix for pixels.
|
|
53
|
-
* array of 20 floats. Numbers in positions 4, 9, 14, 19 loose meaning
|
|
54
|
-
* outside the -1, 1 range.
|
|
55
|
-
* 0.0039215686 is the part of 1 that get translated to 1 in 2d
|
|
56
|
-
* @param {Array} matrix array of 20 numbers.
|
|
57
|
-
* @default
|
|
58
|
-
*/
|
|
59
|
-
matrix: [
|
|
60
|
-
1, 0, 0, 0, 0,
|
|
61
|
-
0, 1, 0, 0, 0,
|
|
62
|
-
0, 0, 1, 0, 0,
|
|
63
|
-
0, 0, 0, 1, 0
|
|
64
|
-
],
|
|
65
|
-
|
|
66
|
-
mainParameter: 'matrix',
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Lock the colormatrix on the color part, skipping alpha, mainly for non webgl scenario
|
|
70
|
-
* to save some calculation
|
|
71
|
-
* @type Boolean
|
|
72
|
-
* @default true
|
|
73
|
-
*/
|
|
74
|
-
colorsOnly: true,
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Constructor
|
|
78
|
-
* @param {Object} [options] Options object
|
|
79
|
-
*/
|
|
80
|
-
initialize: function(options) {
|
|
81
|
-
this.callSuper('initialize', options);
|
|
82
|
-
// create a new array instead mutating the prototype with push
|
|
83
|
-
this.matrix = this.matrix.slice(0);
|
|
84
|
-
},
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Apply the ColorMatrix operation to a Uint8Array representing the pixels of an image.
|
|
88
|
-
*
|
|
89
|
-
* @param {Object} options
|
|
90
|
-
* @param {ImageData} options.imageData The Uint8Array to be filtered.
|
|
91
|
-
*/
|
|
92
|
-
applyTo2d: function(options) {
|
|
93
|
-
var imageData = options.imageData,
|
|
94
|
-
data = imageData.data,
|
|
95
|
-
iLen = data.length,
|
|
96
|
-
m = this.matrix,
|
|
97
|
-
r, g, b, a, i, colorsOnly = this.colorsOnly;
|
|
98
|
-
|
|
99
|
-
for (i = 0; i < iLen; i += 4) {
|
|
100
|
-
r = data[i];
|
|
101
|
-
g = data[i + 1];
|
|
102
|
-
b = data[i + 2];
|
|
103
|
-
if (colorsOnly) {
|
|
104
|
-
data[i] = r * m[0] + g * m[1] + b * m[2] + m[4] * 255;
|
|
105
|
-
data[i + 1] = r * m[5] + g * m[6] + b * m[7] + m[9] * 255;
|
|
106
|
-
data[i + 2] = r * m[10] + g * m[11] + b * m[12] + m[14] * 255;
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
a = data[i + 3];
|
|
110
|
-
data[i] = r * m[0] + g * m[1] + b * m[2] + a * m[3] + m[4] * 255;
|
|
111
|
-
data[i + 1] = r * m[5] + g * m[6] + b * m[7] + a * m[8] + m[9] * 255;
|
|
112
|
-
data[i + 2] = r * m[10] + g * m[11] + b * m[12] + a * m[13] + m[14] * 255;
|
|
113
|
-
data[i + 3] = r * m[15] + g * m[16] + b * m[17] + a * m[18] + m[19] * 255;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* Return WebGL uniform locations for this filter's shader.
|
|
120
|
-
*
|
|
121
|
-
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
122
|
-
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
123
|
-
*/
|
|
124
|
-
getUniformLocations: function(gl, program) {
|
|
125
|
-
return {
|
|
126
|
-
uColorMatrix: gl.getUniformLocation(program, 'uColorMatrix'),
|
|
127
|
-
uConstants: gl.getUniformLocation(program, 'uConstants'),
|
|
128
|
-
};
|
|
129
|
-
},
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Send data from this filter to its shader program's uniforms.
|
|
133
|
-
*
|
|
134
|
-
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
135
|
-
* @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
|
|
136
|
-
*/
|
|
137
|
-
sendUniformData: function(gl, uniformLocations) {
|
|
138
|
-
var m = this.matrix,
|
|
139
|
-
matrix = [
|
|
140
|
-
m[0], m[1], m[2], m[3],
|
|
141
|
-
m[5], m[6], m[7], m[8],
|
|
142
|
-
m[10], m[11], m[12], m[13],
|
|
143
|
-
m[15], m[16], m[17], m[18]
|
|
144
|
-
],
|
|
145
|
-
constants = [m[4], m[9], m[14], m[19]];
|
|
146
|
-
gl.uniformMatrix4fv(uniformLocations.uColorMatrix, false, matrix);
|
|
147
|
-
gl.uniform4fv(uniformLocations.uConstants, constants);
|
|
148
|
-
},
|
|
149
|
-
});
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Returns filter instance from an object representation
|
|
153
|
-
* @static
|
|
154
|
-
* @param {Object} object Object to create an instance from
|
|
155
|
-
* @param {function} [callback] function to invoke after filter creation
|
|
156
|
-
* @return {fabric.Image.filters.ColorMatrix} Instance of fabric.Image.filters.ColorMatrix
|
|
157
|
-
*/
|
|
158
|
-
fabric.Image.filters.ColorMatrix.fromObject = fabric.Image.filters.BaseFilter.fromObject;
|
|
159
|
-
})(typeof exports !== 'undefined' ? exports : this);
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
(function(global) {
|
|
2
|
-
|
|
3
|
-
'use strict';
|
|
4
|
-
|
|
5
|
-
var fabric = global.fabric || (global.fabric = { }),
|
|
6
|
-
filters = fabric.Image.filters,
|
|
7
|
-
createClass = fabric.util.createClass;
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* A container class that knows how to apply a sequence of filters to an input image.
|
|
11
|
-
*/
|
|
12
|
-
filters.Composed = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Composed.prototype */ {
|
|
13
|
-
|
|
14
|
-
type: 'Composed',
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* A non sparse array of filters to apply
|
|
18
|
-
*/
|
|
19
|
-
subFilters: [],
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Constructor
|
|
23
|
-
* @param {Object} [options] Options object
|
|
24
|
-
*/
|
|
25
|
-
initialize: function(options) {
|
|
26
|
-
this.callSuper('initialize', options);
|
|
27
|
-
// create a new array instead mutating the prototype with push
|
|
28
|
-
this.subFilters = this.subFilters.slice(0);
|
|
29
|
-
},
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Apply this container's filters to the input image provided.
|
|
33
|
-
*
|
|
34
|
-
* @param {Object} options
|
|
35
|
-
* @param {Number} options.passes The number of filters remaining to be applied.
|
|
36
|
-
*/
|
|
37
|
-
applyTo: function(options) {
|
|
38
|
-
options.passes += this.subFilters.length - 1;
|
|
39
|
-
this.subFilters.forEach(function(filter) {
|
|
40
|
-
filter.applyTo(options);
|
|
41
|
-
});
|
|
42
|
-
},
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Serialize this filter into JSON.
|
|
46
|
-
*
|
|
47
|
-
* @returns {Object} A JSON representation of this filter.
|
|
48
|
-
*/
|
|
49
|
-
toObject: function() {
|
|
50
|
-
return fabric.util.object.extend(this.callSuper('toObject'), {
|
|
51
|
-
subFilters: this.subFilters.map(function(filter) { return filter.toObject(); }),
|
|
52
|
-
});
|
|
53
|
-
},
|
|
54
|
-
|
|
55
|
-
isNeutralState: function() {
|
|
56
|
-
return !this.subFilters.some(function(filter) { return !filter.isNeutralState(); });
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Deserialize a JSON definition of a ComposedFilter into a concrete instance.
|
|
62
|
-
*/
|
|
63
|
-
fabric.Image.filters.Composed.fromObject = function(object, callback) {
|
|
64
|
-
var filters = object.subFilters || [],
|
|
65
|
-
subFilters = filters.map(function(filter) {
|
|
66
|
-
return new fabric.Image.filters[filter.type](filter);
|
|
67
|
-
}),
|
|
68
|
-
instance = new fabric.Image.filters.Composed({ subFilters: subFilters });
|
|
69
|
-
callback && callback(instance);
|
|
70
|
-
return instance;
|
|
71
|
-
};
|
|
72
|
-
})(typeof exports !== 'undefined' ? exports : this);
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
(function(global) {
|
|
2
|
-
|
|
3
|
-
'use strict';
|
|
4
|
-
|
|
5
|
-
var fabric = global.fabric || (global.fabric = { }),
|
|
6
|
-
filters = fabric.Image.filters,
|
|
7
|
-
createClass = fabric.util.createClass;
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Contrast filter class
|
|
11
|
-
* @class fabric.Image.filters.Contrast
|
|
12
|
-
* @memberOf fabric.Image.filters
|
|
13
|
-
* @extends fabric.Image.filters.BaseFilter
|
|
14
|
-
* @see {@link fabric.Image.filters.Contrast#initialize} for constructor definition
|
|
15
|
-
* @see {@link http://fabricjs.com/image-filters|ImageFilters demo}
|
|
16
|
-
* @example
|
|
17
|
-
* var filter = new fabric.Image.filters.Contrast({
|
|
18
|
-
* contrast: 0.25
|
|
19
|
-
* });
|
|
20
|
-
* object.filters.push(filter);
|
|
21
|
-
* object.applyFilters();
|
|
22
|
-
*/
|
|
23
|
-
filters.Contrast = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Contrast.prototype */ {
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Filter type
|
|
27
|
-
* @param {String} type
|
|
28
|
-
* @default
|
|
29
|
-
*/
|
|
30
|
-
type: 'Contrast',
|
|
31
|
-
|
|
32
|
-
fragmentSource: 'precision highp float;\n' +
|
|
33
|
-
'uniform sampler2D uTexture;\n' +
|
|
34
|
-
'uniform float uContrast;\n' +
|
|
35
|
-
'varying vec2 vTexCoord;\n' +
|
|
36
|
-
'void main() {\n' +
|
|
37
|
-
'vec4 color = texture2D(uTexture, vTexCoord);\n' +
|
|
38
|
-
'float contrastF = 1.015 * (uContrast + 1.0) / (1.0 * (1.015 - uContrast));\n' +
|
|
39
|
-
'color.rgb = contrastF * (color.rgb - 0.5) + 0.5;\n' +
|
|
40
|
-
'gl_FragColor = color;\n' +
|
|
41
|
-
'}',
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* contrast value, range from -1 to 1.
|
|
45
|
-
* @param {Number} contrast
|
|
46
|
-
* @default 0
|
|
47
|
-
*/
|
|
48
|
-
contrast: 0,
|
|
49
|
-
|
|
50
|
-
mainParameter: 'contrast',
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Constructor
|
|
54
|
-
* @memberOf fabric.Image.filters.Contrast.prototype
|
|
55
|
-
* @param {Object} [options] Options object
|
|
56
|
-
* @param {Number} [options.contrast=0] Value to contrast the image up (-1...1)
|
|
57
|
-
*/
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Apply the Contrast operation to a Uint8Array representing the pixels of an image.
|
|
61
|
-
*
|
|
62
|
-
* @param {Object} options
|
|
63
|
-
* @param {ImageData} options.imageData The Uint8Array to be filtered.
|
|
64
|
-
*/
|
|
65
|
-
applyTo2d: function(options) {
|
|
66
|
-
if (this.contrast === 0) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
var imageData = options.imageData, i, len,
|
|
70
|
-
data = imageData.data, len = data.length,
|
|
71
|
-
contrast = Math.floor(this.contrast * 255),
|
|
72
|
-
contrastF = 259 * (contrast + 255) / (255 * (259 - contrast));
|
|
73
|
-
|
|
74
|
-
for (i = 0; i < len; i += 4) {
|
|
75
|
-
data[i] = contrastF * (data[i] - 128) + 128;
|
|
76
|
-
data[i + 1] = contrastF * (data[i + 1] - 128) + 128;
|
|
77
|
-
data[i + 2] = contrastF * (data[i + 2] - 128) + 128;
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Return WebGL uniform locations for this filter's shader.
|
|
83
|
-
*
|
|
84
|
-
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
85
|
-
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
86
|
-
*/
|
|
87
|
-
getUniformLocations: function(gl, program) {
|
|
88
|
-
return {
|
|
89
|
-
uContrast: gl.getUniformLocation(program, 'uContrast'),
|
|
90
|
-
};
|
|
91
|
-
},
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Send data from this filter to its shader program's uniforms.
|
|
95
|
-
*
|
|
96
|
-
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
97
|
-
* @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
|
|
98
|
-
*/
|
|
99
|
-
sendUniformData: function(gl, uniformLocations) {
|
|
100
|
-
gl.uniform1f(uniformLocations.uContrast, this.contrast);
|
|
101
|
-
},
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Returns filter instance from an object representation
|
|
106
|
-
* @static
|
|
107
|
-
* @param {Object} object Object to create an instance from
|
|
108
|
-
* @param {function} [callback] to be invoked after filter creation
|
|
109
|
-
* @return {fabric.Image.filters.Contrast} Instance of fabric.Image.filters.Contrast
|
|
110
|
-
*/
|
|
111
|
-
fabric.Image.filters.Contrast.fromObject = fabric.Image.filters.BaseFilter.fromObject;
|
|
112
|
-
|
|
113
|
-
})(typeof exports !== 'undefined' ? exports : this);
|
|
@@ -1,352 +0,0 @@
|
|
|
1
|
-
(function(global) {
|
|
2
|
-
|
|
3
|
-
'use strict';
|
|
4
|
-
|
|
5
|
-
var fabric = global.fabric || (global.fabric = { }),
|
|
6
|
-
extend = fabric.util.object.extend,
|
|
7
|
-
filters = fabric.Image.filters,
|
|
8
|
-
createClass = fabric.util.createClass;
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Adapted from <a href="http://www.html5rocks.com/en/tutorials/canvas/imagefilters/">html5rocks article</a>
|
|
12
|
-
* @class fabric.Image.filters.Convolute
|
|
13
|
-
* @memberOf fabric.Image.filters
|
|
14
|
-
* @extends fabric.Image.filters.BaseFilter
|
|
15
|
-
* @see {@link fabric.Image.filters.Convolute#initialize} for constructor definition
|
|
16
|
-
* @see {@link http://fabricjs.com/image-filters|ImageFilters demo}
|
|
17
|
-
* @example <caption>Sharpen filter</caption>
|
|
18
|
-
* var filter = new fabric.Image.filters.Convolute({
|
|
19
|
-
* matrix: [ 0, -1, 0,
|
|
20
|
-
* -1, 5, -1,
|
|
21
|
-
* 0, -1, 0 ]
|
|
22
|
-
* });
|
|
23
|
-
* object.filters.push(filter);
|
|
24
|
-
* object.applyFilters();
|
|
25
|
-
* canvas.renderAll();
|
|
26
|
-
* @example <caption>Blur filter</caption>
|
|
27
|
-
* var filter = new fabric.Image.filters.Convolute({
|
|
28
|
-
* matrix: [ 1/9, 1/9, 1/9,
|
|
29
|
-
* 1/9, 1/9, 1/9,
|
|
30
|
-
* 1/9, 1/9, 1/9 ]
|
|
31
|
-
* });
|
|
32
|
-
* object.filters.push(filter);
|
|
33
|
-
* object.applyFilters();
|
|
34
|
-
* canvas.renderAll();
|
|
35
|
-
* @example <caption>Emboss filter</caption>
|
|
36
|
-
* var filter = new fabric.Image.filters.Convolute({
|
|
37
|
-
* matrix: [ 1, 1, 1,
|
|
38
|
-
* 1, 0.7, -1,
|
|
39
|
-
* -1, -1, -1 ]
|
|
40
|
-
* });
|
|
41
|
-
* object.filters.push(filter);
|
|
42
|
-
* object.applyFilters();
|
|
43
|
-
* canvas.renderAll();
|
|
44
|
-
* @example <caption>Emboss filter with opaqueness</caption>
|
|
45
|
-
* var filter = new fabric.Image.filters.Convolute({
|
|
46
|
-
* opaque: true,
|
|
47
|
-
* matrix: [ 1, 1, 1,
|
|
48
|
-
* 1, 0.7, -1,
|
|
49
|
-
* -1, -1, -1 ]
|
|
50
|
-
* });
|
|
51
|
-
* object.filters.push(filter);
|
|
52
|
-
* object.applyFilters();
|
|
53
|
-
* canvas.renderAll();
|
|
54
|
-
*/
|
|
55
|
-
filters.Convolute = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Convolute.prototype */ {
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Filter type
|
|
59
|
-
* @param {String} type
|
|
60
|
-
* @default
|
|
61
|
-
*/
|
|
62
|
-
type: 'Convolute',
|
|
63
|
-
|
|
64
|
-
/*
|
|
65
|
-
* Opaque value (true/false)
|
|
66
|
-
*/
|
|
67
|
-
opaque: false,
|
|
68
|
-
|
|
69
|
-
/*
|
|
70
|
-
* matrix for the filter, max 9x9
|
|
71
|
-
*/
|
|
72
|
-
matrix: [0, 0, 0, 0, 1, 0, 0, 0, 0],
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Fragment source for the brightness program
|
|
76
|
-
*/
|
|
77
|
-
fragmentSource: {
|
|
78
|
-
Convolute_3_1: 'precision highp float;\n' +
|
|
79
|
-
'uniform sampler2D uTexture;\n' +
|
|
80
|
-
'uniform float uMatrix[9];\n' +
|
|
81
|
-
'uniform float uStepW;\n' +
|
|
82
|
-
'uniform float uStepH;\n' +
|
|
83
|
-
'varying vec2 vTexCoord;\n' +
|
|
84
|
-
'void main() {\n' +
|
|
85
|
-
'vec4 color = vec4(0, 0, 0, 0);\n' +
|
|
86
|
-
'for (float h = 0.0; h < 3.0; h+=1.0) {\n' +
|
|
87
|
-
'for (float w = 0.0; w < 3.0; w+=1.0) {\n' +
|
|
88
|
-
'vec2 matrixPos = vec2(uStepW * (w - 1), uStepH * (h - 1));\n' +
|
|
89
|
-
'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 3.0 + w)];\n' +
|
|
90
|
-
'}\n' +
|
|
91
|
-
'}\n' +
|
|
92
|
-
'gl_FragColor = color;\n' +
|
|
93
|
-
'}',
|
|
94
|
-
Convolute_3_0: 'precision highp float;\n' +
|
|
95
|
-
'uniform sampler2D uTexture;\n' +
|
|
96
|
-
'uniform float uMatrix[9];\n' +
|
|
97
|
-
'uniform float uStepW;\n' +
|
|
98
|
-
'uniform float uStepH;\n' +
|
|
99
|
-
'varying vec2 vTexCoord;\n' +
|
|
100
|
-
'void main() {\n' +
|
|
101
|
-
'vec4 color = vec4(0, 0, 0, 1);\n' +
|
|
102
|
-
'for (float h = 0.0; h < 3.0; h+=1.0) {\n' +
|
|
103
|
-
'for (float w = 0.0; w < 3.0; w+=1.0) {\n' +
|
|
104
|
-
'vec2 matrixPos = vec2(uStepW * (w - 1.0), uStepH * (h - 1.0));\n' +
|
|
105
|
-
'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 3.0 + w)];\n' +
|
|
106
|
-
'}\n' +
|
|
107
|
-
'}\n' +
|
|
108
|
-
'float alpha = texture2D(uTexture, vTexCoord).a;\n' +
|
|
109
|
-
'gl_FragColor = color;\n' +
|
|
110
|
-
'gl_FragColor.a = alpha;\n' +
|
|
111
|
-
'}',
|
|
112
|
-
Convolute_5_1: 'precision highp float;\n' +
|
|
113
|
-
'uniform sampler2D uTexture;\n' +
|
|
114
|
-
'uniform float uMatrix[25];\n' +
|
|
115
|
-
'uniform float uStepW;\n' +
|
|
116
|
-
'uniform float uStepH;\n' +
|
|
117
|
-
'varying vec2 vTexCoord;\n' +
|
|
118
|
-
'void main() {\n' +
|
|
119
|
-
'vec4 color = vec4(0, 0, 0, 0);\n' +
|
|
120
|
-
'for (float h = 0.0; h < 5.0; h+=1.0) {\n' +
|
|
121
|
-
'for (float w = 0.0; w < 5.0; w+=1.0) {\n' +
|
|
122
|
-
'vec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\n' +
|
|
123
|
-
'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 5.0 + w)];\n' +
|
|
124
|
-
'}\n' +
|
|
125
|
-
'}\n' +
|
|
126
|
-
'gl_FragColor = color;\n' +
|
|
127
|
-
'}',
|
|
128
|
-
Convolute_5_0: 'precision highp float;\n' +
|
|
129
|
-
'uniform sampler2D uTexture;\n' +
|
|
130
|
-
'uniform float uMatrix[25];\n' +
|
|
131
|
-
'uniform float uStepW;\n' +
|
|
132
|
-
'uniform float uStepH;\n' +
|
|
133
|
-
'varying vec2 vTexCoord;\n' +
|
|
134
|
-
'void main() {\n' +
|
|
135
|
-
'vec4 color = vec4(0, 0, 0, 1);\n' +
|
|
136
|
-
'for (float h = 0.0; h < 5.0; h+=1.0) {\n' +
|
|
137
|
-
'for (float w = 0.0; w < 5.0; w+=1.0) {\n' +
|
|
138
|
-
'vec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\n' +
|
|
139
|
-
'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 5.0 + w)];\n' +
|
|
140
|
-
'}\n' +
|
|
141
|
-
'}\n' +
|
|
142
|
-
'float alpha = texture2D(uTexture, vTexCoord).a;\n' +
|
|
143
|
-
'gl_FragColor = color;\n' +
|
|
144
|
-
'gl_FragColor.a = alpha;\n' +
|
|
145
|
-
'}',
|
|
146
|
-
Convolute_7_1: 'precision highp float;\n' +
|
|
147
|
-
'uniform sampler2D uTexture;\n' +
|
|
148
|
-
'uniform float uMatrix[49];\n' +
|
|
149
|
-
'uniform float uStepW;\n' +
|
|
150
|
-
'uniform float uStepH;\n' +
|
|
151
|
-
'varying vec2 vTexCoord;\n' +
|
|
152
|
-
'void main() {\n' +
|
|
153
|
-
'vec4 color = vec4(0, 0, 0, 0);\n' +
|
|
154
|
-
'for (float h = 0.0; h < 7.0; h+=1.0) {\n' +
|
|
155
|
-
'for (float w = 0.0; w < 7.0; w+=1.0) {\n' +
|
|
156
|
-
'vec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\n' +
|
|
157
|
-
'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 7.0 + w)];\n' +
|
|
158
|
-
'}\n' +
|
|
159
|
-
'}\n' +
|
|
160
|
-
'gl_FragColor = color;\n' +
|
|
161
|
-
'}',
|
|
162
|
-
Convolute_7_0: 'precision highp float;\n' +
|
|
163
|
-
'uniform sampler2D uTexture;\n' +
|
|
164
|
-
'uniform float uMatrix[49];\n' +
|
|
165
|
-
'uniform float uStepW;\n' +
|
|
166
|
-
'uniform float uStepH;\n' +
|
|
167
|
-
'varying vec2 vTexCoord;\n' +
|
|
168
|
-
'void main() {\n' +
|
|
169
|
-
'vec4 color = vec4(0, 0, 0, 1);\n' +
|
|
170
|
-
'for (float h = 0.0; h < 7.0; h+=1.0) {\n' +
|
|
171
|
-
'for (float w = 0.0; w < 7.0; w+=1.0) {\n' +
|
|
172
|
-
'vec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\n' +
|
|
173
|
-
'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 7.0 + w)];\n' +
|
|
174
|
-
'}\n' +
|
|
175
|
-
'}\n' +
|
|
176
|
-
'float alpha = texture2D(uTexture, vTexCoord).a;\n' +
|
|
177
|
-
'gl_FragColor = color;\n' +
|
|
178
|
-
'gl_FragColor.a = alpha;\n' +
|
|
179
|
-
'}',
|
|
180
|
-
Convolute_9_1: 'precision highp float;\n' +
|
|
181
|
-
'uniform sampler2D uTexture;\n' +
|
|
182
|
-
'uniform float uMatrix[81];\n' +
|
|
183
|
-
'uniform float uStepW;\n' +
|
|
184
|
-
'uniform float uStepH;\n' +
|
|
185
|
-
'varying vec2 vTexCoord;\n' +
|
|
186
|
-
'void main() {\n' +
|
|
187
|
-
'vec4 color = vec4(0, 0, 0, 0);\n' +
|
|
188
|
-
'for (float h = 0.0; h < 9.0; h+=1.0) {\n' +
|
|
189
|
-
'for (float w = 0.0; w < 9.0; w+=1.0) {\n' +
|
|
190
|
-
'vec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\n' +
|
|
191
|
-
'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 9.0 + w)];\n' +
|
|
192
|
-
'}\n' +
|
|
193
|
-
'}\n' +
|
|
194
|
-
'gl_FragColor = color;\n' +
|
|
195
|
-
'}',
|
|
196
|
-
Convolute_9_0: 'precision highp float;\n' +
|
|
197
|
-
'uniform sampler2D uTexture;\n' +
|
|
198
|
-
'uniform float uMatrix[81];\n' +
|
|
199
|
-
'uniform float uStepW;\n' +
|
|
200
|
-
'uniform float uStepH;\n' +
|
|
201
|
-
'varying vec2 vTexCoord;\n' +
|
|
202
|
-
'void main() {\n' +
|
|
203
|
-
'vec4 color = vec4(0, 0, 0, 1);\n' +
|
|
204
|
-
'for (float h = 0.0; h < 9.0; h+=1.0) {\n' +
|
|
205
|
-
'for (float w = 0.0; w < 9.0; w+=1.0) {\n' +
|
|
206
|
-
'vec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\n' +
|
|
207
|
-
'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 9.0 + w)];\n' +
|
|
208
|
-
'}\n' +
|
|
209
|
-
'}\n' +
|
|
210
|
-
'float alpha = texture2D(uTexture, vTexCoord).a;\n' +
|
|
211
|
-
'gl_FragColor = color;\n' +
|
|
212
|
-
'gl_FragColor.a = alpha;\n' +
|
|
213
|
-
'}',
|
|
214
|
-
},
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* Constructor
|
|
218
|
-
* @memberOf fabric.Image.filters.Convolute.prototype
|
|
219
|
-
* @param {Object} [options] Options object
|
|
220
|
-
* @param {Boolean} [options.opaque=false] Opaque value (true/false)
|
|
221
|
-
* @param {Array} [options.matrix] Filter matrix
|
|
222
|
-
*/
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
/**
|
|
226
|
-
* Retrieves the cached shader.
|
|
227
|
-
* @param {Object} options
|
|
228
|
-
* @param {WebGLRenderingContext} options.context The GL context used for rendering.
|
|
229
|
-
* @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.
|
|
230
|
-
*/
|
|
231
|
-
retrieveShader: function(options) {
|
|
232
|
-
var size = Math.sqrt(this.matrix.length);
|
|
233
|
-
var cacheKey = this.type + '_' + size + '_' + (this.opaque ? 1 : 0);
|
|
234
|
-
var shaderSource = this.fragmentSource[cacheKey];
|
|
235
|
-
if (!options.programCache.hasOwnProperty(cacheKey)) {
|
|
236
|
-
options.programCache[cacheKey] = this.createProgram(options.context, shaderSource);
|
|
237
|
-
}
|
|
238
|
-
return options.programCache[cacheKey];
|
|
239
|
-
},
|
|
240
|
-
|
|
241
|
-
/**
|
|
242
|
-
* Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.
|
|
243
|
-
*
|
|
244
|
-
* @param {Object} options
|
|
245
|
-
* @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
|
|
246
|
-
*/
|
|
247
|
-
applyTo2d: function(options) {
|
|
248
|
-
var imageData = options.imageData,
|
|
249
|
-
data = imageData.data,
|
|
250
|
-
weights = this.matrix,
|
|
251
|
-
side = Math.round(Math.sqrt(weights.length)),
|
|
252
|
-
halfSide = Math.floor(side / 2),
|
|
253
|
-
sw = imageData.width,
|
|
254
|
-
sh = imageData.height,
|
|
255
|
-
output = options.ctx.createImageData(sw, sh),
|
|
256
|
-
dst = output.data,
|
|
257
|
-
// go through the destination image pixels
|
|
258
|
-
alphaFac = this.opaque ? 1 : 0,
|
|
259
|
-
r, g, b, a, dstOff,
|
|
260
|
-
scx, scy, srcOff, wt,
|
|
261
|
-
x, y, cx, cy;
|
|
262
|
-
|
|
263
|
-
for (y = 0; y < sh; y++) {
|
|
264
|
-
for (x = 0; x < sw; x++) {
|
|
265
|
-
dstOff = (y * sw + x) * 4;
|
|
266
|
-
// calculate the weighed sum of the source image pixels that
|
|
267
|
-
// fall under the convolution matrix
|
|
268
|
-
r = 0; g = 0; b = 0; a = 0;
|
|
269
|
-
|
|
270
|
-
for (cy = 0; cy < side; cy++) {
|
|
271
|
-
for (cx = 0; cx < side; cx++) {
|
|
272
|
-
scy = y + cy - halfSide;
|
|
273
|
-
scx = x + cx - halfSide;
|
|
274
|
-
|
|
275
|
-
// eslint-disable-next-line max-depth
|
|
276
|
-
if (scy < 0 || scy >= sh || scx < 0 || scx >= sw) {
|
|
277
|
-
continue;
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
srcOff = (scy * sw + scx) * 4;
|
|
281
|
-
wt = weights[cy * side + cx];
|
|
282
|
-
|
|
283
|
-
r += data[srcOff] * wt;
|
|
284
|
-
g += data[srcOff + 1] * wt;
|
|
285
|
-
b += data[srcOff + 2] * wt;
|
|
286
|
-
// eslint-disable-next-line max-depth
|
|
287
|
-
if (!alphaFac) {
|
|
288
|
-
a += data[srcOff + 3] * wt;
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
dst[dstOff] = r;
|
|
293
|
-
dst[dstOff + 1] = g;
|
|
294
|
-
dst[dstOff + 2] = b;
|
|
295
|
-
if (!alphaFac) {
|
|
296
|
-
dst[dstOff + 3] = a;
|
|
297
|
-
}
|
|
298
|
-
else {
|
|
299
|
-
dst[dstOff + 3] = data[dstOff + 3];
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
options.imageData = output;
|
|
304
|
-
},
|
|
305
|
-
|
|
306
|
-
/**
|
|
307
|
-
* Return WebGL uniform locations for this filter's shader.
|
|
308
|
-
*
|
|
309
|
-
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
310
|
-
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
311
|
-
*/
|
|
312
|
-
getUniformLocations: function(gl, program) {
|
|
313
|
-
return {
|
|
314
|
-
uMatrix: gl.getUniformLocation(program, 'uMatrix'),
|
|
315
|
-
uOpaque: gl.getUniformLocation(program, 'uOpaque'),
|
|
316
|
-
uHalfSize: gl.getUniformLocation(program, 'uHalfSize'),
|
|
317
|
-
uSize: gl.getUniformLocation(program, 'uSize'),
|
|
318
|
-
};
|
|
319
|
-
},
|
|
320
|
-
|
|
321
|
-
/**
|
|
322
|
-
* Send data from this filter to its shader program's uniforms.
|
|
323
|
-
*
|
|
324
|
-
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
325
|
-
* @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
|
|
326
|
-
*/
|
|
327
|
-
sendUniformData: function(gl, uniformLocations) {
|
|
328
|
-
gl.uniform1fv(uniformLocations.uMatrix, this.matrix);
|
|
329
|
-
},
|
|
330
|
-
|
|
331
|
-
/**
|
|
332
|
-
* Returns object representation of an instance
|
|
333
|
-
* @return {Object} Object representation of an instance
|
|
334
|
-
*/
|
|
335
|
-
toObject: function() {
|
|
336
|
-
return extend(this.callSuper('toObject'), {
|
|
337
|
-
opaque: this.opaque,
|
|
338
|
-
matrix: this.matrix
|
|
339
|
-
});
|
|
340
|
-
}
|
|
341
|
-
});
|
|
342
|
-
|
|
343
|
-
/**
|
|
344
|
-
* Returns filter instance from an object representation
|
|
345
|
-
* @static
|
|
346
|
-
* @param {Object} object Object to create an instance from
|
|
347
|
-
* @param {function} [callback] to be invoked after filter creation
|
|
348
|
-
* @return {fabric.Image.filters.Convolute} Instance of fabric.Image.filters.Convolute
|
|
349
|
-
*/
|
|
350
|
-
fabric.Image.filters.Convolute.fromObject = fabric.Image.filters.BaseFilter.fromObject;
|
|
351
|
-
|
|
352
|
-
})(typeof exports !== 'undefined' ? exports : this);
|