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


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

Создает ресурс.

Синтаксис

PFND3D10DDI_CREATERESOURCE Pfnd3d10ddiCreateresource;

void Pfnd3d10ddiCreateresource(
  D3D10DDI_HDEVICE unnamedParam1,
  const D3D10DDIARG_CREATERESOURCE *unnamedParam2,
  D3D10DDI_HRESOURCE unnamedParam3,
  D3D10DDI_HRTRESOURCE unnamedParam4
)
{...}

Параметры

unnamedParam1

hDevice [in]

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

unnamedParam2

pCreateResource [in]

Указатель на структуру D3D10DDIARG_CREATERESOURCE , описывающую параметры, которые драйвер отображения пользовательского режима использует для создания ресурса.

unnamedParam3

hResource [in]

Дескриптор личных данных драйвера для ресурса.

unnamedParam4

hRTResource [in]

Дескриптор ресурса, который драйвер должен использовать при каждом вызове обратно в среду выполнения Direct3D.

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

None

Remarks

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

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

Среда выполнения проверяет все параметры на соответствие параметрам, отправленным приложением для создания ресурса. Поэтому драйвер не должен получать недопустимые сочетания.

Если приложению не требуется, чтобы содержимое ресурса сохранялось в презентациях, среда выполнения установит флаг D3D10_DDI_RESOURCE_MISC_DISCARD_ON_PRESENT перечисления D3D10_DDI_RESOURCE_MISC_FLAG в элементе MiscFlagsструктуры D3D10DDIARG_CREATERESOURCE , на которую указывает параметр pCreateResource . Презентация происходит при вызове функции PresentDXGI или BltDXGI драйвера (с флагом Present , установленным в структуре DXGI_DDI_ARG_BLT_FLAGS ). Среда выполнения использует флаг D3D10_DDI_RESOURCE_MISC_DISCARD_ON_PRESENT для создания обратных буферов цепочки буферов, когда приложение использует значение DXGI_SWAP_EFFECT_DISCARD для запроса цепочек буферов.

Создание обратного стерео буфера

Начиная с Windows 8, если драйвер должен создать обратный буфер стереосистемы, он должен задать элементы структуры D3D10DDIARG_CREATERESOURCE, на которую указывает pCreateResource, следующим образом:
  1. Задайте для элемента ArraySize значение 2.
  2. Задайте значение флага D3D10_DDI_BIND_PRESENT в элементе BindFlags .
Кроме того, для поддержки стереопрезентации функция BltDXGI должна разрешать любые значения для элементов DstSubresource и SrcSubresourceструктуры DXGI_DDI_ARG_BLT , которые находятся в диапазоне исходных и целевых ресурсов.

Требования

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

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

BltDXGI

CalcPrivateResourceSize

D3D10DDIARG_CREATERESOURCE

D3D10DDI_DEVICEFUNCS

DXGI_DDI_ARG_BLT

DestroyResource(D3D10)

pfnSetErrorCb