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).
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 |