我们正在开发一个带有 FireBreath 的视频播放器插件。它具有无窗口模式,在 Windows 上的 Chrome 中会产生非常奇怪的效果。
每当我们尝试在像素中绘制时,hdc
像素要么以正确的颜色出现,要么以相反的颜色出现,具体取决于 3 个通道中任何一个中最高有效位的值。
这意味着在全色深度中,平均有一半的像素出现倒置,而另一半则很好。使用 显示视频帧StretchDIBits()
和使用 填充纯色时都是一样的FillRect()
。SetStretchBltMode()
设置COLORONCOLOR
为。
到目前为止,我们找不到解决方案,我们的临时技巧是将颜色转换为深度的一半并将所有最高有效位设置为 1,但这显然是浪费 CPU 工作并丢失一半颜色深度的糟糕解决方案。