Re[33]: Еще
От: vdimas Россия  
Дата: 12.06.17 17:37
Оценка:
Здравствуйте, ononim, Вы писали:

V>>>Для абстракции HDC, полученной для поверхности DirectDraw, тоже выполнялось аппаратное ускорение.

CS>>Тебя обманули.
O>Всех обманули: https://www.neowin.net/forum/topic/1036369-did-you-know-all-gdi-apps-render-slower-under-win7/

Абсолютно верно.
Я рядом писал:

До Win7 ты вообще рисовал ПРЯМО в видеопамять.
То бишь, когда ты получал HDC текущего окна для прорисовки, ты получал DC над экранным буфером видеопамяти.
Причем, доступ к отображаемому в данный момент видеобуферу — он на тех карточках всегда был более медленный, чем к заднему буферу.

В Висте/Win7 и выше ты больше не пишешь прямо в экранный буфер, поэтому, когда ты растягиваешь окно, то опять появляются артефакты — черные или белые "пустые" области, пока приложение там прорисует в свой буфер.



O>Ну а то что альфабленд уже в те времена процессился хардварно на WS_EX_LAYERED окнах — это по моему и ежу понятно было. Причем работал и per-pixel блендинг, используя 4й канал битмапов. То есть в принципе техническая возможность допилить GDI чтобы BitBlt поддерживал блендинг


А какую из операций? Простое смешение?
Сигнатура AlphaBlend построена так, чтобы задавать любые blend-операции над src и dst, хотя изначально было реализовано лишь простое смешение + доп. множитель альфа.


O>в котором отломали ускорение GDI, ... и объявили курс на светлое будущее в виде Direct *D.


И это дало свои плоды в DirectX 11/12, где на многих классах задач получили ускорение до 2-х раз.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.