Помогите с помощью GLOrtho - PullRequest
0 голосов
/ 07 июня 2010

Я изменяю размеры моего окна так:

    RECT clientRect;
    GetClientRect(mainWindow,&clientRect);

    glShadeModel(GL_SMOOTH);

MoveWindow(framehWnd,
        toolWidth,
        tabHeight, 
        ((clientRect.right - clientRect.left) - toolWidth) - rightRemainder , 
        (clientRect.bottom - clientRect.top) - tabHeight - paramHeight, 
        false);


glMatrixMode(GL_PROJECTION);
glLoadIdentity();

glOrtho (0, ((clientRect.right - clientRect.left) - toolWidth) - rightRemainder ,
         (clientRect.bottom - clientRect.top) - tabHeight - paramHeight
         , 0, 0, 1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

Это прекрасно работает, за исключением одной вещи. Допустим, я создаю квадрат от 0,0 до 100, 100. Мне бы хотелось, если бы я изменил размер, чтобы он всегда оставался вверху слева, но сейчас, если я изменяю размер, он перемещается вверх или вниз вместо того, чтобы оставаться вверху слева. Что я должен изменить? Спасибо

* Я только что понял, что в действительности нужно изменить размер контекста, но я не уверен, как это сделать, не выбрасывая контекст OGL и не перезапуская его.

1 Ответ

0 голосов
/ 07 июня 2010

Для обработки измененного контекста окна в Windows, я думаю, все, что вам нужно сделать, это обновить glViewport и, возможно, glScissor, если включен GL_SCISSOR_TEST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...