netlib.narod.ru< Назад | Оглавление | Далее >

Зависимости COM-интерфейсов Direct3D

В главе 3 обсуждались COM-интерфейсы Direct3D и обеспечиваемая ими функциональность. Во время обсуждения вы узнали, что некоторые интерфейсы должны создаваться раньше, а другие позже. Интерфейсы должны создаваться в определенном порядке. В этом разделе мы узнаем об этих зависимостях и о том, как они влияют на программы.

Дерево зависимостей

Простейший способ анализа зависимостей — построение дерева зависимостей. Дерево зависимостей изображает связи каждого интерфейса с другими, представляя каждый интерфейс как узел дерева. Корень дерева представляет интерфейс, который не зависит от существования остальных. Последующие узлы представляют интерфейсы прямо или косвенно зависящие от корневого. Дерево зависимости для интерфейсов Direct3D изображено на рис. 4.2.


Рис. 4.2 Дерево зависимостей для интерфейсов Direct3D

Рис. 4.2. Дерево зависимостей для интерфейсов Direct3D


Узлы на рисунке содержат название интерфейса (выделенное полужирным шрифтом) и имя переменной, используемой для идентификации данного интерфейса.

Из рисунка видно, что единственный интерфейс не зависящий от других — это интерфейс Direct3DRM. Линии, идущие от Direct3DRM к узлам DirectDrawClipper и Direct3DRMFrame показывают, что эти интерфейсы зависят от существования интерфейса Direct3DRM.

Система узлов распространяется от корня до узлов интерфейсов Direct3DRMViewport, Direct3DRMLight и Direct3DRMMeshBuilder. Эти интерфейсы косвенно зависят от всех остальных интерфейсов дерева. Обратите внимание, что интерфейс Direct3DRMViewport непосредственно зависит от двух интерфейсов.

Создание собственного дерева зависимостей

Показанное на рис. 4.2 дерево зависимостей может быть разделено на две части. Узлы вблизи корня представляют интерфейсы, присутствующие во всех приложениях Direct3D, а остальные узлы представляют интерфейсы меняющиеся от приложения к приложению. Мы назовем первую группу стандартными интерфейсами (standard interfaces), а вторую — специализированными интерфейсами приложения (application specific interfaces). На рис. 4.3 отображено данное разделение дерева.


Рис. 4.3 Отделение стандартных интерфейсов от специализированных интерфейсов приложения

Рис. 4.3. Отделение стандартных интерфейсов от специализированных интерфейсов приложения


Рисунок показывает, что создающие сцену интерфейсы зависят от приложения. Это разделение будет играть важную роль позднее, когда мы будем говорить о структуре классов. Наша цель состоит в том, чтобы автоматизировать создание стандартных интерфейсов, учитывая при этом специализированные интерфейсы приложения, которые будут создаваться, и изменяться согласно предъявляемым к приложению требованиям.


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz