function GridImageryProvider(options) {
  options = options ?? Frozen.EMPTY_OBJECT;

  this._defaultAlpha = undefined;
  this._defaultNightAlpha = undefined;
  this._defaultDayAlpha = undefined;
  this._defaultBrightness = undefined;
  this._defaultContrast = undefined;
  this._defaultHue = undefined;
  this._defaultSaturation = undefined;
  this._defaultGamma = undefined;
  this._defaultMinificationFilter = undefined;
  this._defaultMagnificationFilter = undefined;

  this._tilingScheme = defined(options.tilingScheme)
    ? options.tilingScheme
    : new GeographicTilingScheme({ ellipsoid: options.ellipsoid });
  this._cells = options.cells ?? 8;
  this._color = options.color ?? defaultColor;
  this._glowColor = options.glowColor ?? defaultGlowColor;
  this._glowWidth = options.glowWidth ?? 6;
  this._backgroundColor = options.backgroundColor ?? defaultBackgroundColor;
  this._errorEvent = new Event();

  this._tileWidth = options.tileWidth ?? 256;
  this._tileHeight = options.tileHeight ?? 256;

  // A little larger than tile size so lines are sharper
  // Note: can't be too much difference otherwise texture blowout
  this._canvasSize = options.canvasSize ?? 256;

  // We only need a single canvas since all tiles will be the same
  this._canvas = this._createGridCanvas();
}
An {@link ImageryProvider} that draws a wireframe grid on every tile with controllable background and glow.
May be useful for custom rendering effects or debugging terrain.

@alias GridImageryProvider
@constructor
@param {GridImageryProvider.ConstructorOptions} options Object describing initialization options