1

ChoosePixelFormat、SetPixelFormatなどを使用してWindowsでOpenGLレンダリングコンテキストを作成しています。これはすべて美しく機能しますが、OpenGLコンテンツが描画される直前に、ウィンドウはすべて白に設定されます。簡単に言えば、まだ表示されています。

ウィンドウクラスの背景ブラシはGetStockObject(HOLLOW_BRUSH)であり、WM_ERASEBKGNDまたはWM_PAINTのいずれにも応答せず、OpenGLコンテキストはすぐに黒でクリアされます。これはすべて問題ではないようです。

実行中にOpenGLレンダリングループを一時的にオフにし、ウィンドウを非表示にしてから表示すると、この問題を再現することもできます。これで完全に白くなります。

OpenGLレンダリングターゲットとして設定されている場合、Windowsはウィンドウをクリアしているように見えます。これには白が使用されています。これは既知の問題ですか?デフォルトの色を制御する方法はありますか?黒の方がはるかに良いでしょう。ありがとう!

(ATI RadeonHD5750アダプタでWindows7を使用します。)

4

2 に答える 2

0

私にとっての解決策は、最初のWM_PAINTメッセージが到着したときに何かを描くことでした。

于 2012-12-14T13:37:36.130 に答える
0

私もこの問題を抱えていました。白いちらつきを防ぐために、何もせずに true を返すことで、WM_ERASEBKGND メッセージを処理する必要がありました。

于 2012-12-13T16:54:25.237 に答える