最新代码
This commit is contained in:
83
public/sdk/three/jsm/renderers/common/SampledTexture.js
Normal file
83
public/sdk/three/jsm/renderers/common/SampledTexture.js
Normal file
@ -0,0 +1,83 @@
|
||||
import Binding from './Binding.js';
|
||||
|
||||
let id = 0;
|
||||
|
||||
class SampledTexture extends Binding {
|
||||
|
||||
constructor( name, texture ) {
|
||||
|
||||
super( name );
|
||||
|
||||
this.id = id ++;
|
||||
|
||||
this.texture = texture;
|
||||
this.version = texture ? texture.version : 0;
|
||||
this.store = false;
|
||||
|
||||
this.isSampledTexture = true;
|
||||
|
||||
}
|
||||
|
||||
get needsBindingsUpdate() {
|
||||
|
||||
const { texture, version } = this;
|
||||
|
||||
return texture.isVideoTexture ? true : version !== texture.version; // @TODO: version === 0 && texture.version > 0 ( add it just to External Textures like PNG,JPG )
|
||||
|
||||
}
|
||||
|
||||
update() {
|
||||
|
||||
const { texture, version } = this;
|
||||
|
||||
if ( version !== texture.version ) {
|
||||
|
||||
this.version = texture.version;
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class SampledArrayTexture extends SampledTexture {
|
||||
|
||||
constructor( name, texture ) {
|
||||
|
||||
super( name, texture );
|
||||
|
||||
this.isSampledArrayTexture = true;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Sampled3DTexture extends SampledTexture {
|
||||
|
||||
constructor( name, texture ) {
|
||||
|
||||
super( name, texture );
|
||||
|
||||
this.isSampled3DTexture = true;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class SampledCubeTexture extends SampledTexture {
|
||||
|
||||
constructor( name, texture ) {
|
||||
|
||||
super( name, texture );
|
||||
|
||||
this.isSampledCubeTexture = true;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export { SampledTexture, SampledArrayTexture, Sampled3DTexture, SampledCubeTexture };
|
Reference in New Issue
Block a user