GLES drivers adapted, but only did make compile-tests. git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/branches/ogl-es@6038 dfc29bdd-3216-0410-991c-e03cc46cb475
		
			
				
	
	
		
			77 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright (C) 2002-2012 Nikolaus Gebhardt
 | |
| // This file is part of the "Irrlicht Engine".
 | |
| // For conditions of distribution and use, see copyright notice in irrlicht.h
 | |
| 
 | |
| #include "CFPSCounter.h"
 | |
| #include "irrMath.h"
 | |
| 
 | |
| namespace irr
 | |
| {
 | |
| namespace video
 | |
| {
 | |
| 
 | |
| 
 | |
| CFPSCounter::CFPSCounter()
 | |
| :	FPS(60), Primitive(0), StartTime(0), FramesCounted(0),
 | |
| 	PrimitivesCounted(0), PrimitiveAverage(0), PrimitiveTotal(0)
 | |
| {
 | |
| 
 | |
| }
 | |
| 
 | |
| 
 | |
| //! returns current fps
 | |
| s32 CFPSCounter::getFPS() const
 | |
| {
 | |
| 	return FPS;
 | |
| }
 | |
| 
 | |
| 
 | |
| //! returns current primitive count
 | |
| u32 CFPSCounter::getPrimitive() const
 | |
| {
 | |
| 	return Primitive;
 | |
| }
 | |
| 
 | |
| 
 | |
| //! returns average primitive count of last period
 | |
| u32 CFPSCounter::getPrimitiveAverage() const
 | |
| {
 | |
| 	return PrimitiveAverage;
 | |
| }
 | |
| 
 | |
| 
 | |
| //! returns accumulated primitive count since start
 | |
| u32 CFPSCounter::getPrimitiveTotal() const
 | |
| {
 | |
| 	return PrimitiveTotal;
 | |
| }
 | |
| 
 | |
| 
 | |
| //! to be called every frame
 | |
| void CFPSCounter::registerFrame(u32 now, u32 primitivesDrawn)
 | |
| {
 | |
| 	++FramesCounted;
 | |
| 	PrimitiveTotal += primitivesDrawn;
 | |
| 	PrimitivesCounted += primitivesDrawn;
 | |
| 	Primitive = primitivesDrawn;
 | |
| 
 | |
| 	const u32 milliseconds = now - StartTime;
 | |
| 
 | |
| 	if (milliseconds >= 1500 )
 | |
| 	{
 | |
| 		const f32 invMilli = core::reciprocal ( (f32) milliseconds );
 | |
| 
 | |
| 		FPS = core::ceil32 ( ( 1000 * FramesCounted ) * invMilli );
 | |
| 		PrimitiveAverage = core::ceil32 ( ( 1000 * PrimitivesCounted ) * invMilli );
 | |
| 
 | |
| 		FramesCounted = 0;
 | |
| 		PrimitivesCounted = 0;
 | |
| 		StartTime = now;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| 
 | |
| } // end namespace video
 | |
| } // end namespace irr
 | |
| 
 |