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


структура 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 (include D3d9types.h)

См. также

D3DDP2OP_CREATEQUERY

D3DDP2OP_ISSUEQUERY

D3DHAL_DP2CREATEQUERY

D3DHAL_DP2RESPONSEQUERY

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2

D3dGetDriverState