Buckets:
| import Binding from './Binding.js'; | |
| let _id = 0; | |
| /** | |
| * Represents a sampled texture binding type. | |
| * | |
| * @private | |
| * @augments Binding | |
| */ | |
| class SampledTexture extends Binding { | |
| /** | |
| * Constructs a new sampled texture. | |
| * | |
| * @param {string} name - The sampled texture's name. | |
| * @param {?Texture} texture - The texture this binding is referring to. | |
| */ | |
| constructor( name, texture ) { | |
| super( name ); | |
| /** | |
| * This identifier. | |
| * | |
| * @type {number} | |
| */ | |
| this.id = _id ++; | |
| /** | |
| * The texture this binding is referring to. | |
| * | |
| * @type {?Texture} | |
| */ | |
| this.texture = texture; | |
| /** | |
| * The binding's version. | |
| * | |
| * @type {number} | |
| */ | |
| this.version = texture ? texture.version : 0; | |
| /** | |
| * Whether the texture is a storage texture or not. | |
| * | |
| * @type {boolean} | |
| * @default false | |
| */ | |
| this.store = false; | |
| /** | |
| * The binding's generation which is an additional version | |
| * qualifier. | |
| * | |
| * @type {?number} | |
| * @default null | |
| */ | |
| this.generation = null; | |
| /** | |
| * This flag can be used for type testing. | |
| * | |
| * @type {boolean} | |
| * @readonly | |
| * @default true | |
| */ | |
| this.isSampledTexture = true; | |
| } | |
| /** | |
| * Returns `true` whether this binding requires an update for the | |
| * given generation. | |
| * | |
| * @param {number} generation - The generation. | |
| * @return {boolean} Whether an update is required or not. | |
| */ | |
| needsBindingsUpdate( generation ) { | |
| const { texture } = this; | |
| if ( generation !== this.generation ) { | |
| this.generation = generation; | |
| return true; | |
| } | |
| return texture.isVideoTexture; | |
| } | |
| /** | |
| * Updates the binding. | |
| * | |
| * @return {boolean} Whether the texture has been updated and must be | |
| * uploaded to the GPU. | |
| */ | |
| update() { | |
| const { texture, version } = this; | |
| if ( version !== texture.version ) { | |
| this.version = texture.version; | |
| return true; | |
| } | |
| return false; | |
| } | |
| } | |
| /** | |
| * Represents a sampled array texture binding type. | |
| * | |
| * @private | |
| * @augments SampledTexture | |
| */ | |
| class SampledArrayTexture extends SampledTexture { | |
| /** | |
| * Constructs a new sampled array texture. | |
| * | |
| * @param {string} name - The sampled array texture's name. | |
| * @param {?(DataArrayTexture|CompressedArrayTexture)} texture - The texture this binding is referring to. | |
| */ | |
| constructor( name, texture ) { | |
| super( name, texture ); | |
| /** | |
| * This flag can be used for type testing. | |
| * | |
| * @type {boolean} | |
| * @readonly | |
| * @default true | |
| */ | |
| this.isSampledArrayTexture = true; | |
| } | |
| } | |
| /** | |
| * Represents a sampled 3D texture binding type. | |
| * | |
| * @private | |
| * @augments SampledTexture | |
| */ | |
| class Sampled3DTexture extends SampledTexture { | |
| /** | |
| * Constructs a new sampled 3D texture. | |
| * | |
| * @param {string} name - The sampled 3D texture's name. | |
| * @param {?Data3DTexture} texture - The texture this binding is referring to. | |
| */ | |
| constructor( name, texture ) { | |
| super( name, texture ); | |
| /** | |
| * This flag can be used for type testing. | |
| * | |
| * @type {boolean} | |
| * @readonly | |
| * @default true | |
| */ | |
| this.isSampled3DTexture = true; | |
| } | |
| } | |
| /** | |
| * Represents a sampled cube texture binding type. | |
| * | |
| * @private | |
| * @augments SampledTexture | |
| */ | |
| class SampledCubeTexture extends SampledTexture { | |
| /** | |
| * Constructs a new sampled cube texture. | |
| * | |
| * @param {string} name - The sampled cube texture's name. | |
| * @param {?(CubeTexture|CompressedCubeTexture)} texture - The texture this binding is referring to. | |
| */ | |
| constructor( name, texture ) { | |
| super( name, texture ); | |
| /** | |
| * This flag can be used for type testing. | |
| * | |
| * @type {boolean} | |
| * @readonly | |
| * @default true | |
| */ | |
| this.isSampledCubeTexture = true; | |
| } | |
| } | |
| export { SampledTexture, SampledArrayTexture, Sampled3DTexture, SampledCubeTexture }; | |
Xet Storage Details
- Size:
- 3.74 kB
- Xet hash:
- bcebab5ce51447338caeeb368751276d0e96e39eaea1aaf2df0b60b41089ff97
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.