function onWebGLInitialized()

in examples/experimental/interleaved-buffer/app.js [20:83]


function onWebGLInitialized(gl) {
  const buffer = new Buffer(gl, data);

  const positions = {buffer, type: GL.FLOAT, size: 3, offset: 4, stride: 16};
  const colors = {buffer, type: GL.UNSIGNED_BYTE, size: 4, offset: 0, stride: 16};
  const indices = new Uint16Array([0, 1, 2, 3, 4, 5, 4, 5, 6]);

  const layers = [
    new SolidPolygonLayer({
      id: 'polygons',
      data: {
        length: 2,
        startIndices: [0, 3],
        attributes: {
          indices,
          getPolygon: positions,
          getFillColor: colors
        }
      },
      pickable: true,
      autoHighlight: true,
      _normalize: false, // this instructs SolidPolygonLayer to skip normalization and use the binary as is
      getWidth: 0.5
    }),

    new PathLayer({
      id: 'paths',
      data: {
        length: 2,
        startIndices: [0, 3],
        attributes: {
          // PathLayer expects padded positions (1 vertex to the left & 2 vertices to the right)
          // So it cannot share the same buffer with other layers without padding
          // TODO - handle in PathTesselator?
          getPath: {value: data, size: 3, offset: 4, stride: 16},
          getColor: colors
        }
      },
      pickable: true,
      autoHighlight: true,
      _pathType: 'open', // this instructs PathLayer to skip normalization and use the binary as is
      getWidth: 0.5
    }),

    new ScatterplotLayer({
      id: 'points',
      data: {
        length: 7,
        attributes: {
          getPosition: positions,
          getLineColor: colors
        }
      },
      pickable: true,
      autoHighlight: true,
      stroked: true,
      filled: false,
      getRadius: 1,
      getLineWidth: 0.5
    })
  ];

  deck.setProps({layers});
}