Метод ID3D10Buffer::Map (d3d10.h)
Получите указатель на данные, содержащиеся в ресурсе, и запретите доступ GPU к ресурсу.
Синтаксис
HRESULT Map(
[in] D3D10_MAP MapType,
[in] UINT MapFlags,
[out] void **ppData
);
Параметры
[in] MapType
Тип: D3D10_MAP
Флаг, указывающий разрешения ЦП на чтение и запись ресурса. Возможные значения см. в разделе D3D10_MAP.
[in] MapFlags
Тип: UINT
Флаг, указывающий, что должен делать ЦП, когда GPU занят (см . D3D10_MAP_FLAG). Этот флаг является необязательным.
[out] ppData
Тип: void**
Указатель на данные ресурса буфера.
Возвращаемое значение
Тип: HRESULT
Если эта функция выполняется успешно, она возвращает S_OK. В следующем списке приведены некоторые причины, по которым может возникнуть сбой карты .
- Если MapFlags указывает D3D10_MAP_FLAG_DO_NOT_WAIT, а GPU еще не завершен с ресурсом, ID3D10Buffer::Map возвращает DXGI_ERROR_WAS_STILL_DRAWING.
- ID3D10Buffer::Map возвращает DXGI_ERROR_DEVICE_REMOVED, если MapType содержит какие-либо флаги, разрешающие чтение, и аппаратное устройство (то есть видео карта) было удалено.
Комментарии
Чтобы ЦП записыл содержимое ресурса, ресурс должен быть создан с флагом динамического использования, D3D10_USAGE_DYNAMIC. Чтобы прочитать и записать это содержимое, необходимо создать ресурс с флагом промежуточного использования, D3D10_USAGE_STAGING. (Дополнительные сведения об этих флагах см. в разделе D3D10_USAGE.) ID3D10Buffer::Map извлекает указатель на данные ресурса. Обсуждение эффективного доступа к ресурсам см. в разделе Копирование и доступ к данным ресурсов (Direct3D 10).
Вызовите ID3D10Buffer::Unmap , чтобы означать, что приложение завершило доступ к ресурсу.
ID3D10Buffer::Map имеет несколько других ограничений. Пример:
- Один и тот же буфер не может быть сопоставлен несколько раз; Другими словами, не вызывайте ID3D10Buffer::Map в уже сопоставленном буфере.
- Перед выполнением любой операции отрисовки (то есть ID3D10Device::D raw) необходимо разархивировать любой буфер, привязанный к конвейеру.
Различия между Direct3D 9 и Direct3D 10: ID3D10Buffer::Map в Direct3D 10 аналогично блокировке ресурсов в Direct3D 9. |
Требования
Целевая платформа | Windows |
Header | d3d10.h |
Библиотека | D3D10.lib |