我在使用QT的Unix工作,我試圖創建一個位圖(要麼QGLWidget或QGLPixelBuffer類)與OpenGL呈現。我需要使用顏色索引模式,所以當我創建位圖我宣佈這個qglformat:QOpenGL:顏色索引模式
qglformat.setDirectRendering(true);
qglformat.setRgba(false); // COLOR INDEX MODE
qglformat.setDepth(true);
qglformat.setOverlay(false);
qglformat.setDepthBufferSize(16);
然後我創建位圖:
QGLWidget來繪圖:
m_qglwiget = new QGLWidget(qglformat);
m_qglwiget->setGeometry(0,0,m_iW,m_iH);
QGLPixelBuffer:
m_pB = new QGLPixelBuffer(m_iW,m_iH,qglformat);
在第一種情況下,小部件創建,但如果我看它是否有效,函數isValid( )返回'false'。並執行中止與該錯誤:QGLContext :: makeCurrent():無法使無效的上下文當前。因爲上下文也是無效的。
否則,在第二種情況下,PixelBuffer已正確創建,但已自動將索引顏色模式更改爲RGB模式。
相同的程序在使用Windows的同一臺計算機上運行,因此它不是圖形卡的問題。
您是否告訴我如何正確定義位圖以便能夠在顏色索引模式下呈現?