2013-10-10 24 views
0

我正在編寫包裝外部3D引擎的Qt應用程序。我使用QGLWidget來封裝引擎API。儘管我使用Qt創建GL上下文,但我沒有使用任何Qt GL API方法API:使用原始OpenGL繪製QGLWidget中的文本

QGLFormat format; 
format.setProfile(QGLFormat::CompatibilityProfile); 
format.setVersion(4,2); 
format.setDoubleBuffer(true); 
format.setSwapInterval(1); 

現在,我正在尋找一種方法來繪製在視口中的文本,發現Qt的rendeText()

我試圖使用它,但沒有文字開始繪製。 這就是我要做的事:

qglColor(Qt::black); 
    this->renderText(50, 50, "Some text"); 

我怎麼會錯過嗎?

順便說一下,我的深度緩衝區已關閉。

回答

0

我用下面的方法在我的OpenGL窗口部件繪製文本:

void myGL_Widget::OGL_Draw_Text(QString text,float x,float y, float z, float red, float green, float blue) 
    { 
     glPushMatrix(); 
     glColor3f(red, green, blue); 
     renderText(x, y, z, text); 
     glPopMatrix(); 
    } 
+0

試過這種too.Doesn't work.May是隻與固定管道的作品? –

+0

Qt使用OpenGL 2.0着色器。但是OpenGL 3+是相當新的,甚至還不可用。 Qt5最低。所以它可能會試圖在您的引擎已經切換到GL3上下文時使用GL2。另請參閱您的格式參數。 – ypnos