функция обратного вызова PFND3D11DDI_SETSHADER_WITH_IFACES (d3d10umddi.h)

Функция CsSetShaderWithIfaces задает код вычислительного шейдера вместе с группой интерфейсов, чтобы все последующие операции диспетчеризации использовали этот код и эти интерфейсы.

Синтаксис

PFND3D11DDI_SETSHADER_WITH_IFACES Pfnd3d11ddiSetshaderWithIfaces;

void Pfnd3d11ddiSetshaderWithIfaces(
       D3D10DDI_HDEVICE unnamedParam1,
       D3D10DDI_HSHADER unnamedParam2,
  [in] UINT NumClassInstances,
       const UINT *unnamedParam4,
       const D3D11DDIARG_POINTERDATA *unnamedParam5
)
{...}

Параметры

unnamedParam1

hDevice [in]

Дескриптор устройства отображения (графический контекст).

unnamedParam2

hShader [in]

Дескриптор объекта кода вычислительного шейдера.

[in] NumClassInstances

Количество экземпляров класса для реализаций интерфейсов.

unnamedParam4

pPointerData [in]

Массив структур D3D11DDIARG_POINTERDATA . Каждая структура описывает расположение данных, на которые ссылается экземпляр класса, назначенный реализации интерфейса. Количество элементов в массиве определяется параметром NumClassInstances .

unnamedParam5

pIfaces [in]

Массив идентификаторов таблицы функций. Каждый идентификатор соответствует экземпляру класса, назначенному реализации интерфейса. Количество элементов в массиве определяется параметром NumClassInstances .

Возвращаемое значение

None

Remarks

Драйвер может использовать функцию обратного вызова pfnSetErrorCb , чтобы задать код ошибки.

Каждый экземпляр класса для реализации интерфейса содержит следующие сведения:

  • Код, связанный с этим экземпляром класса
  • Расположение данных, используемых экземпляром этого класса.
Параметр NumClassInstances указывает количество интерфейсов, которым должны быть присвоены значения во время выполнения. Для каждого интерфейса каждый элемент массива pIfaces предоставляет идентификатор таблицы функции, а каждый элемент массива pPointerData предоставляет расположения данных для экземпляра класса, назначенного интерфейсу.

Драйвер может передать E_OUTOFMEMORY (если у драйвера заканчивается память) или D3DDDIERR_DEVICEREMOVED (если устройство удалено) в вызове функции pfnSetErrorCb . Среда выполнения Direct3D определяет, что любые другие ошибки являются критическими. Если драйвер передает ошибки, включая D3DDDIERR_DEVICEREMOVED, среда выполнения Direct3D определяет, что дескриптор недопустим; Поэтому среда выполнения не вызывает функцию DestroyShader для уничтожения дескриптора, указанного параметром hShader .

Функция GsSetShaderWithIfaces задает код геометрического шейдера вместе с группой интерфейсов, чтобы все последующие операции рисования использовали этот код и эти интерфейсы.

Функция PsSetShaderWithIfaces задает код пиксельного шейдера вместе с группой интерфейсов, чтобы все последующие операции рисования использовали этот код и эти интерфейсы.

Функция DsSetShaderWithIfaces задает код шейдера предметной области вместе с группой интерфейсов, чтобы все последующие операции рисования использовали этот код и эти интерфейсы.

Функция HsSetShaderWithIfaces задает код шейдера корпуса вместе с группой интерфейсов, чтобы все последующие операции рисования использовали этот код и эти интерфейсы.

Функция VsSetShaderWithIfaces задает код вершинного шейдера вместе с группой интерфейсов, чтобы все последующие операции рисования использовали этот код и эти интерфейсы.

Требования

Требование Значение
Минимальная версия клиента CsSetShaderWithIfaces поддерживается начиная с операционной системы Windows 7.
Целевая платформа Персональный компьютер
Верхняя часть d3d10umddi.h (включая D3d10umddi.h)

См. также раздел

D3D11DDIARG_POINTERDATA

D3D11DDI_DEVICEFUNCS

DestroyShader

pfnSetErrorCb