Browse Source

Optimized colorspace.js AlternateCS_getRgbBuffer

p01 11 years ago
parent
commit
8cfd024e48
  1. 21
      src/shared/colorspace.js

21
src/shared/colorspace.js

@ -396,6 +396,7 @@ var AlternateCS = (function AlternateCSClosure() {
getRgbBuffer: function AlternateCS_getRgbBuffer(src, srcOffset, count, getRgbBuffer: function AlternateCS_getRgbBuffer(src, srcOffset, count,
dest, destOffset, bits, dest, destOffset, bits,
alpha01) { alpha01) {
var tinted;
var tintFn = this.tintFn; var tintFn = this.tintFn;
var base = this.base; var base = this.base;
var scale = 1 / ((1 << bits) - 1); var scale = 1 / ((1 << bits) - 1);
@ -409,16 +410,22 @@ var AlternateCS = (function AlternateCSClosure() {
var scaled = new Float32Array(numComps); var scaled = new Float32Array(numComps);
var i, j; var i, j;
for (i = 0; i < count; i++) { if (usesZeroToOneRange) {
for (j = 0; j < numComps; j++) { for (i = 0; i < count; i++) {
scaled[j] = src[srcOffset++] * scale; for (j = 0; j < numComps; j++) {
} scaled[j] = src[srcOffset++] * scale;
var tinted = tintFn(scaled); }
if (usesZeroToOneRange) { tinted = tintFn(scaled);
for (j = 0; j < baseNumComps; j++) { for (j = 0; j < baseNumComps; j++) {
baseBuf[pos++] = tinted[j] * 255; 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); base.getRgbItem(tinted, 0, baseBuf, pos);
pos += baseNumComps; pos += baseNumComps;
} }

Loading…
Cancel
Save