Canvas opacity instead of css

This commit is contained in:
ahocevar
2019-05-22 11:53:38 +02:00
parent 7895b16043
commit c56ad4363d
5 changed files with 22 additions and 18 deletions
+9 -5
View File
@@ -140,8 +140,17 @@ class CanvasImageLayerRenderer extends CanvasLayerRenderer {
this.preRender(context, frameState);
if (dw >= 0.5 && dh >= 0.5) {
const opacity = this.getLayer().getOpacity();
let previousAlpha;
if (opacity !== 1) {
previousAlpha = this.context.globalAlpha;
this.context.globalAlpha = opacity;
}
this.context.drawImage(img, 0, 0, +img.width, +img.height,
Math.round(dx), Math.round(dy), Math.round(dw), Math.round(dh));
if (opacity !== 1) {
this.context.globalAlpha = previousAlpha;
}
}
this.postRender(context, frameState);
@@ -149,11 +158,6 @@ class CanvasImageLayerRenderer extends CanvasLayerRenderer {
context.restore();
}
const opacity = layerState.opacity;
if (opacity !== parseFloat(canvas.style.opacity)) {
canvas.style.opacity = opacity;
}
const canvasTransform = transformToString(this.pixelTransform_);
if (canvasTransform !== canvas.style.transform) {
canvas.style.transform = canvasTransform;