// In practice, you would probably import/require regl // const regl = require('regl')(); // In this block, it is already loaded, so we just // initialize it. For more info, see: // https://github.com/regl-project/regl#standalone-script-tag var regl = createREGL(); var drawDots = regl({ frag: ` precision mediump float; uniform vec4 color; void main () { gl_FragColor = color; }`, vert: ` precision mediump float; attribute vec2 position; // @change acquire the pointWidth uniform // this is set by the uniforms section below uniform float pointWidth; void main () { // @change Set gl_PointSize global to // configure point size gl_PointSize = pointWidth; gl_Position = vec4(position, 0, 1); }`, attributes: { position: function(context, props) { // @change I tweaked the constants here so // the dots are not off the screen return [ [-1 * Math.cos(context.tick / 100), 0.2], [Math.sin(context.tick / 100), -0.8], [Math.sin(context.tick / 100), 0.8] ]; } }, uniforms: { color: function(context, props) { return props.color; }, // @change: Add a pointWidth uniform - // set by a prop pointWidth: regl.prop('pointWidth') }, count: 3, // @change: Set our primitive to points primitive: 'points' }) regl.frame(function(context) { drawDots({ color: [0.208, 0.304, 1.000, 1.000], // @change: Pass in the pointWidth prop pointWidth: 10.0 }); });