Improve clipping mask drawing, and remove some unneeded ctx.save() / ctx.restore() calls.

This commit is contained in:
Jürg Lehni 2012-11-06 20:14:21 -08:00
parent 1581d44c06
commit f110038104
2 changed files with 9 additions and 9 deletions

View file

@ -120,14 +120,16 @@ var CompoundPath = this.CompoundPath = PathItem.extend(/** @lends CompoundPath#
param.compound = true;
for (var i = 0, l = children.length; i < l; i++)
Item.draw(children[i], ctx, param);
if (this._clipMask)
ctx.clip();
param.compound = false;
this._setStyles(ctx);
if (style._fillColor)
ctx.fill();
if (style._strokeColor)
ctx.stroke();
if (this._clipMask) {
ctx.clip();
} else {
this._setStyles(ctx);
if (style._fillColor)
ctx.fill();
if (style._strokeColor)
ctx.stroke();
}
}
}, new function() { // Injection scope for PostScript-like drawing functions
/**

View file

@ -1489,7 +1489,6 @@ var Path = this.Path = PathItem.extend(/** @lends Path# */{
} else if (!param.compound && (fillColor || strokeColor)) {
// If the path is part of a compound path or doesn't have a fill
// or stroke, there is no need to continue.
ctx.save();
this._setStyles(ctx);
if (fillColor)
ctx.fill();
@ -1509,7 +1508,6 @@ var Path = this.Path = PathItem.extend(/** @lends Path# */{
}
ctx.stroke();
}
ctx.restore();
}
},