Align pixels when drawing icons or shapes

The floor before setting the transform ensures that we translate by integer pixels for odd and even dimenstions.  The round before drawing the image ensures pixels are aligned.
This commit is contained in:
Tim Schaub
2013-10-15 22:05:36 -06:00
parent 5fe7c20450
commit b02f47a5a5

View File

@@ -238,8 +238,8 @@ ol.renderer.canvas.Vector.prototype.renderPointFeatures_ =
return true;
}
var midWidth = content.width / 2;
var midHeight = content.height / 2;
var midWidth = Math.floor(content.width / 2);
var midHeight = Math.floor(content.height / 2);
var contentWidth = content.width * this.inverseScale_;
var contentHeight = content.height * this.inverseScale_;
var contentXOffset = xOffset * this.inverseScale_;
@@ -276,7 +276,8 @@ ol.renderer.canvas.Vector.prototype.renderPointFeatures_ =
point = components[j];
vec = [point.get(0), point.get(1), 0];
goog.vec.Mat4.multVec3(this.transform_, vec, vec);
context.drawImage(content, vec[0] + xOffset, vec[1] + yOffset,
context.drawImage(content, Math.round(vec[0] + xOffset),
Math.round(vec[1] + yOffset),
content.width, content.height);
}
}