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


функция обратного вызова 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.

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

Никакой

Замечания

Драйвер может использовать функцию обратного вызова 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 (include D3d10umddi.h)

См. также

D3D11DDIARG_POINTERDATA

D3D11DDI_DEVICEFUNCS

DestroyShader

pfnSetErrorCb