структура 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