EGL ピックスマップは、基礎となるウィンドウ システムでサポートされているピックスマップのような概念を反映することを目的としています。用語は X11 に由来します。EGL仕様には次のように書かれています:
EGL は、集合的に EGLSurfaces と呼ばれるいくつかのタイプの描画サーフェスを定義します。これらには、画面上のレンダリングに使用されるwindowsが含まれます。オフスクリーン レンダリングに使用されるpbuffers 。pixmapsは、ネイティブ API を介してアクセスできるバッファへのオフスクリーン レンダリングに使用されます。EGL ウィンドウとピックスマップは、ネイティブ ウィンドウ システムのウィンドウとピックスマップに関連付けられています。
ピックスマップとウィンドウの主な違いは次のとおりです。
- EGL 実装はピックスマップをサポートする必要はありません (ネイティブ ウィンドウ システムには同等の概念がない場合があります)。
- 通常、ピックスマップはシングル バッファリングされますが、ウィンドウはダブルまたはトリプル バッファリングされる場合があります。
- ピックスマップはオフスクリーン サーフェスです (ただし、オフスクリーン ウィンドウも可能です)。
基礎となるウィンドウ システムがピックスマップをサポートしていない場合、EGL ピックスマップを実際に使用することはできません (おそらく EGL 実装によって公開されません)。これらは、何らかの理由で X11 ピックスマップ (または同様のもの) にレンダリングする必要がある場合に備えて提供されているだけです。
一例として、GPU を使用して 3D オブジェクトをレンダリングし、それを X11 カーソルとして使用したい場合があります。その場合、ピックスマップを作成し、EGL ピックスマップ ドローアブルを作成し、何かを描画してから、使用XCreateCursorFromPixmap
してピックスマップをカーソルに変えることができます (これは、EGL 仕様が参照している種類の「ネイティブ API」の例です)。これよりも有用な例がおそらく存在します。