Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция SetStreamSourceFreq задает разделитель частоты источника потока, привязанного к буферу вершин.
Синтаксис
PFND3DDDI_SETSTREAMSOURCEFREQ Pfnd3dddiSetstreamsourcefreq;
HRESULT Pfnd3dddiSetstreamsourcefreq(
HANDLE hDevice,
const D3DDDIARG_SETSTREAMSOURCEFREQ *unnamedParam2
)
{...}
Параметры
hDevice
Дескриптор устройства отображения (графический контекст).
unnamedParam2
pData [in]
Указатель на структуру D3DDDIARG_SETSTREAMSOURCEFREQ, которая указывает, как задан разделитель частоты для источника потока.
Возвращаемое значение
SetStreamSourceFreq возвращает S_OK или соответствующий результат ошибки, если разделитель частоты для части источника потока вершин не установлен.
Замечания
Драйвер отображения в пользовательском режиме для устройства, поддерживающего шейдер вершин версии 3.0 и более поздних версий, должен реализовать деление частоты потока вершин. Для версий 2.0 и более ранних моделей шейдера вершин (включая фиксированную функцию), шейдер вершин вызывается один раз для каждой вершины. Для каждого вызова регистры входных вершин инициализируются с уникальными элементами вершин из потоков вершин. Однако если драйвер использует деление частоты потока вершин, то шейдер вершин (3.0 и более поздней версии) можно вызвать для инициализации применимых входных регистров с менее частой частотой.
После того как разделитель частоты потока установлен, например, на 2-драйвер должен получить данные из потока и передать эти данные в применимые входные регистры вершин каждые 2 вершины. Этот разделитель влияет на каждый элемент в потоке.
Драйвер использует разделитель частоты для вычисления смещения вершин в буфер вершин в соответствии со следующей формулой:
VertexOffset = ((VertexIndex / Divider) * StreamStride) + StreamOffset
Для каждого используемого потока вершин, если драйвер получает начальное значение вершины во время вызова функции DrawPrimitive драйвера, драйвер также делит это начальное значение вершины на разделитель частоты и факторы результата в формуле. Это начальное значение вершины предоставляется в VStart член структуры D3DDDIARG_DRAWPRIMITIVE. Следующая формула включает значение начальной вершины:
VertexOffset = (StartVertex / Divider) +
((VertexIndex / Divider) * StreamStride) + StreamOffset
Обратите внимание, что в предыдущих формулах используется целочисленный раздел.
Драйвер игнорирует параметр разделителя частоты потока для индексированных примитивов или если драйвер поддерживает только модель шейдера вершин, которая выше версии 3.0 (включая фиксированную функцию).
Требования
| Требование | Ценность |
|---|---|
| минимальные поддерживаемые клиентские | Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
| целевая платформа | Настольный |
| заголовка | d3dumddi.h (include D3dumddi.h) |