帮助使用 GLOrtho

Posted

技术标签:

【中文标题】帮助使用 GLOrtho【英文标题】:Help using GLOrtho 【发布时间】:2010-06-06 20:43:32 【问题描述】:

我像这样调整我的窗口大小:

    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】:

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

【讨论】:

以上是关于帮助使用 GLOrtho的主要内容,如果未能解决你的问题,请参考以下文章

opengl:设置视口和 glortho 时遇到问题

OpenGL glOrtho 设置匹配窗口大小

openGL中glOrtho和glViewPort之间的区别[重复]

着色器在 2d OpenGL 中不起作用

OpenGL的gluLookAt和glOrtho的关系

OpenGL 中的可视化问题(glOrtho 和投影)