Функции драйверов для поддержки Direct3D
Драйвер, поддерживающий Direct3D, предоставляет функции обратного вызова Direct3D и функции DirectDraw DDI. Обратные вызовы Direct3D DDI прототипируются следующим образом:
typedef DWORD (APIENTRY *LPD3DHAL_MYFUNCTIONCB) (LPD3DHAL_MYFUNCTIONDATA);
В предыдущем синтаксисе:
LPD3DHAL_MYFUNCTIONCB указывает на реализованный драйвером обратный вызов, который можно назвать MyFunction. Все имена обратных вызовов являются псевдоимяминами, определяемыми модулем записи драйвера дисплея.
LPD3DHAL_MYFUNCTIONDATA — это указатель на структуру D3DHAL_MYFUNCTIONDATA, передаваемую обратному вызову. Структуры параметров обратного вызова характеризуются следующим образом:
- Первым элементом каждой структуры, dwhContext, является дескриптор контекста, описывающий трехмерный контекст, в котором должен работать обратный вызов. Единственным исключением из этого правила является структура D3DHAL_CONTEXTCREATEDATA.
- Последним элементом каждой структуры является ddrval. Этот элемент используется для передачи возвращаемого значения обратного вызова в Direct3D, чтобы его можно было вернуть вызывающему приложению.
Чтобы определить, как инициализировать функции обратного вызова Direct3D, см. раздел Инициализация драйвера Direct3D.
В следующей таблице перечислены функции обратного вызова Direct3D, реализованные в драйвере Direct3D. Все функции обратного вызова являются обязательными, за исключением D3dValidateTextureStageState, который является необязательным в зависимости от возможностей оборудования.
Функция | Описание |
---|---|
Создает контекст. |
|
Уничтожает контекст. |
|
Создает связь между маркером текстуры и поверхностью. |
|
Уничтожает все поверхности Direct3D, ранее созданные D3dCreateSurfaceEx , которые принадлежат одному и тому же локальному объекту DirectDraw. |
|
Отрисовывает примитивы и возвращает обновленное состояние в Direct3D. |
|
Возвращает сведения о состоянии драйвера в среды выполнения DirectDraw и Direct3D. |
|
Выполняет проверку состояния стадии текстуры, которая требуется для всех драйверов, поддерживающих текстурирование. |
Для поддержки Direct3D драйвер должен минимально поддерживать Microsoft DirectDraw, а также реализовывать определенные функции DirectDraw DDI. Функции, относящиеся к поддержке Direct3D, перечислены в следующей таблице.
Функция | Описание |
---|---|
Эта функция извлекает возможности графического оборудования. В этой функции инициализации драйвер указывает, что он поддерживает Direct3D. |
|
Среда выполнения запрашивает эту функцию обратного вызова с идентификаторами GUID для получения дополнительных сведений о драйвере. Некоторые идентификаторы GUID относятся конкретно к поддержке Direct3D драйвера. |
Сведения о функции DirectDraw и реализации обратного вызова рассматриваются в разделе DirectDraw.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по