From 8cfd024e484cc5d1b63bb76a6e7b319be3393ca4 Mon Sep 17 00:00:00 2001 From: p01 Date: Thu, 8 May 2014 17:31:11 +0200 Subject: [PATCH] Optimized colorspace.js AlternateCS_getRgbBuffer --- src/shared/colorspace.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/shared/colorspace.js b/src/shared/colorspace.js index aa49a2d1f..0d1b671bf 100644 --- a/src/shared/colorspace.js +++ b/src/shared/colorspace.js @@ -396,6 +396,7 @@ var AlternateCS = (function AlternateCSClosure() { getRgbBuffer: function AlternateCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + var tinted; var tintFn = this.tintFn; var base = this.base; var scale = 1 / ((1 << bits) - 1); @@ -409,16 +410,22 @@ var AlternateCS = (function AlternateCSClosure() { var scaled = new Float32Array(numComps); var i, j; - for (i = 0; i < count; i++) { - for (j = 0; j < numComps; j++) { - scaled[j] = src[srcOffset++] * scale; - } - var tinted = tintFn(scaled); - if (usesZeroToOneRange) { + if (usesZeroToOneRange) { + for (i = 0; i < count; i++) { + for (j = 0; j < numComps; j++) { + scaled[j] = src[srcOffset++] * scale; + } + tinted = tintFn(scaled); for (j = 0; j < baseNumComps; j++) { baseBuf[pos++] = tinted[j] * 255; } - } else { + } + } else { + for (i = 0; i < count; i++) { + for (j = 0; j < numComps; j++) { + scaled[j] = src[srcOffset++] * scale; + } + tinted = tintFn(scaled); base.getRgbItem(tinted, 0, baseBuf, pos); pos += baseNumComps; }