import defined from "./defined.js"; /** * Describes a compressed texture and contains a compressed texture buffer. * @alias CompressedTextureBuffer * @constructor * * @param {PixelFormat} internalFormat The pixel format of the compressed texture. * @param {PixelDatatype} pixelDatatype The pixel datatype of the compressed texture. * @param {Number} width The width of the texture. * @param {Number} height The height of the texture. * @param {Uint8Array} buffer The compressed texture buffer. */ function CompressedTextureBuffer( internalFormat, pixelDatatype, width, height, buffer ) { this._format = internalFormat; this._datatype = pixelDatatype; this._width = width; this._height = height; this._buffer = buffer; } Object.defineProperties(CompressedTextureBuffer.prototype, { /** * The format of the compressed texture. * @type PixelFormat * @readonly * @memberof CompressedTextureBuffer.prototype */ internalFormat: { get: function () { return this._format; }, }, /** * The datatype of the compressed texture. * @type PixelDatatype * @readonly * @memberof CompressedTextureBuffer.prototype */ pixelDatatype: { get: function () { return this._datatype; }, }, /** * The width of the texture. * @type Number * @readonly * @memberof CompressedTextureBuffer.prototype */ width: { get: function () { return this._width; }, }, /** * The height of the texture. * @type Number * @readonly * @memberof CompressedTextureBuffer.prototype */ height: { get: function () { return this._height; }, }, /** * The compressed texture buffer. * @type Uint8Array * @readonly * @memberof CompressedTextureBuffer.prototype */ bufferView: { get: function () { return this._buffer; }, }, }); /** * Creates a shallow clone of a compressed texture buffer. * * @param {CompressedTextureBuffer} object The compressed texture buffer to be cloned. * @return {CompressedTextureBuffer} A shallow clone of the compressed texture buffer. */ CompressedTextureBuffer.clone = function (object) { if (!defined(object)) { return undefined; } return new CompressedTextureBuffer( object._format, object._datatype, object._width, object._height, object._buffer ); }; /** * Creates a shallow clone of this compressed texture buffer. * * @return {CompressedTextureBuffer} A shallow clone of the compressed texture buffer. */ CompressedTextureBuffer.prototype.clone = function () { return CompressedTextureBuffer.clone(this); }; export default CompressedTextureBuffer;