NodeSampledTexture.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import { SampledTexture } from '../SampledTexture.js';
  2. class NodeSampledTexture extends SampledTexture {
  3. constructor( name, textureNode, access = null ) {
  4. super( name, textureNode ? textureNode.value : null );
  5. this.textureNode = textureNode;
  6. this.access = access;
  7. }
  8. get needsBindingsUpdate() {
  9. return this.textureNode.value !== this.texture || super.needsBindingsUpdate;
  10. }
  11. update() {
  12. const { textureNode } = this;
  13. if ( this.texture !== textureNode.value ) {
  14. this.texture = textureNode.value;
  15. return true;
  16. }
  17. return super.update();
  18. }
  19. }
  20. class NodeSampledCubeTexture extends NodeSampledTexture {
  21. constructor( name, textureNode, access ) {
  22. super( name, textureNode, access );
  23. this.isSampledCubeTexture = true;
  24. }
  25. }
  26. class NodeSampledTexture3D extends NodeSampledTexture {
  27. constructor( name, textureNode, access ) {
  28. super( name, textureNode, access );
  29. this.isSampledTexture3D = true;
  30. }
  31. }
  32. export { NodeSampledTexture, NodeSampledCubeTexture, NodeSampledTexture3D };