From 0c47eb2637bc6c4ed61b3ee4c2fec76026da4c5b Mon Sep 17 00:00:00 2001 From: Dmitry Date: Tue, 9 Jan 2018 18:05:13 +0300 Subject: [PATCH 1/5] Fix gl2d multiple subplot --- src/plots/gl2d/convert.js | 2 +- src/plots/gl2d/scene2d.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plots/gl2d/convert.js b/src/plots/gl2d/convert.js index 9f6c2aadd6e..5f4f1fcfd15 100644 --- a/src/plots/gl2d/convert.js +++ b/src/plots/gl2d/convert.js @@ -86,7 +86,7 @@ function Axes2DOptions(scene) { [0, 0, 0, 1] ]; - this.borderColor = [0, 0, 0, 0]; + this.borderColor = false; this.backgroundColor = [0, 0, 0, 0]; this.static = this.scene.staticPlot; diff --git a/src/plots/gl2d/scene2d.js b/src/plots/gl2d/scene2d.js index 29cb036291e..94557cb86e0 100644 --- a/src/plots/gl2d/scene2d.js +++ b/src/plots/gl2d/scene2d.js @@ -118,6 +118,7 @@ proto.makeFramework = function() { var gl = getContext({ canvas: liveCanvas, + preserveDrawingBuffer: true, premultipliedAlpha: true }); From a3cf740b76b4c3baace2e5224df014876863d5f8 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Tue, 9 Jan 2018 18:09:46 +0300 Subject: [PATCH 2/5] Avoid multitrace error --- src/traces/scattergl/select.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/traces/scattergl/select.js b/src/traces/scattergl/select.js index 4c4d7fb2afd..c2b425bba81 100644 --- a/src/traces/scattergl/select.js +++ b/src/traces/scattergl/select.js @@ -23,6 +23,9 @@ module.exports = function selectPoints(searchInfo, polygon) { y; var glTrace = cd[0]._glTrace; + + if(!glTrace) return; + var scene = glTrace.scene; var hasOnlyLines = (!subtypes.hasMarkers(trace) && !subtypes.hasText(trace)); From 38d8251cd3faf66ba378a7756799c8b565b62f17 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Thu, 11 Jan 2018 14:01:11 +0300 Subject: [PATCH 3/5] Clear canvas for toImage call --- src/plots/gl2d/scene2d.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/plots/gl2d/scene2d.js b/src/plots/gl2d/scene2d.js index 94557cb86e0..094c74e62eb 100644 --- a/src/plots/gl2d/scene2d.js +++ b/src/plots/gl2d/scene2d.js @@ -13,7 +13,7 @@ var Registry = require('../../registry'); var Axes = require('../../plots/cartesian/axes'); var Fx = require('../../components/fx'); -var createPlot2D = require('gl-plot2d'); +var createPlot2D = require('../../../../gl-plot2d'); var createSpikes = require('gl-spikes2d'); var createSelectBox = require('gl-select-box'); var getContext = require('webgl-context'); @@ -182,20 +182,24 @@ proto.toImage = function(format) { if(!format) format = 'png'; this.stopped = true; + if(this.staticPlot) this.container.appendChild(STATIC_CANVAS); // update canvas size this.updateSize(this.canvas); - // force redraw - this.glplot.setDirty(); - this.glplot.draw(); // grab context and yank out pixels var gl = this.glplot.gl, w = gl.drawingBufferWidth, h = gl.drawingBufferHeight; + // force redraw + gl.clearColor(1, 1, 1, 0); + gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); + this.glplot.setDirty(); + this.glplot.draw(); + gl.bindFramebuffer(gl.FRAMEBUFFER, null); var pixels = new Uint8Array(w * h * 4); From 1d51b843712f78483990e7acfd0465c5cac48123 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Thu, 11 Jan 2018 15:42:56 +0300 Subject: [PATCH 4/5] Fix gl-plot2d reference --- src/plots/gl2d/scene2d.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plots/gl2d/scene2d.js b/src/plots/gl2d/scene2d.js index 094c74e62eb..26fd39b9146 100644 --- a/src/plots/gl2d/scene2d.js +++ b/src/plots/gl2d/scene2d.js @@ -13,7 +13,7 @@ var Registry = require('../../registry'); var Axes = require('../../plots/cartesian/axes'); var Fx = require('../../components/fx'); -var createPlot2D = require('../../../../gl-plot2d'); +var createPlot2D = require('gl-plot2d'); var createSpikes = require('gl-spikes2d'); var createSelectBox = require('gl-select-box'); var getContext = require('webgl-context'); From cd38db2467dc3c510b93becc3486db04e6e7effd Mon Sep 17 00:00:00 2001 From: Dmitry Date: Thu, 11 Jan 2018 17:17:34 +0300 Subject: [PATCH 5/5] Bump gl-plot2d --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a84b02157d0..6379a89d3b4 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "gl-line3d": "^1.1.0", "gl-mat4": "^1.1.2", "gl-mesh3d": "^1.3.0", - "gl-plot2d": "^1.2.0", + "gl-plot2d": "^1.3.0", "gl-plot3d": "^1.5.4", "gl-pointcloud2d": "^1.0.0", "gl-scatter2d": "^1.3.2",