From 887a21941d9e2a9f877eef431bc68bd7032a18b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Thu, 26 Sep 2013 12:12:15 +0200 Subject: [PATCH] redid font texture to include all ascii chars, even special chars for control characters since there was padding anyway and in particular umlaut chars and such; simplified initialization of renderer a tad, too --- assets/opencomputers/textures/font/ascii.png | Bin 6360 -> 8359 bytes .../oc/client/gui/MonospaceFontRenderer.scala | 39 +++++++----------- 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/assets/opencomputers/textures/font/ascii.png b/assets/opencomputers/textures/font/ascii.png index c3f1f5e5fce7e3a0204f92cc553f64265afce48c..d6b81c9ef57ab56f53fd413b2964803b4cb19562 100644 GIT binary patch literal 8359 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 C42Jpu delta 6343 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 diff --git a/li/cil/oc/client/gui/MonospaceFontRenderer.scala b/li/cil/oc/client/gui/MonospaceFontRenderer.scala index 073665b23..a48b55721 100644 --- a/li/cil/oc/client/gui/MonospaceFontRenderer.scala +++ b/li/cil/oc/client/gui/MonospaceFontRenderer.scala @@ -30,40 +30,31 @@ object MonospaceFontRenderer { // Set up the display lists. { - // The font texture is 16x12, but chars are really only 10x12. - val charsPerRow = 16 val (charWidth, charHeight) = (MonospaceFontRenderer.fontWidth * 2, MonospaceFontRenderer.fontHeight * 2) - val uStep = 1.0 / charsPerRow - val vStep = 1.0 / 12 * 240 / 256 // Correct for padding at bottom. - val uOffset = uStep * 3 / 16 - val uSize = uStep * 10 / 16 - val vOffset = vStep * 1 / 20 - val vSize = vStep * 18 / 20 + val cols = 256 / charWidth + val uStep = charWidth / 256.0 + val vStep = charHeight / 256.0 val t = Tessellator.instance - // Special case for whitespace: just translate, don't render. - GL11.glNewList(charLists + 32, GL11.GL_COMPILE) - GL11.glTranslatef(charWidth, 0, 0) - GL11.glEndList() // Now create lists for all printable chars. - for (index <- (33 until 0x7F).union(0x9F until 0xFF)) { - // The font texture does not contain the 0-1F range, nor the 0x7F to - // 0x9F range (control chars as per Character.isISOControl). - val textureIndex = - (if (index - 32 >= 0x7F) index - (0x9F - 0x7F) else index) - 32 - val x = textureIndex % charsPerRow - val y = textureIndex / charsPerRow - val u = x * uStep + uOffset - val v = y * vStep + vOffset + for (index <- 1 until 0xFF) { + val x = (index - 1) % cols + val y = (index - 1) / cols + val u = x * uStep + val v = y * vStep GL11.glNewList(charLists + index, GL11.GL_COMPILE) t.startDrawingQuads() - t.addVertexWithUV(0, charHeight, 0, u, v + vSize) - t.addVertexWithUV(charWidth, charHeight, 0, u + uSize, v + vSize) - t.addVertexWithUV(charWidth, 0, 0, u + uSize, v) + t.addVertexWithUV(0, charHeight, 0, u, v + vStep) + t.addVertexWithUV(charWidth, charHeight, 0, u + uStep, v + vStep) + t.addVertexWithUV(charWidth, 0, 0, u + uStep, v) t.addVertexWithUV(0, 0, 0, u, v) t.draw() GL11.glTranslatef(charWidth, 0, 0) GL11.glEndList() } + // Special case for whitespace: just translate, don't render. + GL11.glNewList(charLists + ' ', GL11.GL_COMPILE) + GL11.glTranslatef(charWidth, 0, 0) + GL11.glEndList() } def drawString(value: Array[Char], x: Int, y: Int) = {