Как перевернуть шрифты вверх ногами в FTGL

Я просто использую FTGL, чтобы использовать его в своем приложении. Я хочу использовать версию FTBufferFont для рендеринга шрифта, но он рендерится неправильно. Шрифт (текстура? буфер?) перевернут не по той оси.

введите здесь описание изображения

Я хочу использовать такие орфографические настройки:

void enable2D(int w, int h)
{
    winWidth = w;
    winHeight = h;

    glViewport(0, 0, w, h);

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    //I don't even want to swap the 3rd and 4th param
    //because I like to retain the top-left as the origin
    glOrtho(0, w, h, 0, 0, +1);
    glMatrixMode(GL_MODELVIEW);
}

И я хочу, чтобы происхождение окна было top-left

Я отображаю шрифт следующим образом:

//No pushing and popping of matrices
//No translation

font.Render("Hello World!", -1, position, spacing, FTGL::RenderMode::RENDER_FRONT);

На других форумах сказали, что просто уменьшили до -1, но у меня не работает.

Я не вижу соответствующей проблемы, как у меня в Google, поэтому я решил спросить об этом здесь снова.

Обновление:

Как я могу правильно перевернуть его ось. Я могу думать о редактировании исходного кода и изменении координат текстуры, но это не очень хорошо.

Мне действительно нужно быстрое решение..


person mr5    schedule 01.03.2014    source источник
comment
@ AndonM.Coleman Что вы подразумеваете под продажей текстурной матрицы? Вы имеете в виду загрузку матрицы в OpenGL?   -  person mr5    schedule 01.03.2014
comment
@ AndonM.Coleman Это просто исчезло с экрана ...? Я получил код ошибки gl 1284 ?   -  person mr5    schedule 01.03.2014
comment
Сама карта глифов перевернута? Ваше оригинальное описание переворота оси Y в матрице проекции заставило меня поверить, что Hello World! должен был быть внизу экрана. Таким образом, я дал вам решение, которое переворачивает ось T текстурных координат. Ваша ошибка (0x0504 — Stack Underflow) не связана ни с чем, что я предложил.   -  person Andon M. Coleman    schedule 01.03.2014
comment
@ AndonM.Coleman Думаю, да. Вот почти все настройки, которые я изменил. Как-нибудь еще я мог бы перевернуть их? Ваше решение было ужасным, я думаю?   -  person mr5    schedule 01.03.2014
comment
@ AndonM.Coleman Хорошо, мне нужно снова тебя дождаться. спокойной ночи :D   -  person mr5    schedule 01.03.2014
comment
Вы можете попробовать использовать традиционную матрицу орфографической проекции, где (0,0) — нижний левый угол, а ось Y перемещается в положительном направлении снизу вверх, но переведите вашу систему координат так, чтобы (0,0) перемещался в вершина. Тогда дно будет (0,-h) вместо (0,h). Это означает, что если вы хотите, чтобы ваш текст начинался в верхней части экрана, установите для его координаты Y значение font.LineHeight (). Это необходимо, так как я не вижу способа заставить FTGL рисовать шрифты с текстурным отображением вверх ногами.   -  person Andon M. Coleman    schedule 01.03.2014
comment
@ AndonM.Coleman Вы имеете в виду вот что: glOrtho(0, w, h, 0, 0, 1); glTranslatef(x, y + font.LineHeight(), 0);? Да, у меня все работает. Если вы можете придумать другой способ, пожалуйста, скажите. Вы можете опубликовать это как ответ, чтобы я мог принять его. Еще раз спасибо :D   -  person mr5    schedule 02.03.2014