Программирование 3D-графики. Знакомство с DIRECTX и D3DX

Если прежде вы никогда не занимались программированием 3D-графики на платформе Microsoft Windows, то должны знать, что DirectX — это высокопроизводительная библиотека низкого уровня, предоставляющая интерфейс прикладного программирования для работы с устройствами мультимедиа. В ее состав входят компоненты, предназначенные для прямого доступа к основным элементам оборудования ПК.

Если при инсталляции DirectX 9.0 SDK у вас уже установлена среда Microsoft Visual Studio, то результаты более ранней установки будут автоматически обновлены, после чего вам будет предоставлена возможность работать с библиотечными и заголовочными файлами SDK. Кроме того, у пользователей Visual Studio.NET появятся дополнительные средства отладки DirectX, которые будут добавлены к обозревателю проекта.NET. В случае работы с другими компиляторами или установки Microsoft Visual Studio после инсталляции DirectX SDK путь к папкам с подключаемыми и библиотечными файлами DirectX нужно задать вручную, с тем, чтобы программы с интерфейсом DirectX могли успешно проходить компиляцию и компоновку.

Те, кто используют компилятор, отличный от Microsoft Visual Studio.Net, должны знать, что библиотека Direct3D Extension Library поддерживает инструкции из набора Intel Streaming SIMD Extensions только при компиляции программ в среде Microsoft Visual Studio.Net. Это ограничение связано с поддержкой команд выделения памяти с выравниванием на границу параграфа, которые неизвестны более ранним версиям Visual C++, если в них не установлен особый модуль. Такое выравнивание просто необходимо многим инструкциям доступа памяти в SSE, поэтому D3DX блокирует применение самих инструкций, если поддержка выделения памяти с выравниванием не гарантирована компилятором. Проверить же наличие специального модуля никак нельзя, поэтому код библиотеки D3DX, в котором используются инструкции SSE, будет недоступен, если не установлена директива препроцессора, сигнализирующая о работе с компилятором Microsoft Visual C++ версии 7.0 или выше.

Работая с компилятором другой фирмы или используя более раннюю версию Microsoft Visual C++, вы можете установить эту директиву самостоятельно, тем самым разрешив поддержку SSE в библиотеке D3DX. Однако при этом вы должны быть уверены в том, что ваш компилятор поддерживает выделение памяти с 16-байтным выравниванием, для чего служит нестандартный оператор declspec, используемый в D3DX. Если вы сомневаетесь в поддержке такой возможности, обратитесь к документации компилятора. Убедившись, что все в порядке, вы можете внести в make-файл или файл настроек своего проекта следующую директиву, имитирующую наличие компилятора Visual C++ 7.0 и разрешающую поддержку Intel SSE в библиотеке D3DX.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *