MaskPass.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. THREE.MaskPass = function(e, t) {
  2. this.scene = e,
  3. this.camera = t,
  4. this.enabled = !0,
  5. this.clear = !0,
  6. this.needsSwap = !1,
  7. this.inverse = !1
  8. }
  9. ,
  10. THREE.MaskPass.prototype = {
  11. render: function(e, t, i, n) {
  12. var r = e.context;
  13. r.colorMask(!1, !1, !1, !1),
  14. r.depthMask(!1);
  15. var o, a;
  16. this.inverse ? (o = 0,
  17. a = 1) : (o = 1,
  18. a = 0),
  19. r.enable(r.STENCIL_TEST),
  20. r.stencilOp(r.REPLACE, r.REPLACE, r.REPLACE),
  21. r.stencilFunc(r.ALWAYS, o, 4294967295),
  22. r.clearStencil(a),
  23. e.render(this.scene, this.camera, i, this.clear),
  24. e.render(this.scene, this.camera, t, this.clear),
  25. r.colorMask(!0, !0, !0, !0),
  26. r.depthMask(!0),
  27. r.stencilFunc(r.EQUAL, 1, 4294967295),
  28. r.stencilOp(r.KEEP, r.KEEP, r.KEEP)
  29. }
  30. },
  31. THREE.ClearMaskPass = function() {
  32. this.enabled = !0
  33. }
  34. ,
  35. THREE.ClearMaskPass.prototype = {
  36. render: function(e, t, i, n) {
  37. var r = e.context;
  38. r.disable(r.STENCIL_TEST)
  39. }
  40. }