X-Window システムを使用しない Linux プラットフォームで OpenGL を使用する方法、OpenGL グラフィックスをフレームバッファ デバイスに直接送信できますか?
DirectFB(Direct FrameBuffer)というプロジェクトがあります。DirectFB でこれを行うことができますが、DirectFB はハードウェアごとにドライバーが必要であり、Linux ドライバーのみを備えたグラフィック カードを使用したいと考えています。
X-Window システムを使用しない Linux プラットフォームで OpenGL を使用する方法、OpenGL グラフィックスをフレームバッファ デバイスに直接送信できますか?
DirectFB(Direct FrameBuffer)というプロジェクトがあります。DirectFB でこれを行うことができますが、DirectFB はハードウェアごとにドライバーが必要であり、Linux ドライバーのみを備えたグラフィック カードを使用したいと考えています。
これは、ubuntu 11.04で詳細に行った方法です。1-コマンドを使用して依存関係をインストールします。
sudo apt-get install xutils-dev libpciaccess-dev x11proto-dri2-dev x11proto-gl-dev libxdamage-dev libxfixes-dev
2- mesa ライブラリには libdrm バージョン >= 2.4.24 が必要ですが、これは ubuntu 11.04 リポジトリでは利用できません (古いバージョンが利用可能です)。そのため、ソースをダウンロードして、次のコマンドを使用してビルドする必要があります。
./configure
make
make install
3-mesa ライブラリをダウンロードし、次のコマンドを使用してコンパイルします: ./configure --prefix=install_directory
make realclean
make linux-fbdev
sudo make install
システムの mesa ライブラリを上書きしないように、install_directory を選択するときは注意してください。その後、オプションを使用してアプリケーションをコンパイルします。-lGL -lOSMesa -ldl -L'install_directory/lib' -I'install_directory/include'
XなしでSDLを実行することは明らかに可能です。
基本的に、カーネルはフレームバッファをサポートする必要があり、DirectFB の上で SDL を使用できます。
これらのスレッドは問題ありません:
http://lists.libsdl.org/pipermail/sdl-libsdl.org/2006-October/058305.html
あなたが言ったように、これを行うにはドライバーが必要です。すべての Linux グラフィックス ドライバーの 99.9% が X11 を使用しているため、ハードウェア用の DirectFB OpenGL ドライバーがない限り、X11 を使用することになります。
Mesaは、フレームバッファベースのソフトウェアレンダリングに使用できます。