From 6bfa0d7ea177cd9ffff14e5af132e99e78a7322b Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Mon, 27 Feb 2012 11:35:02 -0800 Subject: [PATCH] Use transfer function within copy, if set. --- .../src/main/resources/layer.js | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/guacamole-common-js/src/main/resources/layer.js b/guacamole-common-js/src/main/resources/layer.js index 790fd013d..2938f76ac 100644 --- a/guacamole-common-js/src/main/resources/layer.js +++ b/guacamole-common-js/src/main/resources/layer.js @@ -458,8 +458,29 @@ Guacamole.Layer = function(width, height) { if (layer.autosize != 0) fitRect(x, y, srcw, srch); var srcCanvas = srcLayer.getCanvas(); - if (srcCanvas.width != 0 && srcCanvas.height != 0) - displayContext.drawImage(srcCanvas, srcx, srcy, srcw, srch, x, y, srcw, srch); + if (srcCanvas.width != 0 && srcCanvas.height != 0) { + + // Just copy if no transfer function + if (!transferFunction) + displayContext.drawImage(srcCanvas, srcx, srcy, srcw, srch, x, y, srcw, srch); + + // Otherwise, copy via transfer function + else { + + // Get image data from src and dst + var src = srcLayer.getCanvas().getContext("2d").getImageData(srcx, srcy, srcw, srch); + var dst = displayContext.getImageData(x , y, srcw, srch); + + // Apply transfer for each pixel + for (var i=0; i