mirror of
https://github.com/scratchfoundation/paper.js.git
synced 2025-01-01 02:38:43 -05:00
parent
0eae0b6e4d
commit
25f2a0e779
3 changed files with 29 additions and 2 deletions
|
@ -8,6 +8,7 @@
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
- Fix drawing with compound path as clip item (#1361).
|
||||||
- SVG Export: Fix error when `Item#matrix` is not invertible (#1580).
|
- SVG Export: Fix error when `Item#matrix` is not invertible (#1580).
|
||||||
- SVG Import: Fix gradient default values (#1632).
|
- SVG Import: Fix gradient default values (#1632).
|
||||||
- JSON Import: Prevent overriding `Item#insert()` (#1392).
|
- JSON Import: Prevent overriding `Item#insert()` (#1392).
|
||||||
|
|
|
@ -4427,8 +4427,10 @@ new function() { // Injection scope for hit-test functions shared with project
|
||||||
this._draw(ctx, param, viewMatrix, strokeMatrix);
|
this._draw(ctx, param, viewMatrix, strokeMatrix);
|
||||||
ctx.restore();
|
ctx.restore();
|
||||||
matrices.pop();
|
matrices.pop();
|
||||||
if (param.clip && !param.dontFinish)
|
if (param.clip && !param.dontFinish) {
|
||||||
ctx.clip();
|
// Pass fill-rule to handle clipping with compound-paths (#1361).
|
||||||
|
ctx.clip(this.getFillRule());
|
||||||
|
}
|
||||||
// If a temporary canvas was created, composite it onto the main canvas:
|
// If a temporary canvas was created, composite it onto the main canvas:
|
||||||
if (!direct) {
|
if (!direct) {
|
||||||
// Use BlendMode.process even for processing normal blendMode with
|
// Use BlendMode.process even for processing normal blendMode with
|
||||||
|
|
|
@ -951,3 +951,27 @@ test('Item#rasterize() with empty bounds', function() {
|
||||||
view.update();
|
view.update();
|
||||||
expect(0);
|
expect(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('Item#draw() with CompoundPath as clip item', function() {
|
||||||
|
function createdClippedGroup(invertedOrder) {
|
||||||
|
var compound = new CompoundPath({
|
||||||
|
children: [
|
||||||
|
new Path.Circle(new Point(50, 50), 50),
|
||||||
|
new Path.Circle(new Point(100, 50), 50)
|
||||||
|
],
|
||||||
|
fillRule: 'evenodd'
|
||||||
|
});
|
||||||
|
|
||||||
|
var rectangle = new Shape.Rectangle(new Point(0, 0), new Point(150, 50));
|
||||||
|
|
||||||
|
var group = new Group();
|
||||||
|
group.children = invertedOrder
|
||||||
|
? [compound, rectangle]
|
||||||
|
: [rectangle, compound];
|
||||||
|
group.fillColor = 'black';
|
||||||
|
group.clipped = true;
|
||||||
|
return group;
|
||||||
|
};
|
||||||
|
|
||||||
|
comparePixels(createdClippedGroup(true), createdClippedGroup(false));
|
||||||
|
});
|
||||||
|
|
Loading…
Reference in a new issue