Инструменты пользователя

Инструменты сайта


newwindowsystem-basics

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

newwindowsystem-basics [2014/11/12 12:28]
admin
newwindowsystem-basics [2018/11/30 01:12]
Строка 1: Строка 1:
-====== Основа устройства новой оконной системы ====== 
  
-Сначала посмотрим,​ как устроена оконная система в эталонном Блэкбокс на примере схемы прохождения сигналов от пользователя к фокусу:​{{ ::​bb_old_win.png?​nolink |}} 
-Поскольку эталонный Блэкбокс использует оконный менеджер Windows (своего у него нет), то сигнал от пользователя сразу попадает в объект HostWindows.Window,​ реализующий абстрактный интерфейс Windows.Window. Здесь сообщение от Windows транслируется в сообщение каркаса и передаётся в дерево фреймов (корень которого прикреплён к объекту окна), в итоге попадая в фокус. 
- 
-Если же мы отказываемся от использования платформенного оконного менеджера,​ то придётся реализовать механизмы управления окнами средствами самого каркаса. Посмотрим,​ как будет выглядеть прохождение сообщений в этом случае:​{{ ::​bb_sdl_new_win.png?​nolink |}}Итак,​ к нашей схеме добавились новые элементы. 
- 
-Поскольку платформой теперь является [[http://​libsdl.org|кроссплатформенная прослойка SDL]], то сигнал от пользователя сначала попадает в объект окна SDL. После чего передаётся в главное окно приложения. Это особый объект,​ который использует функциональность SDL для обработки сообщений,​ и хранит единый для всех окон каркаса контекст OpenGL. 
- 
-Кроме этого, главное окно является контейнером для окон каркаса,​ которые теперь рисуются стандартными средствами,​ но при этом по-прежнему соблюдают контракт Windows.Window. 
- 
-Далее сообщения идут обычным образом - по дереву фреймов,​ которое своё для каждого из стандартных окон каркаса (что совпадает с эталонной схемой). 
newwindowsystem-basics.txt · Последние изменения: 2018/11/30 01:12 (внешнее изменение)