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


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

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

Синтаксис

PFND3D11DDI_CREATERESOURCE Pfnd3d11ddiCreateresource;

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

Параметры

unnamedParam1

hDevice [in]

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

unnamedParam2

pCreateResource [in]

Указатель на структуру D3D11DDIARG_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структуры D3D11DDIARG_CREATERESOURCE , на которую указывает параметр pCreateResource . Презентация происходит при вызове функции PresentDXGI или BltDXGI драйвера (с флагом Present , установленным в структуре DXGI_DDI_ARG_BLT_FLAGS ). Среда выполнения использует флаг D3D10_DDI_RESOURCE_MISC_DISCARD_ON_PRESENT для создания обратных буферов цепочки буферов, когда приложение использует значение DXGI_SWAP_EFFECT_DISCARD для запроса цепочек буферов.

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

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

Ограничения входных значений

Для драйверов windows Display Driver Model (WDDM) 1.3 и более поздних версий среда выполнения Microsoft Direct3D предоставляет ограниченный набор входных значений, используемых этой функцией. Список всех ограниченных значений см. в разделе [Улучшения производительности отрисовки Direct3D](/windows-hardware/drivers/display/direct3d-rendering-performance-improvements).

Требования

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

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

BltDXGI

CalcPrivateResourceSize(D3D11)

D3D10_DDI_RESOURCE_MISC_FLAG

D3D11DDIARG_CREATERESOURCE

D3D11DDI_DEVICEFUNCS

DXGI_DDI_ARG_BLT

DXGI_DDI_ARG_BLT_FLAGS

DestroyResource(D3D10)

PresentDXGI

pfnSetErrorCb