@andr00xa

Как происходит отрисовка интерфейса на низком уровне?

Реквестирую чтиво и видео, в котором объясняется, как происходит отрисовка пользовательского интерфейса:
- например, прокрутка контента. Я так понимаю, существуют видеостраницы в памяти, на которых сначала все рисуется, а потом разница между текущим состоянием и новым выводится на экран. Хотелось бы узнать про это подробнее;
- как работает аппаратное ускорение;
- как рендерится веб-страница со всеми эффектами: тени, полупрозрачность, анимация;
- как работают композитные менеджеры окон, типа Compiz;
- про библиотеки GTK+ и Qt, хочется понять, как они уживаются в одной десктопной среде в линуксе;
- шрифты, и тд.

Уровень подготовки: 10 лет в веб-разработке, до этого 3 года турбо-паскаль, с графическими фичами DOS-уровня имел дело.
  • Вопрос задан
  • 771 просмотр
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Я так понимаю, существуют видеостраницы в памяти, на которых сначала все рисуется, а потом разница между текущим состоянием и новым выводится на экран. Хотелось бы узнать про это подробнее;

Как правило просто перерисовывается все. Вообще все. Затем уже идут оптимизации. Скажем в iOS есть чудный компонент под названием UITableView который просто игнорирует все невидимые ячейки. С другой стороны тот же браузер будет рендрить все, что не display: none. Даже если это "что-то" заслоняет другой слой. Идею вы думаю уловили.

как работает аппаратное ускорение;

Читаем про архитектуру видеокарт, opengl, графический конвейер.

как рендерится веб-страница со всеми эффектами: тени, полупрозрачность, анимация;

www.html5rocks.com/en/tutorials/internals/howbrows... - там довольно детально.

как работают композитные менеджеры окон, типа Compiz;

прямо с их сайта:
Compiz is an OpenGL compositing manager that use GLX_EXT_texture_from_pixmap for binding redirected top-level windows to texture objects. It has a flexible plug-in system and it is designed to run well on most graphics hardware.


Если вы ознакомились с OpenGL то думаю разберетесь.

https://www.youtube.com/watch?v=cQoQE_HDG8g - так же можете вот это посмотреть.

про библиотеки GTK+ и Qt, хочется понять, как они уживаются в одной десктопной среде в линуксе;

ну... они ничего не знают друг о друге и работают поверх X11
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы