Page 2 of 2

Re: SysFn73:Blit

Posted: Tue Dec 06, 2016 3:12 pm
by 0CodErr
А зачем в blit32 сохраняются и восстанавливаются регистры?

Code: Select all

        push    ebp
        push    edi
        push    esi
        push    ebx
..................
        pop     ebx
        pop     esi
        pop     edi
        pop     ebp

Re: SysFn73:Blit

Posted: Tue Dec 06, 2016 5:44 pm
by Serge
На тот случай, если будет вызываться из ядра ?

Re: SysFn73:Blit

Posted: Tue Dec 06, 2016 5:49 pm
by 0CodErr
А, так оно StdCall что ли?

Re: SysFn73:Blit

Posted: Tue Dec 06, 2016 9:56 pm
by 0CodErr
А нет, оно не StdCall. Параметры передаются в ebx и ecx. Тогда это странно.

Re: SysFn73:Blit

Posted: Wed Dec 07, 2016 9:33 pm
by 0CodErr
#6790 При установке флага BLIT_CLIENT_RELATIVE equ 0x20000000 вывод происходит относительно клиентской области.

Re: SysFn73:Blit

Posted: Thu Dec 08, 2016 6:24 am
by Serge

Code: Select all

     31      30 29 28       6 5  4 3   0
     [reserved][CR][reserved][T][B][ROP]
А чем бит 7 не угодил? Добил бы байт, а так дефрагментация пошла.

Re: SysFn73:Blit

Posted: Sat Dec 10, 2016 3:51 pm
by 0CodErr
Serge wrote:А чем бит 7 не угодил?
Значение 0x20000000 совпадает со значением CLIENT_RELATIVE для DrawWindow. Для единообразия решил использовать тот же самый бит.

Re: SysFn73:Blit

Posted: Wed Oct 17, 2018 5:26 pm
by Leency
Блиттер не работает при глубине цвета 24 бита.
(16 бит и 32 бита - все ок)

Re: SysFn73:Blit

Posted: Wed Oct 17, 2018 5:39 pm
by 0CodErr
А в #4048 оно ещё работало(в #5188 уже нет). "Прогресс" однако.

Re: SysFn73:Blit

Posted: Wed Oct 17, 2018 5:55 pm
by Leency
0CodErr wrote:"Прогресс" однако.
https://cs.pikabu.ru/post_img/big/2013/ ... 899795.png

Re: SysFn73:Blit

Posted: Wed Oct 17, 2018 7:45 pm
by Leency
Leency wrote:Блиттер не работает при глубине цвета 24 бита.
(16 бит и 32 бита - все ок)
C подачи 0CodErr оказалось что функция раньше работала нормально.
Так что я перелопатил тонну сборок прежде чем нашел ту, где появился баг.

Fixed r7474.

Коммичу в ядро 8)