Изображение окна плагина Chrome перевернуто

Мы работаем над плагином видеоплеера с FireBreath. У него безоконный режим, а в Хроме на винде выдает очень странный эффект.

Всякий раз, когда мы пытаемся рисовать в hdc, пиксели появляются либо в правильном цвете, либо в инвертированном, в зависимости от значения старшего бита в любом из 3 каналов.

Это означает, что при полной глубине цвета в среднем половина пикселей выглядит инвертированной, а другая половина — в порядке. Одинаково как при отображении видеокадра с помощью StretchDIBits(), так и при простом заполнении сплошными цветами с помощью FillRect(). SetStretchBltMode() устанавливается на COLORONCOLOR.

Мы пока не смогли найти решение, наш временный хак состоит в том, чтобы преобразовать цвета в половину глубины и установить все старшие значащие биты в 1, но это, очевидно, плохое решение для пустой траты ресурсов процессора и потери половины глубины цвета.


person Mkoch    schedule 13.02.2015    source источник


Ответы (1)


Да, в Chrome есть странная ошибка. Самое простое решение — установить черный цвет фона за окном; есть целая ветка об этом в группе Firebreath-dev.

РЕДАКТИРОВАТЬ: ошибка на самом деле может быть неправильным термином, если подумать; у него интересная реализация таким образом =]

person taxilian    schedule 13.02.2015