Chrome 插件 window 图像反转
Chrome plugin window image inverted
我们正在使用 FireBreath 开发视频播放器插件。它有一个无窗口模式,并且在 Chrome on Windows 中它产生了一个非常奇怪的效果。
每当我们尝试在 hdc
中绘制时,像素会以正确的颜色出现或反转,这取决于 3 个通道中任何一个通道中最高有效位的值。
这意味着在全色深度下,平均有一半的像素出现倒置,而另一半则正常。使用 StretchDIBits()
显示视频帧和使用 FillRect()
仅填充纯色时都是一样的。 SetStretchBltMode()
设置为 COLORONCOLOR
。
到目前为止我们找不到解决方案,我们的临时 hack 是将颜色转换为一半的深度并将所有最高有效位设置为 1,但这显然是浪费 CPU 努力并失去一半的颜色深度。
是的,Chrome 有一个奇怪的错误。最简单的解决方法是将 window 后面的背景颜色设置为黑色;有一个 whole thread on this on the firebreath-dev group.
编辑:经过反思,错误实际上可能不是正确的术语;它有一个有趣的实现方式 =]
我们正在使用 FireBreath 开发视频播放器插件。它有一个无窗口模式,并且在 Chrome on Windows 中它产生了一个非常奇怪的效果。
每当我们尝试在 hdc
中绘制时,像素会以正确的颜色出现或反转,这取决于 3 个通道中任何一个通道中最高有效位的值。
这意味着在全色深度下,平均有一半的像素出现倒置,而另一半则正常。使用 StretchDIBits()
显示视频帧和使用 FillRect()
仅填充纯色时都是一样的。 SetStretchBltMode()
设置为 COLORONCOLOR
。
到目前为止我们找不到解决方案,我们的临时 hack 是将颜色转换为一半的深度并将所有最高有效位设置为 1,但这显然是浪费 CPU 努力并失去一半的颜色深度。
是的,Chrome 有一个奇怪的错误。最简单的解决方法是将 window 后面的背景颜色设置为黑色;有一个 whole thread on this on the firebreath-dev group.
编辑:经过反思,错误实际上可能不是正确的术语;它有一个有趣的实现方式 =]