glam
Version:
Experimental WebGL Engine
93 lines (63 loc) • 2.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createEngineRouter;
var _forward = require('../renderer/forward');
var _forward2 = _interopRequireDefault(_forward);
var _loop = require('./loop');
var _loop2 = _interopRequireDefault(_loop);
var _boot = require('./boot');
var _boot2 = _interopRequireDefault(_boot);
var _objectAssign = require('object-assign');
var _objectAssign2 = _interopRequireDefault(_objectAssign);
var _scene = require('../scene');
var _scene2 = _interopRequireDefault(_scene);
var _start = require('./start/');
var _start2 = _interopRequireDefault(_start);
var _eventemitter = require('eventemitter3');
var _eventemitter2 = _interopRequireDefault(_eventemitter);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _typeof(obj) { return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj; }
function Engine(config) {
this.loop = (0, _loop2.default)(config);
this.emitter = this.loop.emitter;
this.on = this.loop.on;
this.off = this.loop.off;
this.start = _start2.default.bind(null, this);
this.scene = null;
this.renderer = null;
}
function createEngine(properties, onReady) {
var config = (0, _objectAssign2.default)({
renderer: undefined,
scene: undefined,
emitter: new _eventemitter2.default(),
customizeEvent: undefined,
autoStart: true
}, properties);
var engine = new Engine(config);
if (config.renderer === undefined) {
var rendererConfig = (0, _objectAssign2.default)({
emitter: engine.emitter
}, config.scene);
engine.renderer = (0, _forward2.default)(rendererConfig);
}
if (config.scene === undefined) {
var sceneConfig = (0, _objectAssign2.default)({
renderer: engine.renderer,
emitter: engine.emitter
}, config.renderer);
engine.scene = (0, _scene2.default)(sceneConfig);
}
(0, _boot2.default)(engine, config, onReady);
return engine;
}
function createEngineRouter(a, b) {
var properties, onReady;
if ((typeof a === 'undefined' ? 'undefined' : _typeof(a)) === "object") properties = a;
if ((typeof b === 'undefined' ? 'undefined' : _typeof(b)) === "object") properties = b;
if (typeof a === "function") onReady = a;
if (typeof b === "function") onReady = b;
return createEngine(properties, onReady);
}