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