Source: core/renderers/webgl/managers/BlendModeManager.js

core/renderers/webgl/managers/BlendModeManager.js

  1. import WebGLManager from './WebGLManager';
  2. /**
  3. * @class
  4. * @memberof PIXI
  5. * @extends PIXI.WebGLManager
  6. */
  7. export default class BlendModeManager extends WebGLManager
  8. {
  9. /**
  10. * @param {PIXI.WebGLRenderer} renderer - The renderer this manager works for.
  11. */
  12. constructor(renderer)
  13. {
  14. super(renderer);
  15. /**
  16. * @member {number}
  17. */
  18. this.currentBlendMode = 99999;
  19. }
  20. /**
  21. * Sets-up the given blendMode from WebGL's point of view.
  22. *
  23. * @param {number} blendMode - the blendMode, should be a PixiJS const, such as
  24. * `PIXI.BLEND_MODES.ADD`. See {@link PIXI.BLEND_MODES} for possible values.
  25. * @return {boolean} Returns if the blend mode was changed.
  26. */
  27. setBlendMode(blendMode)
  28. {
  29. if (this.currentBlendMode === blendMode)
  30. {
  31. return false;
  32. }
  33. this.currentBlendMode = blendMode;
  34. const mode = this.renderer.blendModes[this.currentBlendMode];
  35. this.renderer.gl.blendFunc(mode[0], mode[1]);
  36. return true;
  37. }
  38. }