diff options
Diffstat (limited to 'web/js')
-rw-r--r-- | web/js/nms-color-util.js | 7 | ||||
-rw-r--r-- | web/js/nms-map-handlers.js | 16 |
2 files changed, 14 insertions, 9 deletions
diff --git a/web/js/nms-color-util.js b/web/js/nms-color-util.js index 82f24d7..ec7f619 100644 --- a/web/js/nms-color-util.js +++ b/web/js/nms-color-util.js @@ -7,6 +7,7 @@ */ var nmsColor = nmsColor || { + _cache: [], lightblue: "#d9edf7", lightgreen: "#dff0d8", lightred: "#f2dede", @@ -47,6 +48,7 @@ nmsColor.drawGradient = function(gradients) { var ctx = nmsMap._c.hidden.ctx; // FIXME: Move it away... var gradient = ctx.createLinearGradient(0,0,1000,0); var stops = gradients.length - 1; + nmsColor._cache = []; nms.gradients = gradients; for (var color in gradients) { var i = color / stops; @@ -79,10 +81,13 @@ nmsColor.getColorStop = function(x) { * made generic. */ nmsColor._getColor = function(x,y) { + if (nmsColor._cache[x] != undefined) + return nmsColor._cache[x]; var ctx = nmsMap._c.hidden.ctx; // FIXME: Move it away... var imageData = ctx.getImageData(x, y, 1, 1); var data = imageData.data; if (data.length < 4) return false; - return 'rgb(' + data[0] + ',' + data[1] + ',' + data[2] + ')'; + nmsColor._cache[x] = 'rgb(' + data[0] + ',' + data[1] + ',' + data[2] + ')'; + return nmsColor._cache[x]; } diff --git a/web/js/nms-map-handlers.js b/web/js/nms-map-handlers.js index 21f2bb2..9a06b42 100644 --- a/web/js/nms-map-handlers.js +++ b/web/js/nms-map-handlers.js @@ -596,14 +596,14 @@ function comboInfo(sw) { var worst = new handlerInfo("combo", "Combo"); worst.score = -1; for (var h in handlers) { - try { - if (handlers[h].tag== "combo") - continue; - var ret = handlers[h].getInfo(sw); - if (ret.score > worst.score) { - worst = ret; - } - } catch(e) { } + if (handlers[h].tag== "combo") + continue; + if (handlers[h].getInfo == undefined) + continue; + var ret = handlers[h].getInfo(sw); + if (ret.score > worst.score) { + worst = ret; + } } worst.data = [{ description: "Worst: " + worst.description, |