2012-02-28 17 views
3

私のアプリケーションは、WPFのホストされたウィンドウでOpenGLエンジンを持っています。 OpenGLウィンドウの上にコンテンツを表示する半透明ウィジェット(Windowオブジェクト)を作成しました。アプリケーションがデータを処理するとき、ウィジェットの背景が黒くなることがあります(添付の画像を参照)。 それは誰か分かりません。どうすればこの問題を解決できますか? enter image description hereOpenGL上の透明なウィンドウ

+0

私の知る限り、私はそれは時々あなたのために働く驚いて透明性が唯一のWPFのアイテム間で動作します知っています。 –

+0

OpenGLウィンドウは透明ではありませんが、wpfウィンドウは透明です。それは非常にうまくいきますが、この問題はasyncronousレンダリングが発生したときに起こります(私の意見) –

+0

WPFウィンドウは他のWPFウィンドウに対して透過的です。 WPFトランスペアレントコントロールをWindowsフォームコントロールに配置することはできません。 –

答えて

0

これはまったく動作するとは限りません。 OpenGLウィンドウは、WPFの透明度を下回っているか上に合成されていません。時にはうまくいくかもしれませんが、そうする必要はありません。

+0

合成を有効にして合成することができます。これは新しいPIXELFORMATDESCRIPTORフラグによって行われます。 – datenwolf

+0

まず、その背後にあるものと合成するだけで、上には合成しません。次に、[wglChoosePixelFormatARB](http://www.opengl.org/registry/specs/ARB/wgl_pixel_format.txt)に相当するものは表示されません。これはほとんどの人がピクセル形式を取得する場所です。それ以外の場合は、sRGBフレームバッファまたはマルチサンプリングを使用できませんでした。 –

+0

@datenwolf:そして、第三に、PFD_SUPPORT_COMPOSITIONがハードウェアアクセラレーションをオフにしたり、Microsoft GLドライバの使用を強制したりするという保証はありません。それもどちらでもできる保証はありませんが、私はそのような変更をしようとする前に、より多くの情報を望んでいます。 –

関連する問題