Page 3 of 3

Re: Cairo

Posted: Sun Feb 26, 2012 6:52 pm
by Serge
Mario
Надо душить жабу :) .
Фоновому изображению с иконками фиолетово или почти фиолетово наличие shadowfb, хотя он упрощает многие вещи. Например проще задействовать MMX потому что читаем shadowfb а не тормозную видеопамять. Или рамка при перетаскивании окна. Вместо xor с чтением видеопамяти рисуем паттерн, а востанавливаем из буфера.
Идея ICON сводится к следующему. Из ядра убирается код отрисовки фоновой картинки и объединяется с ICON. Само приложение создаёт только один поток и не требует собственного окна. ICON рисует в десктоп (slot 1) а для проверки кликов использует функцию, которая возвращает слот окна по координатам x,y. Соответственно если это 1, значит клик был на десктопе.

Re: Cairo

Posted: Sun Feb 26, 2012 7:57 pm
by Mario
А как тогда с выставлением картинки для фона. Как этот механизм работать будет в случае когда только ICON будет монопольно распоряжаться отрисовкой картинки. И вообще получается будет жрать память равную текущему режиму LFB. Расточительно, ужас! А еще господа любители крутящихся иконок будут выть - хотя всем остальным на них... кхм.

Re: Cairo

Posted: Sun Feb 26, 2012 8:32 pm
by Serge
Mario
Выставлять картинку через расшареную память.

Re: Cairo

Posted: Tue Oct 09, 2012 11:11 pm
by art_zh
Serge wrote:Поскольку тема блиттера (ф.73) в основном обсуждалась в этой теме, то здесь и отпишусь.
... Если есть вопросы, замечания и предложения пишите.
Чего-то мне в последнее время эта твоя идея с блиттером всё больше начинает нравиться.

Приходится признать, что системные вызовы действительно сильно тормозят GUI.
И syscallы, и запредельная оптимизация кода проблемы не решают: скорость увеличивается в лучшем случае на десятки процентов, а надо - в разы...

Может, имеет смысл довести блиттер до полноценного "теневого" видеобуфера, куда приложение могло бы рисовать с помощью расшаренных GUI-библиотек, а ядро бы вызывалось только для окончательной отрисовки окна?

Re: Cairo

Posted: Wed Oct 10, 2012 10:27 am
by Serge
art_zh
Со временем. Здесь надо ещё видеодрайвер подключать.
У меня есть идея забрать у приложений прямой доступ к видеопамяти по LFB_BASE и разместить там буфер окна. Но тут есть разные варианты.
1. буфер представляет всё окно - клиентскую часть и обрамление.
2. буфер представляет только клиентскую часть, а обрамление рисуется в собственные буферы.

Для каждого варианта есть свои резоны. Первый позволяет вывести всё окно за один вызов блиттера.
Второй упрощает вывод видео если драйвер умеет масштабировать текстуры.

Re: Cairo

Posted: Fri Nov 11, 2016 12:28 pm
by 0CodErr
Serge, а ты вот говорил там viewtopic.php?f=24&t=1674#p31993 что SysFn65 не работает. А что конкретно не работало? Просто у меня и раньше и сейчас всё прекрасно работало и работает.
В ebp не stride, а padding. Например, если padding отсутствует, то ebp = 0.

Re: Cairo

Posted: Sat Nov 12, 2016 12:49 pm
by Serge
0CodErr
Точно уже не помню, но были проблемы.