Coveralls logob
Coveralls logo
  • Home
  • Features
  • Pricing
  • Docs
  • Sign In

uber / deck.gl / 13127

29 Aug 2019 - 17:33 coverage increased (+2.5%) to 83.552%
13127

Pull #3507

travis-ci-com

9181eb84f9c35729a3bad740fb7f9d93?size=18&default=identiconweb-flow
update the component-wrapping-rfc.md
Pull Request #3507: update the component-wrapping-rfc.md

3393 of 4570 branches covered (74.25%)

Branch coverage included in aggregate %.

7066 of 7948 relevant lines covered (88.9%)

3403.06 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

60.27
/modules/core/src/lib/attribute-transition-utils.js
1
import {Buffer} from '@luma.gl/core';
2
import {padArray} from '../utils/array-utils';
3

4
const ATTRIBUTE_MAPPING = {
1×
5
  1: 'float',
6
  2: 'vec2',
7
  3: 'vec3',
8
  4: 'vec4'
9
};
10

11
const noop = () => {};
9×
12
const DEFAULT_TRANSITION_SETTINGS = {
10×
13
  duration: 0,
14
  easing: t => t,
9×
15
  onStart: noop,
16
  onEnd: noop,
17
  onInterrupt: noop
18
};
19

20
export function normalizeTransitionSettings(settings) {
21
  if (!settings) {
9×
22
    return null;
1×
23
  }
24
  if (Number.isFinite(settings)) {
1×
25
    settings = {duration: settings};
1×
26
  }
27
  if (!settings.duration) {
Branches [[2, 0]] missed. 2×
28
    return null;
1×
29
  }
30
  return Object.assign({}, DEFAULT_TRANSITION_SETTINGS, settings);
1×
31
}
32

33
export function getShaders(transitions) {
34
  // Build shaders
35
  const varyings = [];
1×
36
  const attributeDeclarations = [];
14×
37
  const uniformsDeclarations = [];
12×
38
  const varyingDeclarations = [];
1×
39
  const calculations = [];
11×
40

41
  for (const attributeName in transitions) {
8×
42
    const transition = transitions[attributeName];
11×
UNCOV
43
    const attributeType = ATTRIBUTE_MAPPING[transition.attribute.size];
!
44

45
    if (attributeType) {
Branches [[3, 1]] missed. 11×
46
      transition.bufferIndex = varyings.length;
1×
47
      varyings.push(attributeName);
1×
48

49
      attributeDeclarations.push(`attribute ${attributeType} ${attributeName}From;`);
1×
50
      attributeDeclarations.push(`attribute ${attributeType} ${attributeName}To;`);
1×
51
      uniformsDeclarations.push(`uniform float ${attributeName}Time;`);
1×
52
      varyingDeclarations.push(`varying ${attributeType} ${attributeName};`);
1×
53
      calculations.push(`${attributeName} = mix(${attributeName}From, ${attributeName}To,
2×
54
        ${attributeName}Time);`);
55
    }
56
  }
57

58
  const vs = `
2×
59
#define SHADER_NAME feedback-vertex-shader
60
${attributeDeclarations.join('\n')}
61
${uniformsDeclarations.join('\n')}
62
${varyingDeclarations.join('\n')}
63

64
void main(void) {
65
  ${calculations.join('\n')}
66
  gl_Position = vec4(0.0);
67
}
68
`;
69

70
  const fs = `\
2×
71
#define SHADER_NAME feedback-fragment-shader
72

73
precision highp float;
74

75
${varyingDeclarations.join('\n')}
76

77
void main(void) {
78
  gl_FragColor = vec4(0.0);
79
}
80
`;
81
  return {vs, fs, varyings};
2×
82
}
83

84
export function getBuffers(transitions) {
85
  const sourceBuffers = {};
2×
86
  const feedbackBuffers = {};
2×
87
  for (const attributeName in transitions) {
2×
88
    const {fromState, toState, buffer} = transitions[attributeName];
2×
89
    sourceBuffers[`${attributeName}From`] =
2×
90
      fromState instanceof Buffer ? [fromState, {divisor: 0, offset: toState.offset}] : fromState;
Branches [[4, 0], [4, 1]] missed.
91
    sourceBuffers[`${attributeName}To`] = toState;
2×
92
    feedbackBuffers[`${attributeName}`] = {buffer, byteOffset: toState.offset};
1×
93
  }
94
  return {sourceBuffers, feedbackBuffers};
1×
95
}
96

97
export function padBuffer({
98
  fromState,
99
  toState,
100
  fromLength,
101
  toLength,
102
  fromBufferLayout,
103
  toBufferLayout,
104
  offset,
105
  getData = x => x
Branches [[5, 0]] missed. 1×
106
}) {
107
  const hasBufferLayout = fromBufferLayout && toBufferLayout;
Branches [[6, 0], [6, 1]] missed. !
108

109
  // check if buffer needs to be padded
110
  if ((!hasBufferLayout && fromLength >= toLength) || !(fromState instanceof Buffer)) {
Branches [[7, 0], [7, 1], [8, 0], [8, 1], [8, 2]] missed. !
111
    return;
!
112
  }
113

114
  const data = new Float32Array(toLength);
!
115
  const fromData = fromState.getData({});
!
116

117
  const {size, constant} = toState;
!
118
  const toData = constant ? toState.getValue() : toState.getBuffer().getData({});
Branches [[9, 0], [9, 1]] missed. !
119

120
  const getMissingData = constant
Branches [[10, 0], [10, 1]] missed. !
121
    ? (i, chunk) => getData(toData, chunk)
!
122
    : (i, chunk) => getData(toData.subarray(i, i + size), chunk);
!
123

124
  padArray({
!
125
    source: fromData,
126
    target: data,
127
    sourceLayout: fromBufferLayout,
128
    targetLayout: toBufferLayout,
129
    offset,
130
    size: toState.size,
131
    getData: getMissingData
132
  });
133

134
  fromState.setData({data});
!
135
}
Troubleshooting · Open an Issue · Sales · Support · ENTERPRISE · CAREERS · STATUS
BLOG · TWITTER · Legal & Privacy · Supported CI Services · What's a CI service? · Automated Testing

© 2019 Coveralls, LLC