constructor(vrDisplay, renderer) {
    this.vrDisplay = vrDisplay;
    // Only with ARKit and the camera frames are not being passed, we should
    // not do anything and let the transparent webview show the camera
    // underneath.
    if (isARKit(this.vrDisplay) && !window.WebARonARKitSendsCameraFrames) {
      return;
    }
    this.renderer = renderer;
    this.gl = renderer.context;

    this.videoRenderer = new ARVideoRenderer(vrDisplay, this.gl);

    // Cache the width/height so we're not potentially forcing
    // a reflow if there's been a style invalidation
    this.width = window.innerWidth;
    this.height = window.innerHeight;
    window.addEventListener('resize', this.onWindowResize.bind(this), false);
  }
@param {VRDisplay} vrDisplay
@param {THREE.WebGLRenderer} renderer