Compartir a través de


Método ID3D10Buffer::Map (d3d10.h)

Obtenga un puntero a los datos contenidos en el recurso y deniegue el acceso de GPU al recurso.

Sintaxis

HRESULT Map(
  [in]  D3D10_MAP MapType,
  [in]  UINT      MapFlags,
  [out] void      **ppData
);

Parámetros

[in] MapType

Tipo: D3D10_MAP

Marca que especifica los permisos de la CPU para la lectura y escritura de un recurso. Para obtener los valores posibles, consulte D3D10_MAP.

[in] MapFlags

Tipo: UINT

Marca que especifica lo que debe hacer la CPU cuando la GPU está ocupada (consulte D3D10_MAP_FLAG). Esta marca es opcional.

[out] ppData

Tipo: void**

Puntero a los datos del recurso de búfer.

Valor devuelto

Tipo: HRESULT

Si esta función se realiza correctamente, devuelve S_OK. La lista siguiente contiene algunos de los motivos por los que se puede producir un error en Map :

  • Si MapFlags especifica D3D10_MAP_FLAG_DO_NOT_WAIT y la GPU aún no ha terminado con el recurso, ID3D10Buffer::Map devuelve DXGI_ERROR_WAS_STILL_DRAWING.
  • ID3D10Buffer::Map devuelve DXGI_ERROR_DEVICE_REMOVED si MapType incluye marcas que permiten la lectura y el dispositivo de hardware (es decir, se ha quitado la tarjeta de vídeo).
Para obtener más información sobre los valores devueltos anteriores, vea DXGI_ERROR.

Comentarios

Para que la CPU escriba el contenido de un recurso, el recurso debe crearse con la marca de uso dinámico, D3D10_USAGE_DYNAMIC. Para leer y escribir esos contenidos, el recurso debe crearse con la marca de uso provisional, D3D10_USAGE_STAGING. (Para obtener más información sobre estas marcas, consulte D3D10_USAGE). ID3D10Buffer::Map recuperará un puntero a los datos del recurso. Para obtener una explicación sobre cómo acceder a los recursos de forma eficaz, vea Copiar y acceder a datos de recursos (Direct3D 10).

Llame a ID3D10Buffer::Unmap para indicar que la aplicación ha terminado de acceder al recurso.

ID3D10Buffer::Map tiene algunas otras restricciones. Por ejemplo:

  • El mismo búfer no se puede asignar varias veces; es decir, no llame a ID3D10Buffer::Map en un búfer que ya está asignado.
  • Cualquier búfer enlazado a la canalización debe desasignación antes de que se pueda ejecutar cualquier operación de representación (es decir, ID3D10Device::D raw).
Diferencias entre Direct3D 9 y Direct3D 10:

ID3D10Buffer::Map en Direct3D 10 es análogo al bloqueo de recursos en Direct3D 9.

Requisitos

   
Plataforma de destino Windows
Encabezado d3d10.h
Library D3D10.lib

Consulte también

Interfaz ID3D10Buffer