バックバッファとフロントバッファ間をスワップすると、バックバッファの内容が不定になります。私はそれをGLX、EGL、WGLのような "ウィンドウシステム"を使って定義したいと思っています。 OpenGL(glClear)などの「ネイティブ」レンダラを使用することは私のバックアップ計画であり、気にする必要はありません。それがバックアップである理由は、ネイティブレンダリングコンテキストを混乱させたくないからです。私はこの質問のためにX/GLXに固執しますが、あなたが他の環境でそれを行う方法を説明する傾向があると感じたら、先に進んでください。ウィンドウシステム(GLX)を使用したスワップバッファとクリアバック
Xlibドキュメント(http://www.x.org/docs/X11/xlib.pdf)から、「背景ピクセル」(途中で素晴らしい名前...)でウィンドウをクリアする操作XClearWindowが見つかりました。
- XClearWindowはフロント/バックまたは両方のバッファをクリアしますか?私はバックバッファーが理にかなっていると思うが、Xlib文書だけではそれを理解できない。そして誰かがトリプルバッファーについて尋ねれば、それは私ではなかった!
- OpenGLレンダリングと同期しているのですか?たとえば、操作の前にglxWaitGLを呼び出すなどして自分自身を同期させる必要がありますか?
- コマンドがブロックされていますか?完了するまで停止しますか?実装に依存しますか?
ウィンドウシステム(GLX)を使用したスワップ後にバックバッファをクリアする方法に関するその他の提案
乾杯!
スワップ後にコンテンツを定義すると、定義したので定義されています。ウィンドウ処理システムのスワップはパフォーマンスを低下させないので、ウィンドウシステムのクリアがパフォーマンスを低下させることはないと信じることは合理的です。 OpenGLはウィンドウ処理システムではありません。 glClearを使用することは既知のバックアップ計画であり、私は明示的にそれを言わないように頼んだ。パズルのこの部分が世界の支配を保証する私の壮大な計画については、あなたは気にしないでください。 OpenGLとのシステム同期をウィンドウ処理について知っておいてください。 – Andreas
@Andreas値が '0xDEADBEEF'になるように' * NULL'を定義することはできますが、その実装がその定義を尊重しないなら、それはまったく役に立たないでしょう。あなたは、ウィンドウシステムがOpenGL実装の 'glClear'よりも優れていると思いますか?あなたの質問は[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)のように聞こえます。 –
@アンドレアス:あなたは 'glClear'よりもパフォーマンスが上がることはほとんどありません。 XClearWindowは、実際に複雑な塗りつぶし操作を実行することがあります(定義された背景タイルでウィンドウを埋める)。また、XClearWindowの主な実装は、GPUメモリへのCPU駆動メモリ書き込みとして実装される可能性があります。それはDMAによって支援されるかもしれないし、そうでないかもしれないが、決してGPUへの単一のコマンドほど高速ではない*メモリの全領域が特定の値に設定されている*。私は*マーキング*: – datenwolf