| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 | import Check from "../Core/Check.js";import defaultValue from "../Core/defaultValue.js";import defined from "../Core/defined.js";import destroyObject from "../Core/destroyObject.js";import DeveloperError from "../Core/DeveloperError.js";import ContextLimits from "./ContextLimits.js";import RenderbufferFormat from "./RenderbufferFormat.js";/** * @private */function Renderbuffer(options) {  options = defaultValue(options, defaultValue.EMPTY_OBJECT);  //>>includeStart('debug', pragmas.debug);  Check.defined("options.context", options.context);  //>>includeEnd('debug');  const context = options.context;  const gl = context._gl;  const maximumRenderbufferSize = ContextLimits.maximumRenderbufferSize;  const format = defaultValue(options.format, RenderbufferFormat.RGBA4);  const width = defined(options.width) ? options.width : gl.drawingBufferWidth;  const height = defined(options.height)    ? options.height    : gl.drawingBufferHeight;  const numSamples = defaultValue(options.numSamples, 1);  //>>includeStart('debug', pragmas.debug);  if (!RenderbufferFormat.validate(format)) {    throw new DeveloperError("Invalid format.");  }  Check.typeOf.number.greaterThan("width", width, 0);  if (width > maximumRenderbufferSize) {    throw new DeveloperError(      `Width must be less than or equal to the maximum renderbuffer size (${maximumRenderbufferSize}).  Check maximumRenderbufferSize.`    );  }  Check.typeOf.number.greaterThan("height", height, 0);  if (height > maximumRenderbufferSize) {    throw new DeveloperError(      `Height must be less than or equal to the maximum renderbuffer size (${maximumRenderbufferSize}).  Check maximumRenderbufferSize.`    );  }  //>>includeEnd('debug');  this._gl = gl;  this._format = format;  this._width = width;  this._height = height;  this._renderbuffer = this._gl.createRenderbuffer();  gl.bindRenderbuffer(gl.RENDERBUFFER, this._renderbuffer);  if (numSamples > 1) {    gl.renderbufferStorageMultisample(      gl.RENDERBUFFER,      numSamples,      format,      width,      height    );  } else {    gl.renderbufferStorage(gl.RENDERBUFFER, format, width, height);  }  gl.bindRenderbuffer(gl.RENDERBUFFER, null);}Object.defineProperties(Renderbuffer.prototype, {  format: {    get: function () {      return this._format;    },  },  width: {    get: function () {      return this._width;    },  },  height: {    get: function () {      return this._height;    },  },});Renderbuffer.prototype._getRenderbuffer = function () {  return this._renderbuffer;};Renderbuffer.prototype.isDestroyed = function () {  return false;};Renderbuffer.prototype.destroy = function () {  this._gl.deleteRenderbuffer(this._renderbuffer);  return destroyObject(this);};export default Renderbuffer;
 |