我用Qt5工作,必须编写一些简单的3d编辑器。我需要有4个投影视图在我的主窗口(不同的场景投影)。我看到OpenGLWindow的例子,但只有一个窗口,我不知道如何修改它为我的目的。
示例中有下一行。
class OpenGLWindow : public QWindow, protected QOpenGLFunctions
{
........
private:
QOpenGLContext *m_context;
}
如Assistant所说,QOpenGLContext只能在qsurface上绘制,而qsurface是QWindow的直接基础。
那么,我如何在一个主窗口中放置几个投影视图呢?
我需要工具,包含在QOpenGLFunctions.
你只需要有一个QOpenGLContext。绘制多个视图通常是这样完成的:
//Top Left
glViewport (0, windowHeight/2, windowWidth/2, windowHeight/2);
draw();
//Top Right
glViewport (windowWidth/2, windowHeight/2, windowWidth/2, windowHeight/2);
draw();
//Bottom Right
glViewport (windowWidth/2, 0, windowWidth/2, windowHeight/2);
draw();
//Bottom Left
glViewport (0, 0, windowWidth/2, windowHeight/2);
draw();