Fix icon offset for hitdetect image

It only worked correctly with pixel ratio of 1
This commit is contained in:
Maximilian Krög
2022-05-01 14:38:35 +02:00
parent 6b3c9cc196
commit d45e08d197

View File

@@ -129,8 +129,8 @@ class CanvasImageBuilder extends CanvasBuilder {
this.anchorY_ * this.imagePixelRatio_, this.anchorY_ * this.imagePixelRatio_,
Math.ceil(this.height_ * this.imagePixelRatio_), Math.ceil(this.height_ * this.imagePixelRatio_),
this.opacity_, this.opacity_,
this.originX_, this.originX_ * this.imagePixelRatio_,
this.originY_, this.originY_ * this.imagePixelRatio_,
this.rotateWithView_, this.rotateWithView_,
this.rotation_, this.rotation_,
[ [
@@ -186,8 +186,8 @@ class CanvasImageBuilder extends CanvasBuilder {
this.anchorY_ * this.imagePixelRatio_, this.anchorY_ * this.imagePixelRatio_,
Math.ceil(this.height_ * this.imagePixelRatio_), Math.ceil(this.height_ * this.imagePixelRatio_),
this.opacity_, this.opacity_,
this.originX_, this.originX_ * this.imagePixelRatio_,
this.originY_, this.originY_ * this.imagePixelRatio_,
this.rotateWithView_, this.rotateWithView_,
this.rotation_, this.rotation_,
[ [
@@ -249,18 +249,16 @@ class CanvasImageBuilder extends CanvasBuilder {
setImageStyle(imageStyle, opt_sharedData) { setImageStyle(imageStyle, opt_sharedData) {
const anchor = imageStyle.getAnchor(); const anchor = imageStyle.getAnchor();
const size = imageStyle.getSize(); const size = imageStyle.getSize();
const hitDetectionImage = imageStyle.getHitDetectionImage();
const image = imageStyle.getImage(this.pixelRatio);
const origin = imageStyle.getOrigin(); const origin = imageStyle.getOrigin();
this.imagePixelRatio_ = imageStyle.getPixelRatio(this.pixelRatio); this.imagePixelRatio_ = imageStyle.getPixelRatio(this.pixelRatio);
this.anchorX_ = anchor[0]; this.anchorX_ = anchor[0];
this.anchorY_ = anchor[1]; this.anchorY_ = anchor[1];
this.hitDetectionImage_ = hitDetectionImage; this.hitDetectionImage_ = imageStyle.getHitDetectionImage();
this.image_ = image; this.image_ = imageStyle.getImage(this.pixelRatio);
this.height_ = size[1]; this.height_ = size[1];
this.opacity_ = imageStyle.getOpacity(); this.opacity_ = imageStyle.getOpacity();
this.originX_ = origin[0] * this.imagePixelRatio_; this.originX_ = origin[0];
this.originY_ = origin[1] * this.imagePixelRatio_; this.originY_ = origin[1];
this.rotateWithView_ = imageStyle.getRotateWithView(); this.rotateWithView_ = imageStyle.getRotateWithView();
this.rotation_ = imageStyle.getRotation(); this.rotation_ = imageStyle.getRotation();
this.scale_ = imageStyle.getScaleArray(); this.scale_ = imageStyle.getScaleArray();