Home Reference Source

src/materials/CopyMaterial.js

  1. import { NoBlending, ShaderMaterial, Uniform } from "three";
  2.  
  3. import fragmentShader from "./glsl/copy.frag";
  4. import vertexShader from "./glsl/common.vert";
  5.  
  6. /**
  7. * A simple copy shader material.
  8. */
  9.  
  10. export class CopyMaterial extends ShaderMaterial {
  11.  
  12. /**
  13. * Constructs a new copy material.
  14. */
  15.  
  16. constructor() {
  17.  
  18. super({
  19. name: "CopyMaterial",
  20. uniforms: {
  21. inputBuffer: new Uniform(null),
  22. opacity: new Uniform(1.0)
  23. },
  24. blending: NoBlending,
  25. toneMapped: false,
  26. depthWrite: false,
  27. depthTest: false,
  28. fragmentShader,
  29. vertexShader
  30. });
  31.  
  32. }
  33.  
  34. /**
  35. * The input buffer.
  36. *
  37. * @type {Texture}
  38. */
  39.  
  40. set inputBuffer(value) {
  41.  
  42. this.uniforms.inputBuffer.value = value;
  43.  
  44. }
  45.  
  46. /**
  47. * Sets the input buffer.
  48. *
  49. * @deprecated Use inputBuffer instead.
  50. * @param {Number} value - The buffer.
  51. */
  52.  
  53. setInputBuffer(value) {
  54.  
  55. this.uniforms.inputBuffer.value = value;
  56.  
  57. }
  58.  
  59. /**
  60. * Returns the opacity.
  61. *
  62. * @deprecated Use opacity instead.
  63. * @return {Number} The opacity.
  64. */
  65.  
  66. getOpacity(value) {
  67.  
  68. return this.uniforms.opacity.value;
  69.  
  70. }
  71.  
  72. /**
  73. * Sets the opacity.
  74. *
  75. * @deprecated Use opacity instead.
  76. * @param {Number} value - The opacity.
  77. */
  78.  
  79. setOpacity(value) {
  80.  
  81. this.uniforms.opacity.value = value;
  82.  
  83. }
  84.  
  85. }