0

FireBreath を使用したビデオ プレーヤー プラグインの開発に取り組んでいます。ウィンドウレス モードがあり、Windows 上の Chrome では非常に奇妙な効果が得られます。

ピクセルをペイントしようとするhdcと、3 つのチャネルのいずれかの最上位ビットの値に応じて、正しい色で表示されるか反転して表示されます。

これは、フルカラー深度では、平均してピクセルの半分が反転して表示され、残りの半分は正常であることを意味します。で動画フレームを表示する場合も、StretchDIBits()で塗りつぶすだけの場合も同じFillRect()です。にSetStretchBltMode()設定されていCOLORONCOLORます。

これまでのところ解決策を見つけることができませんでした。私たちの一時的なハックは、色を半分の深度に変換し、すべての最上位ビットを 1 に設定することですが、CPU の労力を浪費し、色深度の半分を失うという点では明らかに悪い解決策です。

4

1 に答える 1

1

ええ、Chromeには奇妙なバグがあります。最も簡単な解決策は、ウィンドウの背後で背景色を黒に設定することです。firebreath-dev グループには、これに関するスレッド全体があります。

EDIT:バグは、反射的に、実際には正しい用語ではないかもしれません。そのように興味深い実装があります=]

于 2015-02-13T18:48:38.307 に答える