структура D3DHAL_D3DEXTENDEDCAPS (d3dhal.h)
D3DHAL_D3DEXTENDEDCAPS описывает дополнительные трехмерные возможности драйвера.
Синтаксис
typedef struct _D3DHAL_D3DEXTENDEDCAPS {
DWORD dwSize;
DWORD dwMinTextureWidth;
DWORD dwMaxTextureWidth;
DWORD dwMinTextureHeight;
DWORD dwMaxTextureHeight;
DWORD dwMinStippleWidth;
DWORD dwMaxStippleWidth;
DWORD dwMinStippleHeight;
DWORD dwMaxStippleHeight;
DWORD dwMaxTextureRepeat;
DWORD dwMaxTextureAspectRatio;
DWORD dwMaxAnisotropy;
D3DVALUE dvGuardBandLeft;
D3DVALUE dvGuardBandTop;
D3DVALUE dvGuardBandRight;
D3DVALUE dvGuardBandBottom;
D3DVALUE dvExtentsAdjust;
DWORD dwStencilCaps;
DWORD dwFVFCaps;
DWORD dwTextureOpCaps;
WORD wMaxTextureBlendStages;
WORD wMaxSimultaneousTextures;
DWORD dwMaxActiveLights;
D3DVALUE dvMaxVertexW;
WORD wMaxUserClipPlanes;
WORD wMaxVertexBlendMatrices;
DWORD dwVertexProcessingCaps;
DWORD dwReserved1;
DWORD dwReserved2;
DWORD dwReserved3;
DWORD dwReserved4;
} D3DHAL_D3DEXTENDEDCAPS;
Члены
dwSize
Задает размер в байтах этой D3DHAL_D3DEXTENDEDCAPS структуры.
dwMinTextureWidth
Укажите минимальную ширину текстуры в пикселях, поддерживаемую драйвером или устройством. Обычно этот член является мощностью 2. Эти члены предоставляются в качестве подсказок приложению, и это ответственность приложения по настройке размеров текстур при необходимости.
dwMaxTextureWidth
Укажите максимальную ширину текстуры в пикселях, поддерживаемую драйвером или устройством. Обычно этот член является мощностью 2. Эти члены предоставляются в качестве подсказок приложению, и это ответственность приложения по настройке размеров текстур при необходимости.
dwMinTextureHeight
Укажите минимальную высоту текстуры в пикселях, поддерживаемую драйвером. Обычно этот член является мощностью 2.
dwMaxTextureHeight
Укажите максимальную высоту текстуры в пикселях, поддерживаемую драйвером. Обычно этот член является мощностью 2.
dwMinStippleWidth
Укажите минимальную ширину stipple в пикселях, поддерживаемую драйвером.
dwMaxStippleWidth
Укажите максимальную ширину stipple в пикселях, поддерживаемую драйвером.
dwMinStippleHeight
Укажите минимальную высоту stipple в пикселях, поддерживаемую драйвером.
dwMaxStippleHeight
Укажите максимальную высоту stipple в пикселях, поддерживаемую драйвером.
dwMaxTextureRepeat
Задает полный диапазон целых чисел (подфракции) индексов текстур постнормализованной текстуры. Если задана D3DDEVCAPS_TEXREPEATNOTSCALEDBYSIZE бит, то количество раз, когда текстура может быть завернута этим элементом. Если D3DDEVCAPS_TEXREPEATNOTSCALEDBYSIZE бит не задан, то время, когда текстура может быть упакована выражением: dwMaxTextureRepeat * (размер текстуры).
dwMaxTextureAspectRatio
Указывает максимальное соотношение пропорций текстуры, поддерживаемое оборудованием. Обычно этот член является мощностью 2. Это максимальное соотношение пропорций предоставляется в качестве меры высоты текстуры в пикселях, разделенных на ширину в пикселях, или ее ширину, разделенную на высоту, в зависимости от того, какой результат дает больший результат. Например, текстура, которая имеет ширину 8192 пикселей на 1 пиксель или ширину 1 пикселя на 8192, является недопустимой с устройством отображения, которое поддерживает только максимальное соотношение пропорций 4092. Если оборудование не ограничено пропорциями, dwMaxTextureAspectRatio больше dwMaxTextureWidth и dwMaxTextureHeight.
dwMaxAnisotropy
Указывает максимально допустимое значение для состояния D3DRENDERSTATE_ANISOTROPY отрисовки. Если оборудование драйвера не поддерживает анисотропную фильтрацию, драйвер должен задать для этого члена значение 1. Если для этого элемента задано значение 0, это недопустимое значение.
dvGuardBandLeft
dvGuardBandTop
dvGuardBandRight
dvGuardBandBottom
Укажите координаты пространства экрана (в пикселях) области клипа с полосой защиты. Верхний левый угол этого прямоугольника имеет координаты (dvGuardBandLeft, dvGuardBandTop). Нижний левый угол имеет координаты (dvGuardBandRight, dvGuardBandBottom). Координаты внутри этого прямоугольника, но за пределами прямоугольника окна представления автоматически обрезаются.
dvExtentsAdjust
Указывает количество пикселей, необходимых для корректировки прямоугольника экстентов наружу для размещения антиалиасных ядер.
dwStencilCaps
Задает операции буфера элементов, поддерживаемые драйвером или устройством. Дополнительные описания операций буфера наборов элементов, показанных в следующей таблице, см. в D3DSTENCILOP документации по пакету SDK DirectX. Предполагается, что операции набора элементов являются допустимыми для всех трех состояний отрисовки буфера элементов (D3DRENDERSTATE_STENCILFAIL, D3DRENDERSTATE_STENCILPASS и D3DRENDERSTATE_STENCILZFAIL). Этот элемент может быть битовой или любой из следующих значений:
Ценность | Операция буфера набора элементов |
---|---|
D3DSTENCILCAPS_DECR | Поддерживается операция D3DSTENCILOP_DECR. |
D3DSTENCILCAPS_DECRSAT | Поддерживается операция D3DSTENCILOP_DECRSAT. |
D3DSTENCILCAPS_INCR | Поддерживается операция D3DSTENCILOP_INCR. |
D3DSTENCILCAPS_INCRSAT | Поддерживается операция D3DSTENCILOP_INCRSAT. |
D3DSTENCILCAPS_INVERT | Поддерживается операция D3DSTENCILOP_INVERT. |
D3DSTENCILCAPS_KEEP | Поддерживается операция D3DSTENCILOP_KEEP. |
D3DSTENCILCAPS_REPLACE | Поддерживается операция D3DSTENCILOP_REPLACE. |
D3DSTENCILCAPS_ZERO | Поддерживается операция D3DSTENCILOP_ZERO. |
dwFVFCaps
Указывает количество координат текстуры, которые может обрабатывать драйвер. Это значение может быть целым числом в диапазоне от 0 до 8, где 0 указывает, что драйвер не поддерживает текстирование, 1 указывает, что драйвер может обрабатывать только один набор координат текстуры, 2 указывает, что драйвер может обрабатывать два набора координат текстур и т. д.
Драйвер должен иметь возможность анализировать все координаты текстур, присутствующих в данных вершин, независимо от количества координат текстур, которые драйвер фактически использует. Драйвер должен использовать индекс, предоставленный D3DTSS_TEXCOORDINDEX значение перечисления D3DTEXTURESTAGESTATETYPE, описанное в документации по пакету SDK DirectX, чтобы определить, какой набор координат текстур используется при отрисовке.
dwTextureOpCaps
Задает операции текстуры, поддерживаемые устройством. Сведения о операциях текстур, перечисленных в следующей таблице, см. в D3DTEXTUREOP документации по пакету SDK DirectX. Этот элемент может быть битовой или из следующих значений:
Ценность | Поддерживаемая операция текстуры |
---|---|
D3DTEXOPCAPS_ADD | Операция смешения текстур D3DTOP_ADD поддерживается этим устройством. |
D3DTEXOPCAPS_ADDSIGNED | Операция смешения текстур D3DTOP_ADDSIGNED поддерживается этим устройством. |
D3DTEXOPCAPS_ADDSIGNED2X | Операция смешивания текстур D3DTOP_ADDSIGNED2X поддерживается этим устройством. |
D3DTEXOPCAPS_ADDSMOOTH | Операция смешения текстур D3DTOP_ADDSMOOTH поддерживается этим устройством. |
D3DTEXOPCAPS_BLENDCURRENTALPHA | Операция смешения текстур D3DTOP_BLENDCURRENTALPHA поддерживается этим устройством. |
D3DTEXOPCAPS_BLENDDIFFUSEALPHA | Операция смешения текстур D3DTOP_BLENDDIFFUSEALPHA поддерживается этим устройством. |
D3DTEXOPCAPS_BLENDFACTORALPHA | Операция смешения текстур D3DTOP_BLENDFACTORALPHA поддерживается этим устройством. |
D3DTEXOPCAPS_BLENDTEXTUREALPHA | Операция смешения текстур D3DTOP_BLENDTEXTUREALPHA поддерживается этим устройством. |
D3DTEXOPCAPS_BLENDTEXTUREALPHAPM | Операция смешения текстур D3DTOP_BLENDTEXTUREALPHAPM поддерживается этим устройством. |
D3DTEXOPCAPS_BUMPENVMAP. | Операция смешения текстур D3DTOP_BUMPENVMAP поддерживается этим устройством. |
D3DTEXOPCAPS_BUMPENVMAPLUMINANCE | Операция смешения текстур D3DTOP_BUMPENVMAPLUMINANCE поддерживается этим устройством. |
D3DTEXOPCAPS_DISABLE | Операция смешения текстур D3DTOP_DISABLE поддерживается этим устройством. |
D3DTEXOPCAPS_DOTPRODUCT3 | Операция смешения текстур D3DTOP_DOTPRODUCT3 поддерживается этим устройством. |
D3DTEXOPCAPS_MODULATE | Операция смешения текстур D3DTOP_MODULATE поддерживается этим устройством. |
D3DTEXOPCAPS_MODULATE2X | Операция смешения текстур D3DTOP_MODULATE2X поддерживается этим устройством. |
D3DTEXOPCAPS_MODULATE4X | Операция смешения текстур D3DTOP_MODULATE4X поддерживается этим устройством. |
D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR | Операция смешения текстур D3DTOP_MODULATEALPHA_ADDCOLOR поддерживается этим устройством. |
D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA | Операция смешения текстур D3DTOP_MODULATEALPHA_ADDCOLOR поддерживается этим устройством. |
D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR | Операция смешения текстур D3DTOP_MODULATEINVALPHA_ADDCOLOR поддерживается этим устройством. |
D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA | Операция смешения текстур D3DTOP_MODULATEINVCOLOR_ADDALPHA поддерживается этим устройством. |
D3DTEXOPCAPS_PREMODULATE | Операция смешения текстур D3DTOP_PREMODULATE поддерживается этим устройством. |
D3DTEXOPCAPS_SELECTARG1 | Операция смешения текстур D3DTOP_SELECTARG1 поддерживается этим устройством. |
D3DTEXOPCAPS_SELECTARG2 | Операция смешения текстур D3DTOP_SELECTARG2 поддерживается этим устройством. |
D3DTEXOPCAPS_SUBTRACT | Операция смешения текстур D3DTOP_SUBTRACT поддерживается этим устройством. |
wMaxTextureBlendStages
Указывает максимальное количество этапов смешивания текстур, поддерживаемых этим устройством.
wMaxSimultaneousTextures
Указывает максимальное количество текстур, которые могут быть одновременно привязаны к этапам смешивания текстур для этого устройства. То есть wMaxSimultaneousTextures указывает, сколько этапов текстуры могут быть привязаны к ним через метод lDirect3Device7::SetTexture. Дополнительные сведения об этом методе см. в документации по пакету SDK для Microsoft Windows.
dwMaxActiveLights
Указывает максимальное количество активных огней, поддерживаемых этим устройством. Это необходимо указать только в драйверах, поддерживающих аппаратное преобразование и освещение (и поэтому указывайте D3DDEVCAPS_HWTRANSFORMANDLIGHT в их крышках устройств).
dvMaxVertexW
Задает максимальный диапазон W, поддерживаемый этим устройством. Это необходимо указать только в драйверах, поддерживающих буферизацию W (и поэтому указывайте D3DPRASTERCAPS_WBUFFER в их ограничениях растризации). Единицы для значений глубины W зависят от работающего приложения. Например, приложение может указать глубину в метрах.
wMaxUserClipPlanes
Указывает максимальное количество поддерживаемых пользователем плоскостей клипов.
wMaxVertexBlendMatrices
Указывает количество матриц мира, поддерживаемых для смешивания вершин.
dwVertexProcessingCaps
Указывает ограничения обработки вершин, поддерживаемые драйвером. Этот элемент может быть битовой или из следующих значений:
Ценность | Значение |
---|---|
D3DVTXPCAPS_DIRECTIONALLIGHTS | Устройство может выполнять направления света. |
D3DVTXPCAPS_LOCALVIEWER | Устройство может выполнять локальное средство просмотра. |
D3DVTXPCAPS_MATERIALSOURCE7 | Устройство может выполнять операции с источником цветового материала DirectX 7.0. |
D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER | Устройство не поддерживает создание текстур в режиме нелокального просмотра. |
D3DVTXPCAPS_POSITIONALLIGHTS | Устройство может выполнять позиционные световые индикаторы (включая точку и место). |
D3DVTXPCAPS_TEXGEN | Устройство может выполнять texgen. |
D3DVTXPCAPS_TEXGEN_SPHEREMAP | Устройство поддерживает D3DTSS_TCI_SPHEREMAP. |
D3DVTXPCAPS_TWEENING | Устройство может выполнять настройку вершин. |
dwReserved1
Зарезервировано для использования системы.
dwReserved2
Зарезервировано для использования системы.
dwReserved3
Зарезервировано для использования системы.
dwReserved4
Зарезервировано для использования системы.
Замечания
Драйвер выделяет и инициализирует эту структуру и задает соответствующие значения в поддерживаемых элементах. Функция DdGetDriverInfo драйвера возвращает указатель на эту структуру при вызове этой функции с помощью GUID GUID_D3DExtendedCaps.
Когда драйвер заполняет эту структуру, он может задавать значения для возможностей выполнения буферов, даже если интерфейс, используемый для получения возможностей (например, lDirect3Device3) не поддерживает выполнение буферов.
Требования
Требование | Ценность |
---|---|
заголовка | d3dhal.h (include D3dhal.h) |