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


Метод ID3D11DeviceContext::GetData (d3d11.h)

Асинхронное получение данных из графического блока обработки (GPU).

Синтаксис

HRESULT GetData(
  [in]            ID3D11Asynchronous *pAsync,
  [out, optional] void               *pData,
  [in]            UINT               DataSize,
  [in]            UINT               GetDataFlags
);

Параметры

[in] pAsync

Тип: ID3D11Asynchronous*

Указатель на интерфейс ID3D11Asynchronous для объекта, о котором GetData извлекает данные.

[out, optional] pData

Тип: void*

Адрес памяти, в которую будут поступать данные. Если значение NULL, GetData будет использоваться только для проверка состояния. Тип выходных данных зависит от типа асинхронного интерфейса.

[in] DataSize

Тип: UINT

Размер извлекаемых данных или 0. Значение должно иметь значение 0, если pData имеет значение NULL.

[in] GetDataFlags

Тип: UINT

Необязательные флаги. Может иметь значение 0 или любое сочетание флагов, перечисляемых D3D11_ASYNC_GETDATA_FLAG.

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

Тип: HRESULT

Этот метод возвращает один из кодов возврата Direct3D 11. Возвращаемое значение S_OK указывает, что данные в pData доступны вызывающей приложению для доступа. Возвращаемое значение S_FALSE указывает, что данные еще недоступны. Если данные еще недоступны, приложение должно вызывать GetData , пока они не будут доступны.

Комментарии

Запросы в отложенном контексте ограничены предикатным рисованием. То есть нельзя вызвать ID3D11DeviceContext::GetData в отложенном контексте для получения данных о запросе; Метод GetData можно вызывать только в непосредственном контексте, чтобы получить данные о запросе. Для предикатного рисования результаты запроса предикационного типа используются GPU и не возвращаются в приложение. Дополнительные сведения о предикации и предикатическом рисовании см. в разделе D3D11DeviceContext::SetPredication.

GetData извлекает данные, собранные средой выполнения между вызовами ID3D11DeviceContext::Begin и ID3D11DeviceContext::End. Для некоторых запросов требуется только вызов ID3D11DeviceContext::End , в этом случае данные, возвращаемые GetData , являются точными вплоть до последнего вызова ID3D11DeviceContext::End. Сведения о запросах, для которых требуется только вызов ID3D11DeviceContext::End , а также о типе данных, извлекаемых GetData для каждого запроса, см. в разделе D3D11_QUERY.

Если DataSize имеет значение 0, GetData используется только для проверка состояния.

Приложение собирает данные счетчиков, вызывая ID3D11DeviceContext::Begin, выполняя некоторые графические команды, вызывая ID3D11DeviceContext::End, а затем вызывая ID3D11DeviceContext::GetData , чтобы получить данные о том, что произошло между вызовами Begin и End . Сведения о типах счетчиков производительности см. в разделе D3D11_COUNTER.

Требования

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

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

ID3D11DeviceContext