100 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| class Info {
 | |
| 
 | |
| 	constructor() {
 | |
| 
 | |
| 		this.autoReset = true;
 | |
| 
 | |
| 		this.frame = 0;
 | |
| 		this.calls = 0;
 | |
| 
 | |
| 		this.render = {
 | |
| 			calls: 0,
 | |
| 			drawCalls: 0,
 | |
| 			triangles: 0,
 | |
| 			points: 0,
 | |
| 			lines: 0,
 | |
| 			timestamp: 0
 | |
| 		};
 | |
| 
 | |
| 		this.compute = {
 | |
| 			calls: 0,
 | |
| 			computeCalls: 0,
 | |
| 			timestamp: 0
 | |
| 		};
 | |
| 
 | |
| 		this.memory = {
 | |
| 			geometries: 0,
 | |
| 			textures: 0
 | |
| 		};
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 	update( object, count, instanceCount ) {
 | |
| 
 | |
| 		this.render.drawCalls ++;
 | |
| 
 | |
| 		if ( object.isMesh || object.isSprite ) {
 | |
| 
 | |
| 			this.render.triangles += instanceCount * ( count / 3 );
 | |
| 
 | |
| 		} else if ( object.isPoints ) {
 | |
| 
 | |
| 			this.render.points += instanceCount * count;
 | |
| 
 | |
| 		} else if ( object.isLineSegments ) {
 | |
| 
 | |
| 			this.render.lines += instanceCount * ( count / 2 );
 | |
| 
 | |
| 		} else if ( object.isLine ) {
 | |
| 
 | |
| 			this.render.lines += instanceCount * ( count - 1 );
 | |
| 
 | |
| 		} else {
 | |
| 
 | |
| 			console.error( 'THREE.WebGPUInfo: Unknown object type.' );
 | |
| 
 | |
| 		}
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 	updateTimestamp( type, time ) {
 | |
| 
 | |
| 		this[ type ].timestamp += time;
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 	reset() {
 | |
| 
 | |
| 		this.render.drawCalls = 0;
 | |
| 		this.compute.computeCalls = 0;
 | |
| 
 | |
| 		this.render.triangles = 0;
 | |
| 		this.render.points = 0;
 | |
| 		this.render.lines = 0;
 | |
| 
 | |
| 		this.render.timestamp = 0;
 | |
| 		this.compute.timestamp = 0;
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 	dispose() {
 | |
| 
 | |
| 		this.reset();
 | |
| 
 | |
| 		this.calls = 0;
 | |
| 
 | |
| 		this.render.calls = 0;
 | |
| 		this.compute.calls = 0;
 | |
| 
 | |
| 		this.render.timestamp = 0;
 | |
| 		this.compute.timestamp = 0;
 | |
| 		this.memory.geometries = 0;
 | |
| 		this.memory.textures = 0;
 | |
| 
 | |
| 	}
 | |
| 
 | |
| }
 | |
| 
 | |
| 
 | |
| export default Info;
 |