2013-08-28 112 views
1

我們的目標系統有一個較舊的圖形芯片,只支持OpenGL 1.4。但是,對於高掃描速率的32K點示波器型圖,我們確實需要硬件加速。 QCustomPlot和QWT都使用需要OpenGL ES 2.0或更高版本的QPainter類。有沒有簡單的方法呢?或者,有沒有人知道我們可以使用的另一種繪圖工具,它可以加速OpenGL 1.4?我們的目標是在Windows XP SP3上運行QT 5.0。使用OpenGL v1.4進行硬件加速的Qt 2D繪圖?

for (int i=0; i<SCAN_SIZE; i++) 
    m_plotQmap->insert(i,QCPData(i,lScanData[scan_dataset][i])); 
ui->myPlot->graph(0)->setData(m_plotQmap,true); 
ui->myPlot->replot(); 
+0

我想現在可以繪製所有32K點。使用QCustomPlot,這需要75msec。我們需要它可能快十倍。 – BenYL

+0

再一次,地塊面積有多大?寬x高?你如何繪製「點」?每個點是否有符號(如形狀或點)?是否有線路加入點? –

+1

最簡單的方法是直接在助手類中使用舊的OpenGL。就我個人而言,我可能會將QtQuick Scene Graph移植回OpenGL 1.4並使用它 - 它會比一次性解決方案更靈活 - 除此之外,您還可以擁有體面的流暢用戶界面到你的情節。 –

回答

2

對於OpenGL 1.4的目標系統,我推薦使用Qt4。在不滿足最低要求的情況下使用Qt5沒有任何意義。但是對於Qt4,你的平臺應該沒問題。

旁邊的OpenGL相結合的Qt4/X11提供硬件加速圖形(QT5/X11不!),但是當你使用的是Windows ...

QWT 6.1中引入QwtPlotGLCanvas,你符合OpenGL繪圖引擎的一個渲染。在refreshtest示例中,您可以檢查OpenGL的效果並將其與軟件渲染器進行比較(將更新設置爲0)。

另外看看Qwt的示波器示例,它顯示了一個遞增繪製曲線的實現。如果可以通過這種方式實現您的繪圖,則可以擁有非常高的刷新率 - 即使使用軟件渲染器也是如此。