mirror of
				https://github.com/RandomityGuy/MBHaxe.git
				synced 2025-10-30 08:11:25 +00:00 
			
		
		
		
	profiler ui
This commit is contained in:
		
							parent
							
								
									d970c87015
								
							
						
					
					
						commit
						0f64035543
					
				
					 5 changed files with 59 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -5,6 +5,5 @@
 | 
			
		|||
-hl marblegame.hl
 | 
			
		||||
-D windowSize=1280x720
 | 
			
		||||
-D keep-inline-positions
 | 
			
		||||
-D android
 | 
			
		||||
--main Main
 | 
			
		||||
-debug
 | 
			
		||||
							
								
								
									
										14
									
								
								src/Main.hx
									
										
									
									
									
								
							
							
						
						
									
										14
									
								
								src/Main.hx
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -16,12 +16,11 @@ import gui.MainMenuGui;
 | 
			
		|||
import hxd.res.DefaultFont;
 | 
			
		||||
import h2d.Text;
 | 
			
		||||
import h3d.Vector;
 | 
			
		||||
import src.ProfilerUI;
 | 
			
		||||
 | 
			
		||||
class Main extends hxd.App {
 | 
			
		||||
	var marbleGame:MarbleGame;
 | 
			
		||||
 | 
			
		||||
	// var fpsCounter:Text;
 | 
			
		||||
	var debugProfiler:h3d.impl.Benchmark;
 | 
			
		||||
	var loaded:Bool = false;
 | 
			
		||||
 | 
			
		||||
	override function init() {
 | 
			
		||||
| 
						 | 
				
			
			@ -64,6 +63,8 @@ class Main extends hxd.App {
 | 
			
		|||
			marbleGame = new MarbleGame(s2d, s3d);
 | 
			
		||||
			MarbleGame.canvas.setContent(new MainMenuGui());
 | 
			
		||||
 | 
			
		||||
			new ProfilerUI(s2d);
 | 
			
		||||
 | 
			
		||||
			loaded = true;
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -91,19 +92,20 @@ class Main extends hxd.App {
 | 
			
		|||
	override function update(dt:Float) {
 | 
			
		||||
		super.update(dt);
 | 
			
		||||
		if (loaded) {
 | 
			
		||||
			ProfilerUI.begin();
 | 
			
		||||
			ProfilerUI.measure("updateBegin");
 | 
			
		||||
			marbleGame.update(dt);
 | 
			
		||||
			// world.update(dt);
 | 
			
		||||
			// fpsCounter.text = 'FPS: ${this.engine.fps}';
 | 
			
		||||
			ProfilerUI.update(this.engine.fps);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	override function render(e:h3d.Engine) {
 | 
			
		||||
		// this.world.render(e);
 | 
			
		||||
		if (loaded) {
 | 
			
		||||
			// debugProfiler.begin();
 | 
			
		||||
			// debugProfiler.measure("marbleGame");
 | 
			
		||||
			ProfilerUI.measure("renderBegin");
 | 
			
		||||
			marbleGame.render(e);
 | 
			
		||||
			// debugProfiler.end();
 | 
			
		||||
			ProfilerUI.end();
 | 
			
		||||
		}
 | 
			
		||||
		super.render(e);
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@ import src.MarbleWorld;
 | 
			
		|||
import src.JSPlatform;
 | 
			
		||||
import gui.Canvas;
 | 
			
		||||
import src.Util;
 | 
			
		||||
import src.ProfilerUI;
 | 
			
		||||
 | 
			
		||||
@:publicFields
 | 
			
		||||
class MarbleGame {
 | 
			
		||||
| 
						 | 
				
			
			@ -159,6 +160,7 @@ class MarbleGame {
 | 
			
		|||
			var mouseState:MouseState = {
 | 
			
		||||
				position: new Vector(canvas.scene2d.mouseX, canvas.scene2d.mouseY)
 | 
			
		||||
			}
 | 
			
		||||
			ProfilerUI.measure("canvasUpdate");
 | 
			
		||||
			canvas.update(dt, mouseState);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -70,6 +70,7 @@ import h3d.scene.Scene;
 | 
			
		|||
import collision.CollisionWorld;
 | 
			
		||||
import src.Marble;
 | 
			
		||||
import src.Resource;
 | 
			
		||||
import src.ProfilerUI;
 | 
			
		||||
 | 
			
		||||
class MarbleWorld extends Scheduler {
 | 
			
		||||
	public var collisionWorld:CollisionWorld;
 | 
			
		||||
| 
						 | 
				
			
			@ -723,18 +724,25 @@ class MarbleWorld extends Scheduler {
 | 
			
		|||
		if (!_ready) {
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
		ProfilerUI.measure("updateTimer");
 | 
			
		||||
		this.updateTimer(dt);
 | 
			
		||||
		this.tickSchedule(timeState.currentAttemptTime);
 | 
			
		||||
		this.updateGameState();
 | 
			
		||||
		ProfilerUI.measure("updateDTS");
 | 
			
		||||
		for (obj in dtsObjects) {
 | 
			
		||||
			obj.update(timeState);
 | 
			
		||||
		}
 | 
			
		||||
		ProfilerUI.measure("updateMarbles");
 | 
			
		||||
		for (marble in marbles) {
 | 
			
		||||
			marble.update(timeState, collisionWorld, this.pathedInteriors);
 | 
			
		||||
		}
 | 
			
		||||
		ProfilerUI.measure("updateInstances");
 | 
			
		||||
		this.instanceManager.update(dt);
 | 
			
		||||
		ProfilerUI.measure("updateParticles");
 | 
			
		||||
		this.particleManager.update(1000 * timeState.timeSinceLoad, dt);
 | 
			
		||||
		ProfilerUI.measure("updatePlayGui");
 | 
			
		||||
		this.playGui.update(timeState);
 | 
			
		||||
		ProfilerUI.measure("updateAudio");
 | 
			
		||||
		AudioManager.update(this.scene);
 | 
			
		||||
 | 
			
		||||
		if (this.outOfBounds && this.finishTime == null && Key.isDown(Settings.controlsSettings.powerup)) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										41
									
								
								src/ProfilerUI.hx
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								src/ProfilerUI.hx
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,41 @@
 | 
			
		|||
package src;
 | 
			
		||||
 | 
			
		||||
import h3d.Vector;
 | 
			
		||||
import hxd.res.DefaultFont;
 | 
			
		||||
import h2d.Text;
 | 
			
		||||
 | 
			
		||||
class ProfilerUI {
 | 
			
		||||
	var fpsCounter:Text;
 | 
			
		||||
	var debugProfiler:h3d.impl.Benchmark;
 | 
			
		||||
 | 
			
		||||
	public static var instance:ProfilerUI;
 | 
			
		||||
 | 
			
		||||
	public function new(s2d:h2d.Scene) {
 | 
			
		||||
		if (instance != null)
 | 
			
		||||
			return;
 | 
			
		||||
 | 
			
		||||
		instance = this;
 | 
			
		||||
		// debugProfiler = new h3d.impl.Benchmark(s2d);
 | 
			
		||||
		// debugProfiler.y = 40;
 | 
			
		||||
 | 
			
		||||
		// fpsCounter = new Text(DefaultFont.get(), s2d);
 | 
			
		||||
		// fpsCounter.y = 80;
 | 
			
		||||
		// fpsCounter.color = new Vector(1, 1, 1, 1);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static function begin() {
 | 
			
		||||
		// instance.debugProfiler.begin();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static function measure(name:String) {
 | 
			
		||||
		// instance.debugProfiler.measure(name);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static function end() {
 | 
			
		||||
		// instance.debugProfiler.end();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static function update(fps:Float) {
 | 
			
		||||
		// instance.fpsCounter.text = "FPS: " + fps;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		
		Reference in a new issue