Source: render/RenderTargetBase.js

  1. import { EventDispatcher } from '../EventDispatcher.js';
  2. /**
  3. * Render Target is the wrapping class of gl.framebuffer.
  4. * @constructor
  5. * @memberof zen3d
  6. * @extends zen3d.EventDispatcher
  7. * @abstract
  8. * @param {number} width - The width of the render target.
  9. * @param {number} height - The height of the render target.
  10. */
  11. function RenderTargetBase(width, height) {
  12. EventDispatcher.call(this);
  13. /**
  14. * The width of the render target.
  15. * @type {number}
  16. */
  17. this.width = width;
  18. /**
  19. * The height of the render target.
  20. * @type {number}
  21. */
  22. this.height = height;
  23. }
  24. RenderTargetBase.prototype = Object.assign(Object.create(EventDispatcher.prototype), /** @lends zen3d.RenderTargetBase.prototype */{
  25. constructor: RenderTargetBase,
  26. isRenderTarget: true,
  27. /**
  28. * Resize the render target.
  29. * @param {number} width - The width of the render target.
  30. * @param {number} height - The height of the render target.
  31. * @return {boolean} - If size changed.
  32. */
  33. resize: function(width, height) {
  34. if (this.width !== width || this.height !== height) {
  35. this.dispose();
  36. this.width = width;
  37. this.height = height;
  38. return true;
  39. }
  40. return false;
  41. },
  42. /**
  43. * Dispatches a dispose event.
  44. */
  45. dispose: function() {
  46. this.dispatchEvent({ type: 'dispose' });
  47. }
  48. });
  49. export { RenderTargetBase };