10
10
11
11
var createREGL = require ( 'regl' ) ;
12
12
var glslify = require ( 'glslify' ) ;
13
- var verticalPadding = require ( './constants' ) . verticalPadding ;
13
+ var c = require ( './constants' ) ;
14
14
var vertexShaderSource = glslify ( './shaders/vertex.glsl' ) ;
15
15
var pickVertexShaderSource = glslify ( './shaders/pick_vertex.glsl' ) ;
16
16
var fragmentShaderSource = glslify ( './shaders/fragment.glsl' ) ;
@@ -56,7 +56,8 @@ function renderBlock(regl, glAes, renderState, blockLineCount, sampleCount, item
56
56
item . offset = sectionVertexCount * blockNumber * blockLineCount ;
57
57
item . count = sectionVertexCount * count ;
58
58
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 ] ) ;
60
61
delete renderState . currentRafs [ rafKey ] ;
61
62
clear ( regl , item . scissorX , item . scissorY , item . scissorWidth , item . viewBoxSize [ 1 ] ) ;
62
63
}
@@ -167,7 +168,8 @@ function valid(i, offset, panelCount) {
167
168
168
169
module . exports = function ( canvasGL , d , scatter ) {
169
170
var model = d . model ,
170
- vm = d . viewModel ;
171
+ vm = d . viewModel ,
172
+ domain = model . domain ;
171
173
172
174
var lines = model . lines ,
173
175
canvasWidth = model . canvasWidth ,
@@ -178,7 +180,6 @@ module.exports = function(canvasGL, d, scatter) {
178
180
context = d . context ,
179
181
pick = d . pick ;
180
182
181
-
182
183
var renderState = {
183
184
currentRafs : { } ,
184
185
drawCompleted : true ,
@@ -260,6 +261,15 @@ module.exports = function(canvasGL, d, scatter) {
260
261
}
261
262
} ,
262
263
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
+
263
273
dither : false ,
264
274
265
275
vert : pick ? pickVertexShaderSource : vertexShaderSource ,
@@ -309,7 +319,7 @@ module.exports = function(canvasGL, d, scatter) {
309
319
function makeItem ( i , ii , x , y , panelSizeX , canvasPanelSizeY , crossfilterDimensionIndex , scatter , I , leftmost , rightmost ) {
310
320
var loHi , abcd , d , index ;
311
321
var leftRight = [ i , ii ] ;
312
- var filterEpsilon = verticalPadding / canvasPanelSizeY ;
322
+ var filterEpsilon = c . verticalPadding / canvasPanelSizeY ;
313
323
314
324
var dims = [ 0 , 1 ] . map ( function ( ) { return [ 0 , 1 , 2 , 3 ] . map ( function ( ) { return new Float32Array ( 16 ) ; } ) ; } ) ;
315
325
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) {
353
363
354
364
colorClamp : colorClamp ,
355
365
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 ] ,
357
367
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 ] ,
359
369
scissorHeight : canvasPanelSizeY
360
370
} ;
361
371
}
0 commit comments