我这样调整窗口大小:

    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上下文并重新初始化的情况下执行此操作。

最佳答案

要在Windows上处理调整大小的窗口上下文,我想您要做的就是更新glViewport,如果启用了GL_SCISSOR_TEST,则可能需要glScissor。

关于c++ - 帮助使用GLOrtho,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2985829/

10-11 21:19