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

  const {
    context,
    width,
    height,
    colorRenderbuffers,
    colorTextures,
    depthStencilRenderbuffer,
    depthStencilTexture,
    destroyAttachments,
  } = options;

  //>>includeStart('debug', pragmas.debug);
  Check.defined("options.context", context);
  Check.defined("options.width", width);
  Check.defined("options.height", height);
  //>>includeEnd('debug');

  this._width = width;
  this._height = height;

  if (defined(colorRenderbuffers) !== defined(colorTextures)) {
    throw new DeveloperError(
      "Both color renderbuffer and texture attachments must be provided.",
    );
  }

  if (defined(depthStencilRenderbuffer) !== defined(depthStencilTexture)) {
    throw new DeveloperError(
      "Both depth-stencil renderbuffer and texture attachments must be provided.",
    );
  }

  this._renderFramebuffer = new Framebuffer({
    context: context,
    colorRenderbuffers: colorRenderbuffers,
    depthStencilRenderbuffer: depthStencilRenderbuffer,
    destroyAttachments: destroyAttachments,
  });
  this._colorFramebuffer = new Framebuffer({
    context: context,
    colorTextures: colorTextures,
    depthStencilTexture: depthStencilTexture,
    destroyAttachments: destroyAttachments,
  });
}
Creates a multisampling wrapper around two framebuffers with optional initial
color and depth-stencil attachments. The first framebuffer has multisampled
renderbuffer attachments and is bound to READ_FRAMEBUFFER during the blit. The
second is bound to DRAW_FRAMEBUFFER during the blit, and has texture attachments
to store the copied pixels.

@param {object} options Object with the following properties:
@param {Context} options.context
@param {number} options.width
@param {number} options.height
@param {Texture[]} [options.colorTextures]
@param {Renderbuffer[]} [options.colorRenderbuffers]
@param {Texture} [options.depthStencilTexture]
@param {Renderbuffer} [options.depthStencilRenderbuffer]
@param {boolean} [options.destroyAttachments]

@exception {DeveloperError} Both color renderbuffer and texture attachments must be provided.
@exception {DeveloperError} Both depth-stencil renderbuffer and texture attachments must be provided.

@private
@constructor