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


Метод ID3D11Device::CreateVertexShader (d3d11.h)

Создайте объект вершинного шейдера из скомпилированного шейдера.

Синтаксис

HRESULT CreateVertexShader(
  [in]            const void         *pShaderBytecode,
  [in]            SIZE_T             BytecodeLength,
  [in, optional]  ID3D11ClassLinkage *pClassLinkage,
  [out, optional] ID3D11VertexShader **ppVertexShader
);

Параметры

[in] pShaderBytecode

Тип: const void*

Указатель на скомпилированный шейдер.

[in] BytecodeLength

Тип: SIZE_T

Размер скомпилированного шейдера вершин.

[in, optional] pClassLinkage

Тип: ID3D11ClassLinkage*

Указатель на интерфейс компоновки классов (см. ID3D11ClassLinkage); значение может иметь значение NULL.

[out, optional] ppVertexShader

Тип: ID3D11VertexShader**

Адрес указателя на интерфейс ID3D11VertexShader . Если значение равно NULL, будут проверяться все остальные параметры, а если все параметры проходят проверку, этот API вернет S_FALSE вместо S_OK.

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

Тип: HRESULT

Этот метод возвращает один из кодов возврата Direct3D 11.

Комментарии

Среда выполнения Direct3D 11.1, которая доступна начиная с Windows 8, предоставляет следующие новые функции для CreateVertexShader.

Приведенные ниже инструкции по модели шейдеров 5.0 доступны только для шейдеров пикселей и вычислительных шейдеров в среде выполнения Direct3D 11.0. Для среды выполнения Direct3D 11.1, так как неупорядоченные представления доступа доступны на всех этапах шейдера, эти инструкции можно использовать на всех этапах шейдера.

Таким образом, если вы используете следующие инструкции модели шейдера 5.0 в вершинном шейдере, можно успешно передать скомпилированный шейдер вершин в pShaderBytecode. То есть вызов CreateVertexShader завершается успешно.

Если вы передаете скомпилированный шейдер в pShaderBytecode , который использует любые из следующих инструкций на устройстве, которое не поддерживает БПЛА на каждом этапе шейдера (включая существующие драйверы, которые не реализованы для поддержки БПЛА на каждом этапе шейдера), CreateVertexShader завершается ошибкой. CreateVertexShader также завершается ошибкой, если шейдер пытается использовать слот UAV за пределами набора слотов UAV, поддерживаемых оборудованием.

Требования

   
Целевая платформа Windows
Header d3d11.h
Библиотека D3D11.lib

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

ID3D11Device