package net.sf.fmj.utility;

/**
 * Utility for measuring FPS, used for benchmarking and optimization. 
 * @author Ken Larson
 *
 */
public class FPSCounter 
{
	private int frames;
	private long start;

	public void reset()
	{
		start = 0;
		frames = 0;
	}
	
	public void nextFrame()
	{	
		if (start == 0)
			start = System.currentTimeMillis();
		
		++frames;
	}
	
	public int getNumFrames()
	{	return frames;
	}
	
	public double getFPS()
	{
		long now = System.currentTimeMillis();
		return 1000.0 * frames / (now - start);
	}
	
	@Override
	public String toString()
	{
		return "FPS: " + getFPS();
	}
}
