package mightypork.rogue.screens; import static mightypork.gamecore.gui.constraints.Constraints.*; import mightypork.gamecore.gui.components.painters.TextPainter; import mightypork.gamecore.gui.constraints.RectConstraint; import mightypork.gamecore.gui.screens.Screen; import mightypork.gamecore.gui.screens.ScreenLayer; import mightypork.gamecore.render.fonts.FontRenderer.Align; import mightypork.gamecore.render.fonts.GLFont; import mightypork.rogue.Res; import mightypork.utils.math.color.RGB; import mightypork.utils.math.coord.Coord; import mightypork.utils.string.StringProvider; public class LayerFps extends ScreenLayer { TextPainter tp; public LayerFps(Screen screen) { super(screen); final StringProvider text = new StringProvider() { @Override public String getString() { return getDisplay().getFps() + " fps"; } }; final GLFont font = Res.getFont("default"); final RectConstraint constraint = _round(_move(_grow_down(_right_top(this), 32), -8, 8)); tp = new TextPainter(font, Align.RIGHT, RGB.WHITE, text); tp.setContext(constraint); tp.setShadow(RGB.BLACK, Coord.at(1, 1)); } @Override public void render() { tp.render(); } @Override public int getPriority() { return Integer.MAX_VALUE; } }