Lwjgl字体颠倒

时间:2014-01-07 18:41:23

标签: java opengl lwjgl

我呈现的文字显示为颠倒。我知道左下角是位置(0,0),我的整个代码都是基于此。我有一种感觉,我的文本被颠倒了是因为我使用java的awt字体类而不是newdawn.slick.Font。是否有一种简单的方法可以完成翻转?我尝试使用

glScalef(1, -1, 1);

然后翻转它会导致一切停止渲染。

以下代码

import static org.lwjgl.opengl.GL11.*;
import java.awt.Font;

import org.newdawn.slick.Color;
import org.newdawn.slick.TrueTypeFont;

public class FontRenderer {
    private TrueTypeFont font;

    public FontRenderer(){
        Font awtFont = new Font("Times New Roman", java.awt.Font.PLAIN, 24);
        font = new TrueTypeFont(awtFont, false);
    }

    public void render(float x, float y, String text){
        glEnable(GL_BLEND);
        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
        font.drawString(x, y, text);
    }

    public void render(float x, float y, String text, float r, float g, float b)
    {
        Color color = new Color(r, g, b);
        glEnable(GL_BLEND);
        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
        font.drawString(x, y, text, color);
    }
}

1 个答案:

答案 0 :(得分:0)

你的字体是颠倒的,因为Slick使用左上角的原点,而默认情况下LWJGL使用左下角的原点。你声明你知道你的起源位于左下方,那你为什么期望你的渲染代码有效?