mirror of
https://github.com/konvajs/konva.git
synced 2025-06-28 15:23:44 +08:00
new shadowForStrokeEnabled
property for shape
This commit is contained in:
parent
56f76005d7
commit
b9c6bc2d10
@ -7,6 +7,7 @@
|
|||||||
* more expected drawing when shape has opacity, stroke and shadow
|
* more expected drawing when shape has opacity, stroke and shadow
|
||||||
* `scale` now affect to `shadowOffset`
|
* `scale` now affect to `shadowOffset`
|
||||||
* new `perfectDrawEnabled` property for shape. See [http://konvajs.github.io/docs/performance/Disable_Perfect_Draw.html](http://konvajs.github.io/docs/performance/Disable_Perfect_Draw.html)
|
* new `perfectDrawEnabled` property for shape. See [http://konvajs.github.io/docs/performance/Disable_Perfect_Draw.html](http://konvajs.github.io/docs/performance/Disable_Perfect_Draw.html)
|
||||||
|
* new `shadowForStrokeEnabled` property for shape. See [http://konvajs.github.io/docs/performance/All_Performance_Tips.html](http://konvajs.github.io/docs/performance/All_Performance_Tips.html)
|
||||||
|
|
||||||
## 0.8.0 2015-02-04
|
## 0.8.0 2015-02-04
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "konva",
|
"name": "konva",
|
||||||
"version": "0.8.0",
|
"version": "0.9.0",
|
||||||
"authors": [
|
"authors": [
|
||||||
"Eric Rowell", "Anton Lavrenov"
|
"Eric Rowell", "Anton Lavrenov"
|
||||||
],
|
],
|
||||||
|
62
konva.js
62
konva.js
@ -1,9 +1,9 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Konva JavaScript Framework v0.8.0
|
* Konva JavaScript Framework v0.9.0
|
||||||
* http://konvajs.github.io/
|
* http://konvajs.github.io/
|
||||||
* Licensed under the MIT or GPL Version 2 licenses.
|
* Licensed under the MIT or GPL Version 2 licenses.
|
||||||
* Date: 2015-02-09
|
* Date: 2015-02-10
|
||||||
*
|
*
|
||||||
* Original work Copyright (C) 2011 - 2013 by Eric Rowell (KineticJS)
|
* Original work Copyright (C) 2011 - 2013 by Eric Rowell (KineticJS)
|
||||||
* Modified work Copyright (C) 2014 - 2015 by Anton Lavrenov (Konva)
|
* Modified work Copyright (C) 2014 - 2015 by Anton Lavrenov (Konva)
|
||||||
@ -36,7 +36,7 @@ var Konva = {};
|
|||||||
|
|
||||||
Konva = {
|
Konva = {
|
||||||
// public
|
// public
|
||||||
version: '0.8.0',
|
version: '0.9.0',
|
||||||
|
|
||||||
// private
|
// private
|
||||||
stages: [],
|
stages: [],
|
||||||
@ -180,6 +180,8 @@ var Konva = {};
|
|||||||
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
||||||
* @param {Number} [config.strokeWidth] stroke width
|
* @param {Number} [config.strokeWidth] stroke width
|
||||||
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
||||||
|
* @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
|
||||||
|
* @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shasow for stroke. The default is true
|
||||||
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
||||||
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
||||||
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
||||||
@ -2269,7 +2271,9 @@ var Konva = {};
|
|||||||
blue: shape.strokeBlue(),
|
blue: shape.strokeBlue(),
|
||||||
alpha: shape.strokeAlpha()
|
alpha: shape.strokeAlpha()
|
||||||
}));
|
}));
|
||||||
|
if (!shape.getShadowForStrokeEnabled()) {
|
||||||
|
this.setAttr('shadowColor', 'rgba(0,0,0,0)');
|
||||||
|
}
|
||||||
shape._strokeFunc(this);
|
shape._strokeFunc(this);
|
||||||
|
|
||||||
if (!strokeScaleEnabled) {
|
if (!strokeScaleEnabled) {
|
||||||
@ -8274,7 +8278,7 @@ var Konva = {};
|
|||||||
// if shape has stroke we need to redraw shape
|
// if shape has stroke we need to redraw shape
|
||||||
// otherwise we will see shadow under stroke (and over fill)
|
// otherwise we will see shadow under stroke (and over fill)
|
||||||
// but I think is is unexpected behavior
|
// but I think is is unexpected behavior
|
||||||
if (this.hasFill()) {
|
if (this.hasFill() && this.getShadowForStrokeEnabled()) {
|
||||||
drawFunc.call(this, context);
|
drawFunc.call(this, context);
|
||||||
}
|
}
|
||||||
} else if (hasShadow && !canvas.hitCanvas) {
|
} else if (hasShadow && !canvas.hitCanvas) {
|
||||||
@ -8535,6 +8539,26 @@ var Konva = {};
|
|||||||
* shape.perfectDrawEnabled();
|
* shape.perfectDrawEnabled();
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
Konva.Factory.addGetterSetter(Konva.Shape, 'shadowForStrokeEnabled', true);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get/set shadowForStrokeEnabled. Useful for performance optimization.
|
||||||
|
* You may set `shape.shadowForStrokeEnabled(false)`. In this case stroke will be no draw shadow for stroke.
|
||||||
|
* Remember if you set `shadowForStrokeEnabled = false` for non closed line - that line with have no shadow!.
|
||||||
|
* Default value is true
|
||||||
|
* @name shadowForStrokeEnabled
|
||||||
|
* @method
|
||||||
|
* @memberof Konva.Shape.prototype
|
||||||
|
* @param {Boolean} shadowForStrokeEnabled
|
||||||
|
* @returns {Boolean}
|
||||||
|
* @example
|
||||||
|
* // get shadowForStrokeEnabled
|
||||||
|
* var shadowForStrokeEnabled = shape.shadowForStrokeEnabled();
|
||||||
|
*
|
||||||
|
* // set shadowForStrokeEnabled
|
||||||
|
* shape.shadowForStrokeEnabled();
|
||||||
|
*/
|
||||||
|
|
||||||
Konva.Factory.addGetterSetter(Konva.Shape, 'lineJoin');
|
Konva.Factory.addGetterSetter(Konva.Shape, 'lineJoin');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10888,6 +10912,8 @@ var Konva = {};
|
|||||||
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
||||||
* @param {Number} [config.strokeWidth] stroke width
|
* @param {Number} [config.strokeWidth] stroke width
|
||||||
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
||||||
|
* @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
|
||||||
|
* @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shasow for stroke. The default is true
|
||||||
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
||||||
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
||||||
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
||||||
@ -11049,6 +11075,8 @@ var Konva = {};
|
|||||||
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
||||||
* @param {Number} [config.strokeWidth] stroke width
|
* @param {Number} [config.strokeWidth] stroke width
|
||||||
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
||||||
|
* @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
|
||||||
|
* @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shasow for stroke. The default is true
|
||||||
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
||||||
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
||||||
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
||||||
@ -11348,6 +11376,8 @@ var Konva = {};
|
|||||||
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
||||||
* @param {Number} [config.strokeWidth] stroke width
|
* @param {Number} [config.strokeWidth] stroke width
|
||||||
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
||||||
|
* @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
|
||||||
|
* @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shasow for stroke. The default is true
|
||||||
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
||||||
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
||||||
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
||||||
@ -11534,6 +11564,8 @@ var Konva = {};
|
|||||||
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
||||||
* @param {Number} [config.strokeWidth] stroke width
|
* @param {Number} [config.strokeWidth] stroke width
|
||||||
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
||||||
|
* @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
|
||||||
|
* @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shasow for stroke. The default is true
|
||||||
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
||||||
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
||||||
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
||||||
@ -11720,6 +11752,8 @@ var Konva = {};
|
|||||||
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
||||||
* @param {Number} [config.strokeWidth] stroke width
|
* @param {Number} [config.strokeWidth] stroke width
|
||||||
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
||||||
|
* @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
|
||||||
|
* @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shasow for stroke. The default is true
|
||||||
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
||||||
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
||||||
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
||||||
@ -11924,6 +11958,8 @@ var Konva = {};
|
|||||||
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
||||||
* @param {Number} [config.strokeWidth] stroke width
|
* @param {Number} [config.strokeWidth] stroke width
|
||||||
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
||||||
|
* @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
|
||||||
|
* @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shasow for stroke. The default is true
|
||||||
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
||||||
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
||||||
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
||||||
@ -12233,6 +12269,8 @@ var Konva = {};
|
|||||||
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
||||||
* @param {Number} [config.strokeWidth] stroke width
|
* @param {Number} [config.strokeWidth] stroke width
|
||||||
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
||||||
|
* @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
|
||||||
|
* @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shasow for stroke. The default is true
|
||||||
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
||||||
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
||||||
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
||||||
@ -12764,6 +12802,8 @@ var Konva = {};
|
|||||||
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
||||||
* @param {Number} [config.strokeWidth] stroke width
|
* @param {Number} [config.strokeWidth] stroke width
|
||||||
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
||||||
|
* @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
|
||||||
|
* @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shasow for stroke. The default is true
|
||||||
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
||||||
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
||||||
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
||||||
@ -13047,6 +13087,8 @@ var Konva = {};
|
|||||||
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
||||||
* @param {Number} [config.strokeWidth] stroke width
|
* @param {Number} [config.strokeWidth] stroke width
|
||||||
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
||||||
|
* @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
|
||||||
|
* @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shasow for stroke. The default is true
|
||||||
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
||||||
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
||||||
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
||||||
@ -13463,6 +13505,8 @@ var Konva = {};
|
|||||||
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
||||||
* @param {Number} [config.strokeWidth] stroke width
|
* @param {Number} [config.strokeWidth] stroke width
|
||||||
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
||||||
|
* @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
|
||||||
|
* @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shasow for stroke. The default is true
|
||||||
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
||||||
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
||||||
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
||||||
@ -14175,6 +14219,8 @@ var Konva = {};
|
|||||||
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
||||||
* @param {Number} [config.strokeWidth] stroke width
|
* @param {Number} [config.strokeWidth] stroke width
|
||||||
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
||||||
|
* @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
|
||||||
|
* @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shasow for stroke. The default is true
|
||||||
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
||||||
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
||||||
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
||||||
@ -14656,6 +14702,8 @@ var Konva = {};
|
|||||||
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
||||||
* @param {Number} [config.strokeWidth] stroke width
|
* @param {Number} [config.strokeWidth] stroke width
|
||||||
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
||||||
|
* @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
|
||||||
|
* @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shasow for stroke. The default is true
|
||||||
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
||||||
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
||||||
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
||||||
@ -14825,6 +14873,8 @@ var Konva = {};
|
|||||||
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
||||||
* @param {Number} [config.strokeWidth] stroke width
|
* @param {Number} [config.strokeWidth] stroke width
|
||||||
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
||||||
|
* @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
|
||||||
|
* @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shasow for stroke. The default is true
|
||||||
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
||||||
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
||||||
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
||||||
@ -15353,6 +15403,8 @@ var Konva = {};
|
|||||||
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
||||||
* @param {Number} [config.strokeWidth] stroke width
|
* @param {Number} [config.strokeWidth] stroke width
|
||||||
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
||||||
|
* @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
|
||||||
|
* @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shasow for stroke. The default is true
|
||||||
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
||||||
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
||||||
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
||||||
|
10
konva.min.js
vendored
10
konva.min.js
vendored
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "konva",
|
"name": "konva",
|
||||||
"version": "0.8.0",
|
"version": "0.9.0",
|
||||||
"author": "Anton Lavrenov",
|
"author": "Anton Lavrenov",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"chai": "1.9.2",
|
"chai": "1.9.2",
|
||||||
|
@ -39,6 +39,8 @@
|
|||||||
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
* @param {Integer} [config.strokeAlpha] set stroke alpha component
|
||||||
* @param {Number} [config.strokeWidth] stroke width
|
* @param {Number} [config.strokeWidth] stroke width
|
||||||
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
* @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
|
||||||
|
* @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
|
||||||
|
* @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shasow for stroke. The default is true
|
||||||
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
* @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
|
||||||
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
* @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
|
||||||
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
* @param {String} [config.lineJoin] can be miter, round, or bevel. The default
|
||||||
|
@ -536,7 +536,9 @@
|
|||||||
blue: shape.strokeBlue(),
|
blue: shape.strokeBlue(),
|
||||||
alpha: shape.strokeAlpha()
|
alpha: shape.strokeAlpha()
|
||||||
}));
|
}));
|
||||||
|
if (!shape.getShadowForStrokeEnabled()) {
|
||||||
|
this.setAttr('shadowColor', 'rgba(0,0,0,0)');
|
||||||
|
}
|
||||||
shape._strokeFunc(this);
|
shape._strokeFunc(this);
|
||||||
|
|
||||||
if (!strokeScaleEnabled) {
|
if (!strokeScaleEnabled) {
|
||||||
|
22
src/Shape.js
22
src/Shape.js
@ -227,7 +227,7 @@
|
|||||||
// if shape has stroke we need to redraw shape
|
// if shape has stroke we need to redraw shape
|
||||||
// otherwise we will see shadow under stroke (and over fill)
|
// otherwise we will see shadow under stroke (and over fill)
|
||||||
// but I think is is unexpected behavior
|
// but I think is is unexpected behavior
|
||||||
if (this.hasFill()) {
|
if (this.hasFill() && this.getShadowForStrokeEnabled()) {
|
||||||
drawFunc.call(this, context);
|
drawFunc.call(this, context);
|
||||||
}
|
}
|
||||||
} else if (hasShadow && !canvas.hitCanvas) {
|
} else if (hasShadow && !canvas.hitCanvas) {
|
||||||
@ -488,6 +488,26 @@
|
|||||||
* shape.perfectDrawEnabled();
|
* shape.perfectDrawEnabled();
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
Konva.Factory.addGetterSetter(Konva.Shape, 'shadowForStrokeEnabled', true);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get/set shadowForStrokeEnabled. Useful for performance optimization.
|
||||||
|
* You may set `shape.shadowForStrokeEnabled(false)`. In this case stroke will be no draw shadow for stroke.
|
||||||
|
* Remember if you set `shadowForStrokeEnabled = false` for non closed line - that line with have no shadow!.
|
||||||
|
* Default value is true
|
||||||
|
* @name shadowForStrokeEnabled
|
||||||
|
* @method
|
||||||
|
* @memberof Konva.Shape.prototype
|
||||||
|
* @param {Boolean} shadowForStrokeEnabled
|
||||||
|
* @returns {Boolean}
|
||||||
|
* @example
|
||||||
|
* // get shadowForStrokeEnabled
|
||||||
|
* var shadowForStrokeEnabled = shape.shadowForStrokeEnabled();
|
||||||
|
*
|
||||||
|
* // set shadowForStrokeEnabled
|
||||||
|
* shape.shadowForStrokeEnabled();
|
||||||
|
*/
|
||||||
|
|
||||||
Konva.Factory.addGetterSetter(Konva.Shape, 'lineJoin');
|
Konva.Factory.addGetterSetter(Konva.Shape, 'lineJoin');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -566,6 +566,11 @@ suite('Shape', function() {
|
|||||||
context.stroke();
|
context.stroke();
|
||||||
|
|
||||||
compareLayerAndCanvas(layer, canvas, 10);
|
compareLayerAndCanvas(layer, canvas, 10);
|
||||||
|
|
||||||
|
|
||||||
|
var trace = layer.getContext().getTrace();
|
||||||
|
//console.log(trace);
|
||||||
|
assert.equal(trace, 'clearRect(0,0,578,200);save();transform(1,0,0,1,100,50);save();shadowColor=rgba(128,128,128,1);shadowBlur=10;shadowOffsetX=20;shadowOffsetY=20;beginPath();rect(0,0,100,50);closePath();fillStyle=green;fill();lineWidth=10;strokeStyle=black;stroke();restore();beginPath();rect(0,0,100,50);closePath();fillStyle=green;fill();lineWidth=10;strokeStyle=black;stroke();restore();');
|
||||||
});
|
});
|
||||||
|
|
||||||
// ======================================================
|
// ======================================================
|
||||||
@ -1122,5 +1127,55 @@ suite('Shape', function() {
|
|||||||
assert.equal(trace, 'clearRect(0,0,578,200);save();transform(1,0,0,1,100,50);globalAlpha=0.5;beginPath();rect(0,0,100,50);closePath();fillStyle=green;fill();lineWidth=10;strokeStyle=black;stroke();restore();');
|
assert.equal(trace, 'clearRect(0,0,578,200);save();transform(1,0,0,1,100,50);globalAlpha=0.5;beginPath();rect(0,0,100,50);closePath();fillStyle=green;fill();lineWidth=10;strokeStyle=black;stroke();restore();');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// ======================================================
|
||||||
|
test('optional disable shadow for stroke', function(){
|
||||||
|
var stage = addStage();
|
||||||
|
|
||||||
|
var layer = new Konva.Layer();
|
||||||
|
|
||||||
|
var rect = new Konva.Rect({
|
||||||
|
x: 100,
|
||||||
|
y: 50,
|
||||||
|
width: 100,
|
||||||
|
height: 50,
|
||||||
|
fill: 'green',
|
||||||
|
stroke: 'black',
|
||||||
|
strokeWidth: 10,
|
||||||
|
shadowColor: 'grey',
|
||||||
|
shadowBlur: 10,
|
||||||
|
shadowOffset: {
|
||||||
|
x: 20,
|
||||||
|
y: 20
|
||||||
|
},
|
||||||
|
shadowForStrokeEnabled : false
|
||||||
|
});
|
||||||
|
|
||||||
|
layer.add(rect);
|
||||||
|
stage.add(layer);
|
||||||
|
|
||||||
|
var canvas = createCanvas();
|
||||||
|
var context = canvas.getContext('2d');
|
||||||
|
context.beginPath();
|
||||||
|
context.rect(100, 50, 100, 50);
|
||||||
|
context.closePath();
|
||||||
|
context.fillStyle = 'green';
|
||||||
|
context.shadowColor = 'grey';
|
||||||
|
context.shadowBlur = 10;
|
||||||
|
context.shadowOffsetX = 20;
|
||||||
|
context.shadowOffsetY = 20;
|
||||||
|
context.lineWidth = 10;
|
||||||
|
context.fill();
|
||||||
|
|
||||||
|
context.shadowColor = 'rgba(0,0,0, 0)';
|
||||||
|
context.stroke();
|
||||||
|
|
||||||
|
compareLayerAndCanvas(layer, canvas, 10);
|
||||||
|
|
||||||
|
|
||||||
|
var trace = layer.getContext().getTrace();
|
||||||
|
//console.log(trace);
|
||||||
|
assert.equal(trace, 'clearRect(0,0,578,200);save();transform(1,0,0,1,100,50);save();shadowColor=rgba(128,128,128,1);shadowBlur=10;shadowOffsetX=20;shadowOffsetY=20;beginPath();rect(0,0,100,50);closePath();fillStyle=green;fill();lineWidth=10;strokeStyle=black;shadowColor=rgba(0,0,0,0);stroke();restore();restore();');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
Loading…
Reference in New Issue
Block a user