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

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


bb:sdl:newwindowsystem-basics

Различия

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

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

Следующая версия
Предыдущая версия
bb:sdl:newwindowsystem-basics [2016/03/30 22:38]
prospero78 создано
bb:sdl:newwindowsystem-basics [2020/10/29 07:08] (текущий)
Строка 1: Строка 1:
 ====== Основа устройства новой оконной системы ====== ====== Основа устройства новой оконной системы ======
  
-Сначала посмотрим, как устроена оконная система в эталонном Блэкбокс на примере схемы прохождения сигналов от пользователя к фокусу:{{ ::bb_old_win.png?nolink |}} +Сначала посмотрим, как устроена оконная система в эталонном **Блэкбокс** на примере схемы прохождения сигналов от пользователя к фокусу:{{ ::bb_old_win.png?nolink |}} 
-Поскольку эталонный Блэкбокс использует оконный менеджер Windows (своего у него нет), то сигнал от пользователя сразу попадает в объект HostWindows.Window, реализующий абстрактный интерфейс Windows.Window. Здесь сообщение от Windows транслируется в сообщение каркаса и передаётся в дерево фреймов (корень которого прикреплён к объекту окна), в итоге попадая в фокус.+Поскольку эталонный **Блэкбокс** использует оконный менеджер **Windows** (своего у него нет), то сигнал от пользователя сразу попадает в объект **HostWindows.Window**, реализующий абстрактный интерфейс **Windows.Window**. Здесь сообщение от **Windows** транслируется в сообщение каркаса и передаётся в дерево фреймов (корень которого прикреплён к объекту окна), в итоге попадая в фокус.
  
 Если же мы отказываемся от использования платформенного оконного менеджера, то придётся реализовать механизмы управления окнами средствами самого каркаса. Посмотрим, как будет выглядеть прохождение сообщений в этом случае:{{ ::bb_sdl_new_win.png?nolink |}}Итак, к нашей схеме добавились новые элементы. Если же мы отказываемся от использования платформенного оконного менеджера, то придётся реализовать механизмы управления окнами средствами самого каркаса. Посмотрим, как будет выглядеть прохождение сообщений в этом случае:{{ ::bb_sdl_new_win.png?nolink |}}Итак, к нашей схеме добавились новые элементы.
  
-Поскольку платформой теперь является [[http://libsdl.org|кроссплатформенная прослойка SDL]], то сигнал от пользователя сначала попадает в объект окна SDL. После чего передаётся в главное окно приложения. Это особый объект, который использует функциональность SDL для обработки сообщений, и хранит единый для всех окон каркаса контекст OpenGL.+Поскольку платформой теперь является [[http://libsdl.org|кроссплатформенная прослойка SDL]], то сигнал от пользователя сначала попадает в объект окна **SDL**. После чего передаётся в главное окно приложения. Это особый объект, который использует функциональность **SDL** для обработки сообщений, и хранит единый для всех окон каркаса контекст **OpenGL**.
  
-Кроме этого, главное окно является контейнером для окон каркаса, которые теперь рисуются стандартными средствами, но при этом по-прежнему соблюдают контракт Windows.Window.+Кроме этого, главное окно является контейнером для окон каркаса, которые теперь рисуются стандартными средствами, но при этом по-прежнему соблюдают контракт **Windows.Window**.
  
 Далее сообщения идут обычным образом - по дереву фреймов, которое своё для каждого из стандартных окон каркаса (что совпадает с эталонной схемой). Далее сообщения идут обычным образом - по дереву фреймов, которое своё для каждого из стандартных окон каркаса (что совпадает с эталонной схемой).
bb/sdl/newwindowsystem-basics.1459366737.txt.gz · Последнее изменение: 2020/10/29 07:08 (внешнее изменение)