Съезд текста из-за scaled

Версия Minecraft
1.6.4
77
2
2
Здравствуйте, столкнулся с проблемой, при который текст который я пытаюсь увеличить съезжает при разных настройках "Gui scale" в майнкрафте.

Скриншоты:
1615149125326.png1615149108629.png

Метод: "drawScreen"
Java:
double scale = 1.25D;
GL11.glPushMatrix();
GL11.glTranslated(1 / scale, 1 / scale, 1 / scale);
GL11.glScaled(scale, scale, scale);
fontRenderer.drawString(clientQuest.getName(), x - 45, y - 15, Utils.getColorInt(Color.WHITE));
GL11.glPopMatrix();
 
Решение
Шо вы мутите?
Делаем скейл, а в drawString передаём координаты разделенные на скейл, то есть вместо x передаём x / scale. Тоже самое для y.
Так как drawString хавает инт и чтобы не нужно было округлять, можно туда передать нули, а перед этим просто сделать транслейт.
7,099
324
1,509
Могу картинки+куски opengl-кода
 

tox1cozZ

aka Agravaine
8,454
598
2,890
Шо вы мутите?
Делаем скейл, а в drawString передаём координаты разделенные на скейл, то есть вместо x передаём x / scale. Тоже самое для y.
Так как drawString хавает инт и чтобы не нужно было округлять, можно туда передать нули, а перед этим просто сделать транслейт.
 
7,099
324
1,509
Предположим, что...
Предположим, что у нас имеется точка не в начале координат.
1615156349708.png
Что с ней станет, если применить скейл? Она сдвинется от центра в зависимости от значений скейла.
glScaled(sx,sy,sz)
1615156945736.png
Предположим, что у нас имеется точка в начале координат.
1615157045577.png
Что с ней станет, если применить скейл? Независимо от значений скейла точка останется на месте.
glScaled(sx,sy,sz)
1615157028197.png

Если у нас есть какой-то объект
Java:
doSomeRender();
1615156893517.png
И нам нужно увеличить его размер так, чтобы верхняя левая точка осталась на том же месте.
Для этого можно сдвинуть этот объект, совместив верхнюю левую точку с началом координат
Java:
glTranslated(-x,-y,-z);
doSomeRender();
1615156876888.png
После применить масштабирование
Java:
glTranslated(-x,-y,-z);
glScaled(sc,sy,sz);
doSomeRender();
1615157304948.png
И сдвинуть объект назад
Java:
glTranslated(-x,-y,-z);
glScaled(sc,sy,sz);
glTranslated(x,y,z);
doSomeRender();
1615157436917.png
 
Сверху