Método ID3D11Device::CreateBuffer (d3d11.h)

Crea un búfer (búfer de vértices, búfer de índice o búfer de constantes de sombreador).

Sintaxis

HRESULT CreateBuffer(
  [in]            const D3D11_BUFFER_DESC      *pDesc,
  [in, optional]  const D3D11_SUBRESOURCE_DATA *pInitialData,
  [out, optional] ID3D11Buffer                 **ppBuffer
);

Parámetros

[in] pDesc

Tipo: const D3D11_BUFFER_DESC*

Puntero a una estructura D3D11_BUFFER_DESC que describe el búfer.

[in, optional] pInitialData

Tipo: const D3D11_SUBRESOURCE_DATA*

Puntero a una estructura D3D11_SUBRESOURCE_DATA que describe los datos de inicialización; use NULL para asignar espacio solo (con la excepción de que no puede ser NULL si la marca de uso es D3D11_USAGE_IMMUTABLE).

Si no pasa nada a pInitialData, el contenido inicial de la memoria del búfer no está definido. En este caso, debe escribir el contenido del búfer de alguna otra manera antes de que se lea el recurso.

[out, optional] ppBuffer

Tipo: ID3D11Buffer**

Dirección de un puntero a la interfaz ID3D11Buffer para el objeto de búfer creado. Establezca este parámetro en NULL para validar los demás parámetros de entrada (S_FALSE indica un paso).

Valor devuelto

Tipo: HRESULT

Este método devuelve E_OUTOFMEMORY si no hay memoria suficiente para crear el búfer. Consulta Códigos de retorno de Direct3D 11 para ver otros valores devueltos posibles.

Comentarios

Para obtener código de ejemplo, vea Cómo: Crear un búfer de vértices, Cómo: Crear un búfer de índice o Cómo: Crear un búfer de constantes.

Para un búfer de constantes (BindFlags de D3D11_BUFFER_DESC establecido en D3D11_BIND_CONSTANT_BUFFER), debe establecer el valor byteWidth de D3D11_BUFFER_DESC en múltiplo de 16 y menor o igual que D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT.

El entorno de ejecución de Direct3D 11.1, que está disponible en windows 8 y sistemas operativos posteriores, proporciona la siguiente nueva funcionalidad para CreateBuffer:

Puede crear un búfer de constantes mayor que el tamaño máximo del búfer de constantes al que puede tener acceso un sombreador (constantes de 4 componentes de 4 bits 4 a 4 KB) de 4096. Al enlazar el búfer de constantes a la canalización (por ejemplo, a través de PSSetConstantBuffers o PSSetConstantBuffers1), puede definir un intervalo del búfer al que el sombreador puede tener acceso dentro del límite de constantes 4096.

El entorno de ejecución de Direct3D 11.1 (disponible en Windows 8 y sistemas operativos posteriores) emula esta característica para el nivel de característica 9.1, 9.2 y 9.3; por lo tanto, esta característica es compatible con el nivel de característica 9.1, 9.2 y 9.3.

Esta característica siempre está disponible en los nuevos controladores para el nivel de característica 10 y versiones posteriores.

En tiempo de ejecución anteriores a Direct3D 11.1, se produce un error en una llamada a CreateBuffer para solicitar un búfer de constantes mayor que 4096.

Requisitos

   
Plataforma de destino Windows
Encabezado d3d11.h
Library D3D11.lib

Consulte también

ID3D11Device