From c8a828e2786944aedc011dc5c5e6fe36c79521a2 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/src/main/resources/layer.js b/src/main/resources/layer.js index 790fd01..2938f76 100644 --- a/src/main/resources/layer.js +++ b/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