Browse Source

fixed unicode bug

Kajetan Johannes Hammerle 2 years ago
parent
commit
5aa6d7e507
2 changed files with 7 additions and 2 deletions
  1. 6 1
      client/Chat.cpp
  2. 1 1
      client/FontRenderer.cpp

+ 6 - 1
client/Chat.cpp

@@ -109,7 +109,12 @@ void Chat::render() {
     FontRenderer::setModel(model);
     FontRenderer::draw(s, 255);
 
-    width = FontRenderer::getWidth(s, Window::Input::getCursor());
+    s.clear();
+    const List<uint32>& unicode = Window::Input::getUnicode();
+    for(int i = 0; i < Window::Input::getCursor(); i++) {
+        s.appendUnicode(unicode[i]);
+    }
+    width = FontRenderer::getWidth(s, -1);
     model.translateTo(Vector3(padding[0] + width, height + 2.0f, 0.0f))
         .scale(scale);
     FontRenderer::setModel(model);

+ 1 - 1
client/FontRenderer.cpp

@@ -58,7 +58,7 @@ bool FontRenderer::init() {
     texture.setData(image.width, image.height, image.data);
 
     for(Symbol& s : symbols) {
-        s.width -= s.offsetX - 2;
+        s.width = std::max(s.width - s.offsetX + 2, 0);
     }
     symbols[' '].offsetX = 0;
     symbols[' '].width = 4;