www.pudn.com > RCApp-src.zip > FPSCounter.h
/*
RedEye Project (http://members.ozemail.com.au/~ndmcevoy/)
Copyright (C) 2003 Nick McEvoy
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-----------------------------------------------------------------
Commented for use with Doxygen (http://www.doxygen.org)
-----------------------------------------------------------------
*/
/*! \file FPSCounter.h
* \brief Frames per second counter.
*
* This file contains the game frames per second counter.
*/
#ifndef _RE_FPS_COUNTER_H_
#define _RE_FPS_COUNTER_H_
class reFPSCounter
{
public:
//! Get instance
static reFPSCounter* GetInstance();
//! Call on glutDisplayFunc to calculate FPS
void Display();
//! Get the FPS
float GetFPS() {return mfFPS;};
//! Destructor
~reFPSCounter();
protected:
//! Constructor is protected as this class is a singleton
reFPSCounter();
private:
float mfFPS;
int miFrameNo;
int miLastFrameNo;
int miLastTimeMs;
//! The one and only instance
static reFPSCounter* mpInstance;
};
//! Get the one and only instance
inline reFPSCounter* reGetFPSCounter() {return reFPSCounter::GetInstance();};
#endif // _RE_FPS_COUNTER_H_