Skip to content

Commit

Permalink
added debug stats and performance monitoring to Matter.Render
Browse files Browse the repository at this point in the history
  • Loading branch information
liabru committed Mar 20, 2021
1 parent 1753bf0 commit 119881b
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 13 deletions.
3 changes: 2 additions & 1 deletion examples/stress.js
Expand Up @@ -21,7 +21,8 @@ Example.stress = function() {
options: {
width: 800,
height: 600,
showDebug: true
showStats: true,
showPerformance: true
}
});

Expand Down
3 changes: 2 additions & 1 deletion examples/stress2.js
Expand Up @@ -21,7 +21,8 @@ Example.stress2 = function() {
options: {
width: 800,
height: 600,
showDebug: true
showStats: true,
showPerformance: true
}
});

Expand Down
29 changes: 18 additions & 11 deletions src/render/Render.js
Expand Up @@ -57,6 +57,7 @@ var Mouse = require('../core/Mouse');
deltaHistory: [],
lastTime: 0,
lastTimestamp: 0,
lastElapsed: 0,
timestampElapsed: 0,
timestampElapsedHistory: [],
engineDeltaHistory: [],
Expand All @@ -74,6 +75,8 @@ var Mouse = require('../core/Mouse');
wireframes: true,
showSleeping: true,
showDebug: false,
showStats: false,
showPerformance: false,
showBroadphase: false,
showBounds: false,
showVelocity: false,
Expand Down Expand Up @@ -137,11 +140,17 @@ var Mouse = require('../core/Mouse');
(function loop(time){
render.frameRequestId = _requestAnimationFrame(loop);

Render.world(render, time);
_updateTiming(render, time);

if (render.options.showDebug)
Render.debug(render, render.context, time);
Render.world(render, time);

if (render.options.showStats || render.options.showDebug) {
Render.stats(render, render.context, time);
}

if (render.options.showPerformance || render.options.showDebug) {
Render.performance(render, render.context, time);
}
})();
};

Expand Down Expand Up @@ -444,14 +453,14 @@ var Mouse = require('../core/Mouse');
};

/**
* Renders debug information.
* Renders statistics about the engine and world useful for debugging.
* @private
* @method debug
* @method stats
* @param {render} render
* @param {RenderingContext} context
* @param {Number} time
*/
Render.debug = function(render, context, time) {
Render.stats = function(render, context, time) {
var engine = render.engine,
world = engine.world,
bodies = Composite.allBodies(world),
Expand Down Expand Up @@ -496,18 +505,16 @@ var Mouse = require('../core/Mouse');

x += width;
}

Render.timing(render, context, time);
};

/**
* Renders timing information.
* Renders engine and render performance information.
* @private
* @method timing
* @method performance
* @param {render} render
* @param {RenderingContext} context
*/
Render.timing = function(render, context) {
Render.performance = function(render, context) {
var engine = render.engine,
timing = render.timing,
deltaHistory = timing.deltaHistory,
Expand Down

0 comments on commit 119881b

Please sign in to comment.