mirror of
https://github.com/liabru/matter-js.git
synced 2024-12-26 13:49:01 -05:00
improved custom engine renderer passing
This commit is contained in:
parent
99346160aa
commit
e619be0d01
2 changed files with 18 additions and 9 deletions
|
@ -29,6 +29,11 @@ var Engine = {};
|
||||||
* @return {engine} engine
|
* @return {engine} engine
|
||||||
*/
|
*/
|
||||||
Engine.create = function(element, options) {
|
Engine.create = function(element, options) {
|
||||||
|
|
||||||
|
// options may be passed as the first (and only) argument
|
||||||
|
options = Common.isElement(element) ? options : element;
|
||||||
|
element = Common.isElement(element) ? element : null;
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
positionIterations: 6,
|
positionIterations: 6,
|
||||||
|
@ -52,20 +57,16 @@ var Engine = {};
|
||||||
correction: 1,
|
correction: 1,
|
||||||
deltaMin: 1000 / _fps,
|
deltaMin: 1000 / _fps,
|
||||||
deltaMax: 1000 / (_fps * 0.5)
|
deltaMax: 1000 / (_fps * 0.5)
|
||||||
|
},
|
||||||
|
render: {
|
||||||
|
element: element,
|
||||||
|
controller: Render
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var engine = Common.extend(defaults, options);
|
var engine = Common.extend(defaults, options);
|
||||||
engine = Common.isElement(element) ? (engine || {}) : element;
|
|
||||||
|
|
||||||
// create default renderer only if no custom renderer set
|
|
||||||
// but still allow engine.render.engine to pass through if set
|
|
||||||
if (!engine.render || (engine.render && !engine.render.controller)) {
|
|
||||||
engine.render = Render.create(engine.render);
|
|
||||||
if (Common.isElement(element))
|
|
||||||
element.appendChild(engine.render.canvas);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
engine.render = engine.render.controller.create(engine.render);
|
||||||
engine.world = World.create(engine.world);
|
engine.world = World.create(engine.world);
|
||||||
engine.metrics = engine.metrics || Metrics.create();
|
engine.metrics = engine.metrics || Metrics.create();
|
||||||
engine.input.mouse = engine.input.mouse || Mouse.create(engine.render.canvas);
|
engine.input.mouse = engine.input.mouse || Mouse.create(engine.render.canvas);
|
||||||
|
|
|
@ -21,6 +21,8 @@ var Render = {};
|
||||||
Render.create = function(options) {
|
Render.create = function(options) {
|
||||||
var defaults = {
|
var defaults = {
|
||||||
controller: Render,
|
controller: Render,
|
||||||
|
element: null,
|
||||||
|
canvas: null,
|
||||||
options: {
|
options: {
|
||||||
width: 800,
|
width: 800,
|
||||||
height: 600,
|
height: 600,
|
||||||
|
@ -49,6 +51,12 @@ var Render = {};
|
||||||
|
|
||||||
Render.setBackground(render, render.options.background);
|
Render.setBackground(render, render.options.background);
|
||||||
|
|
||||||
|
if (Common.isElement(render.element)) {
|
||||||
|
render.element.appendChild(render.canvas);
|
||||||
|
} else {
|
||||||
|
Common.log('No "render.element" passed, "render.canvas" was not inserted into document.', 'warn');
|
||||||
|
}
|
||||||
|
|
||||||
return render;
|
return render;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue