2017-02-17 28 views
2

もし私がしたいのは、ウィンドウを作成せずにOpenGL関数でいくつかのレンダリングを行うことだけです。 OpenGLをプラットフォームウィンドウシステムとバインドするためにglxのようなライブラリを使用する必要がありますか?OpenGLをオフスクリーンのフレームバッファにレンダリングするとき、ウィンドウシステムのサポートはまだ必要ですか?

私がする必要がない場合、OpenGLのコンテキストはどこに作成されますか? glXCreateContextのような関数を使用してOpenGLコンテキストを作成する必要があるためです。しかし、私が正しいことを覚えていれば、すべてのOpenGLプログラムにコンテキストが必要です。だから矛盾があるようですね?

誰かが私のためにこれを明確にすることができます。

+0

[実装](http://stackoverflow.com/a/41272146/44729)に依存します。 – genpfault

答えて

2

OpenGL自体(仕様)は、ウィンドウシステムインテグレーションと、レンダリングコンテキストがどこでどのように取得できるかに関する要件を課していません。 OpenGL実装がオフスクリーンコンテキスト作成を提供することは完全に合法です。実際の質問は次のとおりです。どのOpenGL実装でこれを行い、そのためのAPIは何ですか。

DRI/DRM/MesaウィンドウのあるウィンドウおよびスクリーンレスOpenGLコンテキストは、KMSがサポートするGPU上のGBM API /ライブラリを使用して作成できます。

また、Mesaにはオフスクリーンメサの変形(OSMesa)がありますが、現時点ではソフトウェアベースのレンダリング(llvmpipeまたはsoftpipe)のみが行われますが、後でGPUサポートが追加される可能性があります。

EGL(コンテキスト管理用のKhronosクロスプラットフォームAPI)には、ウィンドウレス/スクリーンレスのコンテキスト作成オプションも用意されています。オプションはドライバによってサポートされるためオプションです。少なくともNVidia独自のドライバはそれをサポートしています:https://devblogs.nvidia.com/parallelforall/egl-eye-opengl-visualization-without-x-server/

+0

あなたの説明は私には意味がある、ありがとう! –

関連する問題