diff options
-rw-r--r-- | src/subconscious/graphics/Scene.java | 22 | ||||
-rw-r--r-- | src/subconscious/graphics/widget/PerfView.java | 20 | ||||
-rw-r--r-- | src/subconscious/res/fonts/CamingoCode-Regular.ttf | bin | 0 -> 93500 bytes | |||
-rw-r--r-- | src/subconscious/res/fonts/unscii-16.ttf | bin | 0 -> 188204 bytes |
4 files changed, 34 insertions, 8 deletions
diff --git a/src/subconscious/graphics/Scene.java b/src/subconscious/graphics/Scene.java index 74330ff..3849c24 100644 --- a/src/subconscious/graphics/Scene.java +++ b/src/subconscious/graphics/Scene.java @@ -10,12 +10,17 @@ import subconscious.graphics.widget.PerfView; import java.util.ArrayList; import java.util.Map; +import java.io.InputStream; +import java.io.IOException; + import java.awt.Canvas; import java.awt.Graphics2D; import java.awt.Dimension; import java.awt.BorderLayout; import java.awt.Panel; import java.awt.RenderingHints; +import java.awt.Font; +import java.awt.FontFormatException; import java.awt.event.KeyListener; import java.awt.event.KeyEvent; @@ -77,6 +82,9 @@ public abstract class Scene extends Panel protected Canvas canvas = new Canvas(); protected BufferStrategy buffer; + protected Font font; + protected final float defaultFontSize = 10.0f; + // TODO: make accessible from user settings protected int guiSize = 2; @@ -88,6 +96,19 @@ public abstract class Scene extends Panel this.UNIQUE_NAME = uniqueName + " (" + label + ")"; this.game = game; + // set default scene font unscii + InputStream fontStream = Scene.class.getResourceAsStream("/subconscious/res/fonts/unscii-16.ttf"); + + assert fontStream != null; + + try { + this.font = Font.createFont(Font.TRUETYPE_FONT, fontStream); + } catch (FontFormatException ex) { + ex.printStackTrace(); + } catch (IOException ioex) { + ioex.printStackTrace(); + } + // watch for resize this.addComponentListener(this); @@ -211,6 +232,7 @@ public abstract class Scene extends Panel do { Graphics2D g = (Graphics2D) this.buffer.getDrawGraphics(); g.addRenderingHints(this.RENDERING_HINTS); + g.setFont(this.font.deriveFont(this.defaultFontSize)); this.render(g); this.renderWidgets(g); g.dispose(); diff --git a/src/subconscious/graphics/widget/PerfView.java b/src/subconscious/graphics/widget/PerfView.java index d5de3cb..c7c9356 100644 --- a/src/subconscious/graphics/widget/PerfView.java +++ b/src/subconscious/graphics/widget/PerfView.java @@ -11,22 +11,26 @@ import java.awt.Graphics2D; * final game. */ public class PerfView extends Widget implements Dynamic { - - public static final int WIDTH = 120; - public static final int HEIGHT = 30; - protected long lastDeltaNanoTime = 0; - public PerfView(String uniqueName, int x, int y) { - super(uniqueName, x, y, PerfView.WIDTH, PerfView.HEIGHT); + // the size depends on the font + super(uniqueName, x, y, 0, 0); } @Override public void render(Graphics2D g) { + String text = "DeltaTime (us): " + + Long.toString(this.lastDeltaNanoTime/1000); + + this.width = g.getFontMetrics().stringWidth(text); + this.height = g.getFontMetrics().getHeight() + 10; + g.setColor(Palette.BLACK); - g.drawString("DeltaTime (us): ", 0, HEIGHT/2); - g.drawString(Long.toString(this.lastDeltaNanoTime/1000), 0, HEIGHT); + g.fillRect(0, 0, this.width, this.height); + + g.setColor(Palette.WHITE); + g.drawString(text, 0, this.height - 10); } @Override diff --git a/src/subconscious/res/fonts/CamingoCode-Regular.ttf b/src/subconscious/res/fonts/CamingoCode-Regular.ttf Binary files differnew file mode 100644 index 0000000..04b8860 --- /dev/null +++ b/src/subconscious/res/fonts/CamingoCode-Regular.ttf diff --git a/src/subconscious/res/fonts/unscii-16.ttf b/src/subconscious/res/fonts/unscii-16.ttf Binary files differnew file mode 100644 index 0000000..050ce76 --- /dev/null +++ b/src/subconscious/res/fonts/unscii-16.ttf |