Skip to content

Commit 314dfdc

Browse files
committed
Use viewport to limit painting area instead of css
1 parent 4d17a53 commit 314dfdc

File tree

2 files changed

+20
-20
lines changed

2 files changed

+20
-20
lines changed

src/traces/parcoords/lines.js

+17-7
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
var createREGL = require('regl');
1212
var glslify = require('glslify');
13-
var verticalPadding = require('./constants').verticalPadding;
13+
var c = require('./constants');
1414
var vertexShaderSource = glslify('./shaders/vertex.glsl');
1515
var pickVertexShaderSource = glslify('./shaders/pick_vertex.glsl');
1616
var fragmentShaderSource = glslify('./shaders/fragment.glsl');
@@ -56,7 +56,8 @@ function renderBlock(regl, glAes, renderState, blockLineCount, sampleCount, item
5656
item.offset = sectionVertexCount * blockNumber * blockLineCount;
5757
item.count = sectionVertexCount * count;
5858
if(blockNumber === 0) {
59-
window.cancelAnimationFrame(renderState.currentRafs[rafKey]); // stop drawing possibly stale glyphs before clearing
59+
// stop drawing possibly stale glyphs before clearing
60+
window.cancelAnimationFrame(renderState.currentRafs[rafKey]);
6061
delete renderState.currentRafs[rafKey];
6162
clear(regl, item.scissorX, item.scissorY, item.scissorWidth, item.viewBoxSize[1]);
6263
}
@@ -167,7 +168,8 @@ function valid(i, offset, panelCount) {
167168

168169
module.exports = function(canvasGL, d, scatter) {
169170
var model = d.model,
170-
vm = d.viewModel;
171+
vm = d.viewModel,
172+
domain = model.domain;
171173

172174
var lines = model.lines,
173175
canvasWidth = model.canvasWidth,
@@ -178,7 +180,6 @@ module.exports = function(canvasGL, d, scatter) {
178180
context = d.context,
179181
pick = d.pick;
180182

181-
182183
var renderState = {
183184
currentRafs: {},
184185
drawCompleted: true,
@@ -260,6 +261,15 @@ module.exports = function(canvasGL, d, scatter) {
260261
}
261262
},
262263

264+
viewport: () => {
265+
return {
266+
x: model.pad.l - overdrag + model.layoutWidth * domain.x[0],
267+
y: model.pad.b + model.layoutHeight * domain.y[0],
268+
width: canvasWidth,
269+
height: canvasHeight
270+
}
271+
},
272+
263273
dither: false,
264274

265275
vert: pick ? pickVertexShaderSource : vertexShaderSource,
@@ -309,7 +319,7 @@ module.exports = function(canvasGL, d, scatter) {
309319
function makeItem(i, ii, x, y, panelSizeX, canvasPanelSizeY, crossfilterDimensionIndex, scatter, I, leftmost, rightmost) {
310320
var loHi, abcd, d, index;
311321
var leftRight = [i, ii];
312-
var filterEpsilon = verticalPadding / canvasPanelSizeY;
322+
var filterEpsilon = c.verticalPadding / canvasPanelSizeY;
313323

314324
var dims = [0, 1].map(function() {return [0, 1, 2, 3].map(function() {return new Float32Array(16);});});
315325
var lims = [0, 1].map(function() {return [0, 1, 2, 3].map(function() {return new Float32Array(16);});});
@@ -353,9 +363,9 @@ module.exports = function(canvasGL, d, scatter) {
353363

354364
colorClamp: colorClamp,
355365
scatter: scatter || 0,
356-
scissorX: I === leftmost ? 0 : x + overdrag,
366+
scissorX: (I === leftmost ? 0 : x + overdrag) + (model.pad.l - overdrag) + model.layoutWidth * domain.x[0],
357367
scissorWidth: (I === rightmost ? canvasWidth - x + overdrag : panelSizeX + 0.5) + (I === leftmost ? x + overdrag : 0),
358-
scissorY: y,
368+
scissorY: y + model.pad.b + model.layoutHeight * domain.y[0],
359369
scissorHeight: canvasPanelSizeY
360370
};
361371
}

src/traces/parcoords/parcoords.js

+3-13
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,9 @@ function model(layout, d, i) {
166166
labelFont: labelFont,
167167
tickFont: tickFont,
168168
rangeFont: rangeFont,
169+
layoutWidth: width,
170+
layoutHeight: layout.height,
171+
domain: domain,
169172
translateX: domain.x[0] * width,
170173
translateY: layout.height - domain.y[1] * layout.height,
171174
pad: pad,
@@ -292,11 +295,6 @@ module.exports = function(root, svg, parcoordsLineLayers, styledData, layout, ca
292295
return Lib.extendFlat(d, vm[i]);
293296
});
294297

295-
parcoordsLineLayers
296-
.style('transform', function(d) {
297-
return 'translate(' + (d.model.translateX - c.overdrag) + 'px,' + d.model.translateY + 'px)';
298-
});
299-
300298
var parcoordsLineLayer = parcoordsLineLayers.selectAll('.gl-canvas')
301299
.each(function(d) {
302300
var key = d.key;
@@ -350,14 +348,6 @@ module.exports = function(root, svg, parcoordsLineLayers, styledData, layout, ca
350348
});
351349

352350
parcoordsLineLayer
353-
.style('margin', function(d) {
354-
var p = d.model.pad;
355-
return p.t + 'px ' + p.r + 'px ' + p.b + 'px ' + p.l + 'px';
356-
})
357-
.attr('width', function(d) {return d.model.canvasWidth;})
358-
.attr('height', function(d) {return d.model.canvasHeight;})
359-
.style('width', function(d) {return (d.model.width + 2 * c.overdrag) + 'px';})
360-
.style('height', function(d) {return d.model.height + 'px';})
361351
.style('opacity', function(d) {return d.pick ? 0.01 : 1;});
362352

363353
svg.style('background', 'rgba(255, 255, 255, 0)');

0 commit comments

Comments
 (0)