Мы работаем над плагином видеоплеера с FireBreath. У него безоконный режим, а в Хроме на винде выдает очень странный эффект.
Всякий раз, когда мы пытаемся рисовать в hdc
, пиксели появляются либо в правильном цвете, либо в инвертированном, в зависимости от значения старшего бита в любом из 3 каналов.
Это означает, что при полной глубине цвета в среднем половина пикселей выглядит инвертированной, а другая половина — в порядке. Одинаково как при отображении видеокадра с помощью StretchDIBits()
, так и при простом заполнении сплошными цветами с помощью FillRect()
. SetStretchBltMode()
устанавливается на COLORONCOLOR
.
Мы пока не смогли найти решение, наш временный хак состоит в том, чтобы преобразовать цвета в половину глубины и установить все старшие значащие биты в 1, но это, очевидно, плохое решение для пустой траты ресурсов процессора и потери половины глубины цвета.