2013-05-01 1 views
0

QGLWidget에서 파생 된 이미지 표시 위젯이 있습니다. 내가 가지고있는 문제는이 위젯의 ​​초기 생성이 3 초 이상 걸린다는 것입니다. 이로 인해 보려는 이미지를 선택하고 창을 보는 것 사이에 눈에 띄는 지연이 발생합니다. 아무도이 거대한 지연을 일으키는 원인이 무엇인지 말해 줄 수 있습니까?하위 클래스 qglwidget이 3 초 이상 걸리는 이유는 무엇입니까?

나는 이것에 내 코드를 단순화 :

class ImageDisplayTest : public QGLWidget 
{ 
Q_OBJECT 

public: 
    ImageDisplayTest(QWidget *parent = 0) 
      : QGLWidget(parent) 
    { 
      // empty constructor body 
    } 


protected: 
    virtual void initializeGL() {} 
    virtual void paintGL() {} 
    virtual void resizeGL(int width, int height) {} 
}; 

QElapsedTimer timer; 
qint64 time_ms; 
timer.start(); 
ImageDisplayTest* pTest1 = new ImageDisplayTest(); 
time_ms = timer.elapsed(); 

timer.restart(); 
ImageDisplayTest* pTest2 = new ImageDisplayTest(); 
time_ms = timer.elapsed(); 

timer.restart(); 
ImageDisplayTest* pTest3 = new ImageDisplayTest(); 
time_ms = timer.elapsed(); 

timer.restart(); 
ImageDisplayTest* pTest4 = new ImageDisplayTest(); 
time_ms = timer.elapsed(); 

pTest1이 3200ms, 다음 3 개 항목에 대한 걸리는 시간입니다 인스턴스화하는 데 걸리는 시간은 약 950ms 각이다. 나는 Windows 7에서 Qt 4.7.4를 사용하고 있으며 Visual Studio 2012 (익스프레스 에디션)를 사용하여 컴파일하고 실행하고 있습니다. 비교를 위해 QGLWidget 대신 QWidget에서 파생 된 경우 인스턴스화하는 데 걸리는 시간은 0ms로 되돌아옵니다 (즉, 측정하기에는 너무 작음).

답변

0

플랫폼에서 OpenGL 구현을 시작하는 데 걸리는 시간입니다. Qt 5의 Windows Vista &에서 DirectX를 기반으로 실행되는 OpenGL ES 2 번들 ANGLE 구현을 사용할 수 있습니다.

관련 문제