FpsCounter.java
package org.microcol.gui;
import javax.swing.Timer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Class helps measure Frame per second rate.
*
* @author jan
*
*/
public class FpsCounter {
private final Logger logger = LoggerFactory.getLogger(FpsCounter.class);
private final Timer timer;
private int fps;
private int counter;
public FpsCounter() {
timer = new Timer(1000, e -> {
fps = counter;
counter = 0;
logger.debug("Fps is: " + fps);
});
}
public void start() {
counter = 0;
fps = 0;
timer.start();
}
public void stop() {
timer.stop();
}
public void screenWasPainted() {
counter++;
}
/**
* Return actual FPS.
*
* @return fps value
*/
public int getFps() {
return fps;
}
}