Почему glOrtho ничего не меняет? - PullRequest
0 голосов
/ 27 марта 2019

Эта функция ничего не меняет, хотя я уже вызывал glOrtho ().Что не так с кодом?Я что-то пропустил?

void glKeyCallback(unsigned char key, int x, int y){
  if (key == 'z'){
    width -= 10; height -= 10;
    cout << "Z" << endl;
    cout << width << " " << height << endl;
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, 800, 600, 0, 0, 1);
    glMatrixMode(GL_MODELVIEW);
  }else if (key == 'x'){
    width += 10; height += 10;
    cout << "X" << endl;
    cout << width << " " << height << endl;
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, 100, 100, 0, 0, 1);
    glMatrixMode(GL_MODELVIEW);
  }
}

Я ожидал увеличения / уменьшения масштаба сцены, когда нажимал z или x.Но это ничего не меняет.Для записи я уже зарегистрировал это на glutKeyboardFunc

1 Ответ

1 голос
/ 27 марта 2019

OpenGL - это не граф сцены, это API рисования.Простое изменение матрицы проекции ничего не изменит.Вы также должны перерисовать вещи.

...