From 918d68038f67adb1a9d2c73874a4cc930e3af4f2 Mon Sep 17 00:00:00 2001 From: Fabian Lange Date: Mon, 27 Oct 2014 21:30:47 +0100 Subject: [PATCH] Use 3 param method for converting r,g,b into css string. This avoids creation of temporary arrays to pass them into the util method. Also using "arguments" is more expensive then passing in 3 parameters. --- src/core/pattern.js | 4 ++-- src/display/annotation_helper.js | 25 +++++++++++++------------ src/display/canvas.js | 4 ++-- src/display/pattern_helper.js | 2 +- src/display/svg.js | 4 ++-- src/shared/util.js | 8 ++++---- 6 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/core/pattern.js b/src/core/pattern.js index 2bb9c72b8d39b9..6969e8c25a140e 100644 --- a/src/core/pattern.js +++ b/src/core/pattern.js @@ -146,14 +146,14 @@ Shadings.RadialAxial = (function RadialAxialClosure() { ratio[0] = i; fn(ratio, 0, color, 0); rgbColor = cs.getRgb(color, 0); - var cssColor = Util.makeCssRgb(rgbColor); + var cssColor = Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]); colorStops.push([(i - t0) / diff, cssColor]); } var background = 'transparent'; if (dict.has('Background')) { rgbColor = cs.getRgb(dict.get('Background'), 0); - background = Util.makeCssRgb(rgbColor); + background = Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]); } if (!extendStart) { diff --git a/src/display/annotation_helper.js b/src/display/annotation_helper.js index 4502d95f8972cf..53b560401d387c 100644 --- a/src/display/annotation_helper.js +++ b/src/display/annotation_helper.js @@ -62,11 +62,9 @@ var AnnotationUtils = (function AnnotationUtilsClosure() { container.style.backgroundColor = item.color; var color = item.color; - var rgb = []; - for (var i = 0; i < 3; ++i) { - rgb[i] = Math.round(color[i] * 255); - } - item.colorCssRgb = Util.makeCssRgb(rgb); + item.colorCssRgb = Util.makeCssRgb(Math.round(color[0] * 255), + Math.round(color[1] * 255), + Math.round(color[2] * 255)); var highlight = document.createElement('div'); highlight.className = 'annotationHighlight'; @@ -136,13 +134,16 @@ var AnnotationUtils = (function AnnotationUtilsClosure() { var i, ii; if (item.hasBgColor) { var color = item.color; - var rgb = []; - for (i = 0; i < 3; ++i) { - // Enlighten the color (70%) - var c = Math.round(color[i] * 255); - rgb[i] = Math.round((255 - c) * 0.7) + c; - } - content.style.backgroundColor = Util.makeCssRgb(rgb); + + // Enlighten the color (70%) + var r = Math.round(color[0] * 255); + r = Math.round((255 - r) * 0.7) + r; + var g = Math.round(color[1] * 255); + g = Math.round((255 - g) * 0.7) + g; + var b = Math.round(color[2] * 255); + b = Math.round((255 - b) * 0.7) + b; + + content.style.backgroundColor = Util.makeCssRgb(r, g, b); } var title = document.createElement('h1'); diff --git a/src/display/canvas.js b/src/display/canvas.js index 5f03e641836db6..17b50bdb13f041 100644 --- a/src/display/canvas.js +++ b/src/display/canvas.js @@ -1551,12 +1551,12 @@ var CanvasGraphics = (function CanvasGraphicsClosure() { this.current.fillColor = this.getColorN_Pattern(arguments); }, setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) { - var color = Util.makeCssRgb(arguments); + var color = Util.makeCssRgb(r, g, b); this.ctx.strokeStyle = color; this.current.strokeColor = color; }, setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) { - var color = Util.makeCssRgb(arguments); + var color = Util.makeCssRgb(r, g, b); this.ctx.fillStyle = color; this.current.fillColor = color; }, diff --git a/src/display/pattern_helper.js b/src/display/pattern_helper.js index f6305e69f8ad98..e23dc0a8e5d48e 100644 --- a/src/display/pattern_helper.js +++ b/src/display/pattern_helper.js @@ -400,7 +400,7 @@ var TilingPattern = (function TilingPatternClosure() { context.strokeStyle = ctx.strokeStyle; break; case PaintType.UNCOLORED: - var cssColor = Util.makeCssRgb(color); + var cssColor = Util.makeCssRgb(color[0], color[1], color[2]); context.fillStyle = cssColor; context.strokeStyle = cssColor; break; diff --git a/src/display/svg.js b/src/display/svg.js index 0a619df2581d59..97323bf3214d67 100644 --- a/src/display/svg.js +++ b/src/display/svg.js @@ -822,11 +822,11 @@ var SVGGraphics = (function SVGGraphicsClosure() { this.current.miterLimit = limit; }, setStrokeRGBColor: function SVGGraphics_setStrokeRGBColor(r, g, b) { - var color = Util.makeCssRgb(arguments); + var color = Util.makeCssRgb(r, g, b); this.current.strokeColor = color; }, setFillRGBColor: function SVGGraphics_setFillRGBColor(r, g, b) { - var color = Util.makeCssRgb(arguments); + var color = Util.makeCssRgb(r, g, b); this.current.fillColor = color; this.current.tspan = document.createElementNS(NS, 'svg:tspan'); this.current.xcoords = []; diff --git a/src/shared/util.js b/src/shared/util.js index 7deb991756c41e..767f727ea26bd8 100644 --- a/src/shared/util.js +++ b/src/shared/util.js @@ -574,10 +574,10 @@ var Util = PDFJS.Util = (function UtilClosure() { // makeCssRgb() can be called thousands of times. Using |rgbBuf| avoids // creating many intermediate strings. - Util.makeCssRgb = function Util_makeCssRgb(rgb) { - rgbBuf[1] = rgb[0]; - rgbBuf[3] = rgb[1]; - rgbBuf[5] = rgb[2]; + Util.makeCssRgb = function Util_makeCssRgb(r, g, b) { + rgbBuf[1] = r; + rgbBuf[3] = g; + rgbBuf[5] = b; return rgbBuf.join(''); };