Простейший способ анализа зависимостей — построение дерева зависимостей. Дерево зависимостей изображает связи каждого интерфейса с другими, представляя каждый интерфейс как узел дерева. Корень дерева представляет интерфейс, который не зависит от существования остальных. Последующие узлы представляют интерфейсы прямо или косвенно зависящие от корневого. Дерево зависимости для интерфейсов Direct3D изображено на рис. 4.2.
Рис. 4.2. Дерево зависимостей для интерфейсов Direct3D
Узлы на рисунке содержат название интерфейса (выделенное полужирным шрифтом) и имя переменной, используемой для идентификации данного интерфейса.
Из рисунка видно, что единственный интерфейс не зависящий от других — это интерфейс Direct3DRM. Линии, идущие от Direct3DRM к узлам DirectDrawClipper и Direct3DRMFrame показывают, что эти интерфейсы зависят от существования интерфейса Direct3DRM.
Система узлов распространяется от корня до узлов интерфейсов Direct3DRMViewport, Direct3DRMLight и Direct3DRMMeshBuilder. Эти интерфейсы косвенно зависят от всех остальных интерфейсов дерева. Обратите внимание, что интерфейс Direct3DRMViewport непосредственно зависит от двух интерфейсов.