Newer
Older
pixi.js / lib / prepare / limiters / TimeLimiter.js
@Matt Karl Matt Karl on 16 Nov 2016 1 KB 4.2.1
"use strict";

exports.__esModule = true;

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

/**
 * TimeLimiter limits the number of items handled by a {@link PIXI.BasePrepare} to a specified
 * number of milliseconds per frame.
 *
 * @class
 * @memberof PIXI
 */
var TimeLimiter = function () {
  /**
   * @param {number} maxMilliseconds - The maximum milliseconds that can be spent preparing items each frame.
   */
  function TimeLimiter(maxMilliseconds) {
    _classCallCheck(this, TimeLimiter);

    /**
     * The maximum milliseconds that can be spent preparing items each frame.
     * @private
     */
    this.maxMilliseconds = maxMilliseconds;
    /**
     * The start time of the current frame.
     * @type {number}
     * @private
     */
    this.frameStart = 0;
  }

  /**
   * Resets any counting properties to start fresh on a new frame.
   */


  TimeLimiter.prototype.beginFrame = function beginFrame() {
    this.frameStart = Date.now();
  };

  /**
   * Checks to see if another item can be uploaded. This should only be called once per item.
   * @return {boolean} If the item is allowed to be uploaded.
   */


  TimeLimiter.prototype.allowedToUpload = function allowedToUpload() {
    return Date.now() - this.frameStart < this.maxMilliseconds;
  };

  return TimeLimiter;
}();

exports.default = TimeLimiter;
//# sourceMappingURL=TimeLimiter.js.map