структура D3DDEVINFO_VCACHE (d3d9types.h)

Только DirectX 8.1 и более поздних версий.

Структура D3DDEVINFO_VCACHE описывает сведения о кэше вершин устройства.

Синтаксис

typedef struct _D3DDEVINFO_VCACHE {
  DWORD Pattern;
  DWORD OptMethod;
  DWORD CacheSize;
  DWORD MagicNumber;
} D3DDEVINFO_VCACHE, *LPD3DDEVINFO_VCACHE;

Члены

Pattern

Указывает битовый шаблон. Драйвер должен указать битовый шаблон в качестве значения четырехсимвого кода CACH (FOURCC). Драйвер может использовать макрос MAKEFOURCC следующим образом, чтобы указать значение FOURCC в качестве CACH:

MAKEFOURCC('C', 'A', 'C', 'H');

OptMethod

Задает метод оптимизации сетки. Драйвер может использовать одно из следующих значений, чтобы указать используемую оптимизацию сетки:

Значение Значение
D3DXMESHOPT_STRIPREORDER (0) Оптимизация самых длинных полос
D3DXMESHOPT_VCACHE (1) Оптимизация на основе кэша вершин

CacheSize

Указывает действующий размер в записях, для которого драйвер оптимизирует кэш вершин. Фактический размер кэша не обязательно должен быть размером, указанным в cacheSize , так как в большинстве случаев фактический размер кэша оказывается больше. Драйвер указывает оптимизированный размер в CacheSize , только если он также указывает D3DXMESHOPT_VCACHE в элементе OptMethod .

MagicNumber

Указывает номер, который следует использовать в рамках процедуры проб и ошибок при определении времени перезапуска списка полос. Это число можно задать в диапазоне от 1 до значения в элементе CacheSize . Как правило, лучшими значениями являются значения, близкие к CacheSize/2.

Комментарии

Только версии DirectX 8.1. Среда выполнения Direct3D вызывает функцию D3dGetDriverState драйвера для получения сведений о кэше вершин из драйвера. В этом вызове D3dGetDriverState среда выполнения задает флаг D3DDEVINFOID_VCACHE в элементе dwFlags структуры DD_GETDRIVERSTATEDATA, которую передает среда выполнения. Драйвер задает сведения о кэше вершин в структуре D3DDEVINFO_VCACHE и возвращает их в элементе lpdwStates DD_GETDRIVERSTATEDATA.

Только DirectX 9.0 и более поздних версий. Среда выполнения Direct3D задает D3DDP2OP_CREATEQUERY и команды D3DDP2OP_ISSUEQUERY в вызовах обратного вызова D3dDrawPrimitives2 драйвера, чтобы создать ресурсы на стороне драйвера для запроса, а затем асинхронно запрашивать у драйвера сведения о кэше вершин. В вызове с помощью команды D3DDP2OP_CREATEQUERY среда выполнения указывает тип запроса D3DQUERYTYPE_VCACHE в элементе QueryType структуры D3DHAL_DP2CREATEQUERY .

Когда драйвер завершает запрос к кэшу вершин, драйвер устанавливает общий размер буфера ответов в элементе dwErrorOffset структуры D3DHAL_DRAWPRIMITIVES2DATA и задает элемент ddrval D3DHAL_DRAWPRIMITIVES2DATA на D3D_OK для успешного завершения. Драйвер также перезаписывает буфер входящих команд буфером исходящего ответа. Этот буфер ответа содержит структуру D3DHAL_DP2RESPONSEQUERY , которая определяет ответ для запроса кэша вершин. За этим D3DHAL_DP2RESPONSEQUERY следует данные кэша вершин в структуре D3DDEVINFO_VCACHE.

Требования

Требование Значение
Заголовок d3d9types.h (включая D3d9types.h)

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

D3DDP2OP_CREATEQUERY

D3DDP2OP_ISSUEQUERY

D3DHAL_DP2CREATEQUERY

D3DHAL_DP2RESPONSEQUERY

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2

D3dGetDriverState