You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
2.2 KiB
JavaScript

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 {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, width, height, buffer) {
this._format = internalFormat;
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 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._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;