qt-creatorを使用して、glコンテキスト用にqt 4.8のcppで記述された単純なopenglコードがあります。
このコードは、FBO を使用してテクスチャへのレンダリングを実行し、画面にテクスチャを表示します。Render-to-Texture には、頂点バッファー配列が含まれます。次に、デバッグ用に昔ながらの即時レンダリング ( glPushMatrix
、glBegin(GL_POINTS)
、glVertex
など) を行います。
マックブックプロで。問題ありません。コードは完全に機能しています。
次に、ubuntuに移植しようとしました。.pro ファイルのいくつかの変更:
LIBS += -lglut -lGLU -lGL -lGLEW #linux
LIBS += -framework GLUT -framework OpenGL -lGLEW # mac
およびヘッダーで:
// linux
#include <GL/glew.h>
#include <GL/gl.h>
#include <GL/glu.h>
// mac
#include <GL/glew.h>
#include <gl.h>
#include <glu.h>
ubuntuでは、即時レンダリングが機能し、何をする必要があるかを示していますが、テクスチャは空です(テクスチャバッファからQImageへのピクセル転送を行う場合と、Macですべてが完全に機能する場合の両方で、画面に描画する場合) .
macbookpro にはIntel HD Graphics 4000 512MB、gl バージョン 2.1 INTEL-8.12.47があり、Ubuntu (12.04、3.5.0-36-generic #57~precise1-Ubuntu) マシンにはGEFORCE GTX 660、および gl バージョン 1.4 があります。 (2.1.2 NVIDIA 319.23) .
qtアプリケーションを実行すると、次の警告が表示されるため、gl/nvidiaドライバーに問題があると思います。
libGL error: failed to load driver: swrast
libGL error: Try again with LIBGL_DEBUG=verbose for more details.
価値がある場合は、最後に接尾辞なしでopenglコマンドを使用_EXT
しています..
私はopenglとカードの機能、および(特に)Linuxでのドライバーのインストールについては実用的ではありません。
編集:
示唆されているように、デバッグ詳細フラグを使用して glewinfo を呼び出そうとすると、次のようになります。
libGL: screen 0 does not appear to be DRI2 capable
libGL: OpenDriver: trying /usr/lib/i386-linux-gnu/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/i386-linux-gnu/dri/swrast_dri.so
libGL error: failed to load driver: swrast