QMainWindow를 상속받는 MainWindow를 설정하구,
MainWindow안에 QMdiArea를 통해, QMdiSubWindow를 하나 종속시켜 준다음, (정확하겐 QMdiSubWindow를 상속받는 ObjViewer를) QMdiSubWindow는 QTabWidget을 들고있구.. 이
QTabWidget안에 QGLWidget들을(정확하겐 QGLWidget을 상속받는 ObjWindow) 추가하고 그 QGLWidget들안에 opengl로 출력을 해주려고 하고있습니다!!
그런데.. 어찌된건지 ㅠㅠ 뭔가 있어야할 화면에 하얀창만 뜨네요..
ObjViewer::ObjViewer()
{
this->setFixedSize(VIEWER_WIDTH,VIEWER_HEIGHT);
this->setWindowFlags(Qt::FramelessWindowHint);
this->setWidget(&tab); // tab은 QTabWidget입니다!!
nWindow=0;
}
void ObjViewer::add(QString fileName)
{
aWindow[nWindow]=new ObjWindow(fileName);
int idx=0;
for(int i=0;i<fileName.length();++i) if(fileName.at(i)=='/') idx=i;
tab.addTab(aWindow[nWindow],fileName.mid(idx+1,fileName.length()-idx)); // 탭에 추가해줌
++nWindow;
}
void ObjWindow::doDisplayInit()
{
glClearColor(0,0,0,1); // Background Color
/*
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_POINT_SMOOTH);
glEnable(GL_LINE_SMOOTH);
glEnable(GL_POLYGON_SMOOTH);
glHint(GL_POINT_SMOOTH_HINT,GL_NICEST);
glHint(GL_LINE_SMOOTH_HINT,GL_NICEST);
glHint(GL_POLYGON_SMOOTH_HINT,GL_NICEST);
glShadeModel(GL_SMOOTH);
*/
}
void ObjWindow::paintEvent(QPaintEvent *)
{
glViewport(0, 0, 400, 600);
doDisplayInit();
// doDisplayMatrix();
// doDisplayLightOn();
// doDisplaySample();
glFlush();
}
opengl과 관련된 부분과.. 필요하다고 생각하는 부분만 올려봤습니다. 무엇을 놓치고 있는 걸까요?