Make testCanvasSize a static function

This commit is contained in:
ahocevar
2014-04-03 11:18:26 +02:00
parent 54ba06ae3b
commit ea58f38275

View File

@@ -21,12 +21,6 @@ ol.renderer.canvas.Layer = function(mapRenderer, layer) {
goog.base(this, mapRenderer, layer); goog.base(this, mapRenderer, layer);
/**
* @private
* @type {ImageData}
*/
this.testImageData_ = null;
/** /**
* @private * @private
* @type {!goog.vec.Mat4.Number} * @type {!goog.vec.Mat4.Number}
@@ -177,23 +171,30 @@ ol.renderer.canvas.Layer.prototype.getTransform = function(frameState) {
* @param {ol.Size} size Size. * @param {ol.Size} size Size.
* @return {boolean} True when the canvas with the current size does not exceed * @return {boolean} True when the canvas with the current size does not exceed
* the maximum dimensions. * the maximum dimensions.
* @protected
*/ */
ol.renderer.canvas.Layer.prototype.testCanvasSize = function(context, size) { ol.renderer.canvas.Layer.testCanvasSize = (function() {
/**
* @type {ImageData}
*/
var testImageData = null;
return function(context, size) {
var x = size[0] - 1; var x = size[0] - 1;
var y = size[1] - 1; var y = size[1] - 1;
var originalImageData = context.getImageData(x, y, 1, 1); var originalImageData = context.getImageData(x, y, 1, 1);
if (goog.isNull(this.testImageData_)) { if (goog.isNull(testImageData)) {
this.testImageData_ = context.createImageData(1, 1); testImageData = context.createImageData(1, 1);
var data = this.testImageData_.data; var data = testImageData.data;
data[0] = 42; data[0] = 42;
data[1] = 84; data[1] = 84;
data[2] = 126; data[2] = 126;
data[3] = 255; data[3] = 255;
} }
context.putImageData(this.testImageData_, x, y); context.putImageData(testImageData, x, y);
var result = context.getImageData(x, y, 1, 1); var result = context.getImageData(x, y, 1, 1);
var good = goog.array.equals(this.testImageData_.data, result.data); var good = goog.array.equals(testImageData.data, result.data);
context.putImageData(originalImageData, x, y); context.putImageData(originalImageData, x, y);
return good; return good;
}; };
})();