50 lines
767 B
JavaScript
50 lines
767 B
JavaScript
|
import { SampledTexture } from '../SampledTexture.js';
|
||
|
|
||
|
class NodeSampledTexture extends SampledTexture {
|
||
|
|
||
|
constructor( name, textureNode ) {
|
||
|
|
||
|
super( name, textureNode ? textureNode.value : null );
|
||
|
|
||
|
this.textureNode = textureNode;
|
||
|
|
||
|
}
|
||
|
|
||
|
get needsBindingsUpdate() {
|
||
|
|
||
|
return this.textureNode.value !== this.texture || super.needsBindingsUpdate;
|
||
|
|
||
|
}
|
||
|
|
||
|
update() {
|
||
|
|
||
|
const { textureNode } = this;
|
||
|
|
||
|
if ( this.texture !== textureNode.value ) {
|
||
|
|
||
|
this.texture = textureNode.value;
|
||
|
|
||
|
return true;
|
||
|
|
||
|
}
|
||
|
|
||
|
return super.update();
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
class NodeSampledCubeTexture extends NodeSampledTexture {
|
||
|
|
||
|
constructor( name, textureNode ) {
|
||
|
|
||
|
super( name, textureNode );
|
||
|
|
||
|
this.isSampledCubeTexture = true;
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
export { NodeSampledTexture, NodeSampledCubeTexture };
|