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


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

Укажите минимальную ширину прогона (в пикселях), поддерживаемую драйвером.

dwMaxStippleWidth

Укажите максимальную ширину прогона (в пикселях), поддерживаемую драйвером.

dwMinStippleHeight

Укажите минимальную высоту скобы (в пикселях), поддерживаемую драйвером.

dwMaxStippleHeight

Укажите максимальную высоту скобы (в пикселях), поддерживаемую драйвером.

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 указывает, сколько этапов текстуры могут иметь текстуры, привязанные к ним с помощью метода lDirect3DDevice7::SetTexture . Дополнительные сведения об этом методе см. в документации по Microsoft Windows SDK.

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_D3DExtendedCaps GUID.

Когда драйвер заполняет эту структуру, он может задавать значения для возможностей буфера выполнения, даже если интерфейс, используемый для получения возможностей (например , lDirect3DDevice3), не поддерживает буферы выполнения.

Требования

Требование Значение
Заголовок d3dhal.h (включая D3dhal.h)

См. также раздел

DdGetDriverInfo