From d5a099fe85127af3a155311d3d1d727faa1094f3 Mon Sep 17 00:00:00 2001 From: evancz Date: Mon, 13 May 2013 22:22:46 +0200 Subject: [PATCH] Get the stops to show up properly. --- runtime/Render/Collage.js | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/runtime/Render/Collage.js b/runtime/Render/Collage.js index a8bb24e..da43ccf 100644 --- a/runtime/Render/Collage.js +++ b/runtime/Render/Collage.js @@ -80,20 +80,23 @@ function texture(redo, ctx, src) { } function gradient(ctx, grad) { - var g; - if (grad.ctor === 'Linear') { - var p1 = grad._1, p2 = grad._2; - g = ctx.createLinearGradient(p1._0, p1._1, p2._0, p2._1); - } else { - var p1 = grad._1, p2 = grad._3; - g = ctx.createRadialGradient(p1._0, p1._1, grad._2, p2._0, p2._1, grad._4); - } - var stops = fromList(grad._0); - for (var i = stops.length; i--; ) { - var stop = stops[i]; - g.addColorStop(stop._0, extract(stop._1)); - } - return g; + var g; + var stops = []; + if (grad.ctor === 'Linear') { + var p0 = grad._0, p1 = grad._1; + g = ctx.createLinearGradient(p0._0, -p0._1, p1._0, -p1._1); + stops = fromList(grad._2); + } else { + var p0 = grad._0, p2 = grad._2; + g = ctx.createRadialGradient(p0._0, -p0._1, grad._1, p2._0, -p2._1, grad._3); + stops = fromList(grad._4); + } + var len = stops.length; + for (var i = 0; i < len; ++i) { + var stop = stops[i]; + g.addColorStop(stop._0, extract(stop._1)); + } + return g; } function drawShape(redo, ctx, style, path) {