Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Только версии DirectX 8.0 и более поздних версий.
Структура D3DHAL_DP2VERTEXSHADER задает текущий шейдер вершин или удаляет шейдер вершин в зависимости от полученного (D3DDP2OP_SETVERTEXSHADER или D3DDP2OP_DELETEVERTEXSHADER) кода в D3dDrawPrimitives2.
Синтаксис
typedef struct _D3DHAL_DP2VERTEXSHADER {
DWORD dwHandle;
} D3DHAL_DP2VERTEXSHADER;
Члены
dwHandle
Дескриптор отображения.
Замечания
Все драйверы уровня DirectX 8.0 должны поддерживать маркер D3DDP2OP_SETVERTEXSHADER, так как он отправляется, даже если драйвер не поддерживает программируемую обработку вершин. Однако в этом случае дескриптор шейдера всегда является кодом FVF, указывающим фиксированную обработку данных вершин. Драйвер должен использовать код FVF, хранящийся в элементе dwHandle в качестве формата данных вершин в нуле потока. Драйвер, поддерживающий программируемую обработку вершин, должен проверить дескриптор, чтобы определить, относится ли он к шейдеру, ранее созданному с помощью D3DDP2OP_CREATEVERTEXSHADER или кода FVF, и выполнить соответствующее действие.
Пиксельные и вершинные шейдеры являются ортогональными. Таким образом, если устаревший код FVF выбран в качестве текущего шейдера вершин, это не означает устаревшую обработку пикселей. Чтобы сбросить обработку пикселей в подпрограммируемый режим, текущий шейдер пикселей также должен иметь значение нулю. Будьте внимательны в драйвере, чтобы сбросить только состояние обработки вершин в фиксированный режим функции, а не состояние обработки пикселей, если шейдер вершин задан для кода FVF.
При переключении с фиксированной обработки вершин на программируемую обработку вершин следует сохранить значения устаревшего состояния отрисовки и матриц. Если и когда происходит переключение с программируемой на фиксированную обработку вершин функции (драйвер получает D3DDP2OP_SETVERTEXSHADER с FVF в качестве дескриптора шейдера), то необходимо восстановить сохраненное состояние.
При переключении между программируемыми шейдерами все регистры констант, имеющие значение, указанное в определении этого шейдера, следует задать для этого значения. Значения всех остальных регистров констант должны оставаться неизменными.
Для операций D3DDP2OP_SETVERTEXSHADERDECL среда выполнения задает устаревший код FVF или дескриптор объявления DirectX 9.0 в элементе dwHandle. Среда выполнения указывает дескриптор объявления DirectX 9.0, задав бит 0 дескриптора. Для операций D3DDP2OP_SETVERTEXSHADERFUNC среда выполнения задает значение dwHandle равным нулю, чтобы указать конвейер фиксированной функции.
Требования
| Требование | Ценность |
|---|---|
| заголовка | d3dhal.h (include D3dhal.h) |
См. также
D3DDP2OP_CREATEVERTEXSHADER
D3DDP2OP_DELETEVERTEXSHADER
D3DDP2OP_DELETEVERTEXSHADERDECL
D3DDP2OP_DELETEVERTEXSHADERFUNC
D3DDP2OP_SETSTREAMSOURCE
D3DDP2OP_SETSTREAMSOURCEUM
D3DDP2OP_SETVERTEXSHADER
D3DDP2OP_SETVERTEXSHADERDECL
D3DDP2OP_SETVERTEXSHADERFUNC