X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=dygraph-canvas.js;h=10936dee1e234c20c8495fec66569ec52761296c;hb=4270a2836fae730a6c3e0590d4a6fba7d63f86bc;hp=9c2e4daae78310fa0c50da3efbd0bf79403a1a3c;hpb=b5bdd85b1a969707aa52a0253712fdab7f2108ce;p=dygraphs.git diff --git a/dygraph-canvas.js b/dygraph-canvas.js index 9c2e4da..10936de 100644 --- a/dygraph-canvas.js +++ b/dygraph-canvas.js @@ -830,11 +830,17 @@ DygraphCanvasRenderer.prototype._renderLineChart = function() { var strokeWidth = this.dygraph_.attr_("strokeWidth", setName); // setup graphics context + // TODO(konigsberg): This function has ctx and context. Clarify the difference. context.save(); var pointSize = this.dygraph_.attr_("pointSize", setName); prevX = null; prevY = null; var drawPoints = this.dygraph_.attr_("drawPoints", setName); + var drawPointCallback = this.dygraph_.attr_("drawPointCallback", setName); + if (!drawPointCallback) { + drawPointCallback = Dygraph.Circles.DEFAULT; + } + var pointsOnLine = []; // Array of [canvasx, canvasy] pairs. var strokePattern = this.dygraph_.attr_("strokePattern", setName); if (!Dygraph.isArrayLike(strokePattern)) { strokePattern = null; @@ -885,14 +891,19 @@ DygraphCanvasRenderer.prototype._renderLineChart = function() { } if (drawPoints || isIsolated) { - ctx.beginPath(); - ctx.fillStyle = color; - ctx.arc(point.canvasx, point.canvasy, pointSize, - 0, 2 * Math.PI, false); - ctx.fill(); + pointsOnLine.push([point.canvasx, point.canvasy]); } } } + for (var idx = 0; idx < pointsOnLine.length; idx++) { + var cb = pointsOnLine[idx]; + ctx.save(); + drawPointCallback( + this.dygraph_, setName, ctx, cb[0], cb[1], color, pointSize); + ctx.restore(); + + } + firstIndexInSet = afterLastIndexInSet; } context.restore();