Mario
Надо душить жабу .
Фоновому изображению с иконками фиолетово или почти фиолетово наличие shadowfb, хотя он упрощает многие вещи. Например проще задействовать MMX потому что читаем shadowfb а не тормозную видеопамять. Или рамка при перетаскивании окна. Вместо xor с чтением видеопамяти рисуем паттерн, а востанавливаем из буфера.
Идея ICON сводится к следующему. Из ядра убирается код отрисовки фоновой картинки и объединяется с ICON. Само приложение создаёт только один поток и не требует собственного окна. ICON рисует в десктоп (slot 1) а для проверки кликов использует функцию, которая возвращает слот окна по координатам x,y. Соответственно если это 1, значит клик был на десктопе.
Cairo
А как тогда с выставлением картинки для фона. Как этот механизм работать будет в случае когда только ICON будет монопольно распоряжаться отрисовкой картинки. И вообще получается будет жрать память равную текущему режиму LFB. Расточительно, ужас! А еще господа любители крутящихся иконок будут выть - хотя всем остальным на них... кхм.
Mario
Выставлять картинку через расшареную память.
Выставлять картинку через расшареную память.
Чего-то мне в последнее время эта твоя идея с блиттером всё больше начинает нравиться.Serge wrote:Поскольку тема блиттера (ф.73) в основном обсуждалась в этой теме, то здесь и отпишусь.
... Если есть вопросы, замечания и предложения пишите.
Приходится признать, что системные вызовы действительно сильно тормозят GUI.
И syscallы, и запредельная оптимизация кода проблемы не решают: скорость увеличивается в лучшем случае на десятки процентов, а надо - в разы...
Может, имеет смысл довести блиттер до полноценного "теневого" видеобуфера, куда приложение могло бы рисовать с помощью расшаренных GUI-библиотек, а ядро бы вызывалось только для окончательной отрисовки окна?
art_zh
Со временем. Здесь надо ещё видеодрайвер подключать.
У меня есть идея забрать у приложений прямой доступ к видеопамяти по LFB_BASE и разместить там буфер окна. Но тут есть разные варианты.
1. буфер представляет всё окно - клиентскую часть и обрамление.
2. буфер представляет только клиентскую часть, а обрамление рисуется в собственные буферы.
Для каждого варианта есть свои резоны. Первый позволяет вывести всё окно за один вызов блиттера.
Второй упрощает вывод видео если драйвер умеет масштабировать текстуры.
Со временем. Здесь надо ещё видеодрайвер подключать.
У меня есть идея забрать у приложений прямой доступ к видеопамяти по LFB_BASE и разместить там буфер окна. Но тут есть разные варианты.
1. буфер представляет всё окно - клиентскую часть и обрамление.
2. буфер представляет только клиентскую часть, а обрамление рисуется в собственные буферы.
Для каждого варианта есть свои резоны. Первый позволяет вывести всё окно за один вызов блиттера.
Второй упрощает вывод видео если драйвер умеет масштабировать текстуры.
Serge, а ты вот говорил там viewtopic.php?f=24&t=1674#p31993 что SysFn65 не работает. А что конкретно не работало? Просто у меня и раньше и сейчас всё прекрасно работало и работает.
В ebp не stride, а padding. Например, если padding отсутствует, то ebp = 0.
В ebp не stride, а padding. Например, если padding отсутствует, то ebp = 0.
0CodErr
Точно уже не помню, но были проблемы.
Точно уже не помню, но были проблемы.
Who is online
Users browsing this forum: No registered users and 5 guests