Source: tiny/core/renderers/canvas/utils/CanvasRenderTarget.js

import settings from '../../../settings';

/**
 * Creates a Canvas element of the given size.
 *
 * @class
 * @memberof Tiny
 */
export default class CanvasRenderTarget {
  /**
   * @param {number} width - the width for the newly created canvas
   * @param {number} height - the height for the newly created canvas
   * @param {number} [resolution=1] - The resolution / device pixel ratio of the canvas
   */
  constructor(width, height, resolution) {
    /**
     * The Canvas object that belongs to this CanvasRenderTarget.
     *
     * @member {HTMLCanvasElement}
     */
    this.canvas = document.createElement('canvas');

    /**
     * A CanvasRenderingContext2D object representing a two-dimensional rendering context.
     *
     * @member {CanvasRenderingContext2D}
     */
    this.context = this.canvas.getContext('2d');

    this.resolution = resolution || settings.RESOLUTION;

    this.resize(width, height);
  }

  /**
   * Clears the canvas that was created by the CanvasRenderTarget class.
   *
   * @private
   */
  clear() {
    this.context.setTransform(1, 0, 0, 1, 0, 0);
    this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);
  }

  /**
   * Resizes the canvas to the specified width and height.
   *
   * @param {number} width - the new width of the canvas
   * @param {number} height - the new height of the canvas
   */
  resize(width, height) {
    this.canvas.width = width * this.resolution;
    this.canvas.height = height * this.resolution;
  }

  /**
   * Destroys this canvas.
   *
   */
  destroy() {
    this.context = null;
    this.canvas = null;
  }

  /**
   * The width of the canvas buffer in pixels.
   *
   * @member {number}
   */
  get width() {
    return this.canvas.width;
  }

  set width(val) {
    this.canvas.width = val;
  }

  /**
   * The height of the canvas buffer in pixels.
   *
   * @member {number}
   */
  get height() {
    return this.canvas.height;
  }

  set height(val) {
    this.canvas.height = val;
  }
}
Documentation generated by JSDoc 3.4.3 on Fri Jul 09 2021 19:32:25 GMT+0800 (CST)