0

我们正在开发一个带有 FireBreath 的视频播放器插件。它具有无窗口模式,在 Windows 上的 Chrome 中会产生非常奇怪的效果。

每当我们尝试在像素中绘制时,hdc像素要么以正确的颜色出现,要么以相反的颜色出现,具体取决于 3 个通道中任何一个中最高有效位的值。

这意味着在全色深度中,平均有一半的像素出现倒置,而另一半则很好。使用 显示视频帧StretchDIBits()和使用 填充纯色时都是一样的FillRect()SetStretchBltMode()设置COLORONCOLOR为。

到目前为止,我们找不到解决方案,我们的临时技巧是将颜色转换为深度的一半并将所有最高有效位设置为 1,但这显然是浪费 CPU 工作并丢失一半颜色深度的糟糕解决方案。

4

1 回答 1

1

是的,Chrome 有一个奇怪的错误。最简单的解决方法是将窗口后面的背景颜色设置为黑色;firebreath-dev 小组对此有一个完整的主题。

编辑:错误可能实际上不是正确的术语,经过反思;它有一个有趣的实现方式=]

于 2015-02-13T18:48:38.307 回答