Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions engine/src/tools/Brush.js
Original file line number Diff line number Diff line change
Expand Up @@ -379,9 +379,9 @@ Wick.Tools.Brush = class extends Wick.Tool {
}

// Update croquis element canvas size
if(this.croquis.getCanvasWidth() !== this.paper.view._element.width ||
this.croquis.getCanvasHeight() !== this.paper.view._element.height) {
this.croquis.setCanvasSize(this.paper.view._element.width, this.paper.view._element.height);
if(this.croquis.getCanvasWidth() !== this.paper.view._viewSize.width ||
this.croquis.getCanvasHeight() !== this.paper.view._viewSize.height) {
this.croquis.setCanvasSize(this.paper.view._viewSize.width, this.paper.view._viewSize.height);
}

// Fake brush opacity in croquis by changing the opacity of the croquis canvas
Expand Down
8 changes: 6 additions & 2 deletions engine/src/view/paper-ext/Paper.hole.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,8 @@

var rasterResolution = paper.view.resolution * RASTER_BASE_RESOLUTION / window.devicePixelRatio;
var layerPathsRaster = layerGroup.rasterize(rasterResolution, {insert:false});
// Fixes issues with browser zoom
var zoomFactor = RASTER_BASE_RESOLUTION * layerPathsRaster.bounds.width / layerPathsRaster.width;

var rasterCanvas = layerPathsRaster.canvas;
var rasterCtx = rasterCanvas.getContext('2d');
Expand All @@ -98,8 +100,8 @@
layerPathsImageData = rasterCtx.getImageData(0, 0, layerPathsRaster.width, layerPathsRaster.height);

var rasterPosition = layerPathsRaster.bounds.topLeft;
var x = (floodFillX - rasterPosition.x) * RASTER_BASE_RESOLUTION;
var y = (floodFillY - rasterPosition.y) * RASTER_BASE_RESOLUTION;
var x = (floodFillX - rasterPosition.x) * RASTER_BASE_RESOLUTION / zoomFactor;
var y = (floodFillY - rasterPosition.y) * RASTER_BASE_RESOLUTION / zoomFactor;
x = Math.round(x);
y = Math.round(y);

Expand Down Expand Up @@ -168,6 +170,8 @@
}

expandHole(resultHolePath);
// Fixes issues with browser zoom
resultHolePath.scale(zoomFactor, layerPathsRaster.bounds.topLeft);
callback(resultHolePath);
}
floodFillProcessedImage.src = floodFillCanvas.toDataURL();
Expand Down
3 changes: 3 additions & 0 deletions engine/src/view/paper-ext/Path.potrace.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ paper.Path.inject({

var finalRasterResolution = paper.view.resolution*args.resolution/window.devicePixelRatio;
var raster = this.rasterize(finalRasterResolution);
// Fixes issues with browser zoom
var zoomFactor = args.resolution * raster.bounds.width / raster.width;
raster.remove();
var rasterDataURL = raster.toDataURL();

Expand All @@ -51,6 +53,7 @@ paper.Path.inject({
potracePath.remove();
potracePath.closed = true;
potracePath.children[0].closed = true;
potracePath.children[0].scale(zoomFactor);
args.done(potracePath.children[0]);
}
img.src = rasterDataURL;
Expand Down