Поделиться через


Функции драйверов для поддержки 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, который является необязательным в зависимости от возможностей оборудования.

Функция Описание

D3dContextCreate

Создает контекст.

D3dContextDe

Уничтожает контекст.

D3dCreateSurfaceEx

Создает связь между маркером текстуры и поверхностью.

D3dDeкистройDDLocal

Уничтожает все поверхности Direct3D, ранее созданные D3dCreateSurfaceEx , которые принадлежат одному и тому же локальному объекту DirectDraw.

D3dDrawPrimitives2

Отрисовывает примитивы и возвращает обновленное состояние в Direct3D.

D3dGetDriverState

Возвращает сведения о состоянии драйвера в среды выполнения DirectDraw и Direct3D.

D3dValidateTextureStageState

Выполняет проверку состояния стадии текстуры, которая требуется для всех драйверов, поддерживающих текстурирование.

Для поддержки Direct3D драйвер должен минимально поддерживать Microsoft DirectDraw, а также реализовывать определенные функции DirectDraw DDI. Функции, относящиеся к поддержке Direct3D, перечислены в следующей таблице.

Функция Описание

DrvGetDirectDrawInfo

Эта функция извлекает возможности графического оборудования. В этой функции инициализации драйвер указывает, что он поддерживает Direct3D.

DdGetDriverInfo

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

Сведения о функции DirectDraw и реализации обратного вызова рассматриваются в разделе DirectDraw.