Структура D3DCAPS9 (d3d9caps.h)

Представляет возможности оборудования, доступного через объект Direct3D.

Синтаксис

typedef struct _D3DCAPS9 {
  D3DDEVTYPE        DeviceType;
  UINT              AdapterOrdinal;
  DWORD             Caps;
  DWORD             Caps2;
  DWORD             Caps3;
  DWORD             PresentationIntervals;
  DWORD             CursorCaps;
  DWORD             DevCaps;
  DWORD             PrimitiveMiscCaps;
  DWORD             RasterCaps;
  DWORD             ZCmpCaps;
  DWORD             SrcBlendCaps;
  DWORD             DestBlendCaps;
  DWORD             AlphaCmpCaps;
  DWORD             ShadeCaps;
  DWORD             TextureCaps;
  DWORD             TextureFilterCaps;
  DWORD             CubeTextureFilterCaps;
  DWORD             VolumeTextureFilterCaps;
  DWORD             TextureAddressCaps;
  DWORD             VolumeTextureAddressCaps;
  DWORD             LineCaps;
  DWORD             MaxTextureWidth;
  DWORD             MaxTextureHeight;
  DWORD             MaxVolumeExtent;
  DWORD             MaxTextureRepeat;
  DWORD             MaxTextureAspectRatio;
  DWORD             MaxAnisotropy;
  float             MaxVertexW;
  float             GuardBandLeft;
  float             GuardBandTop;
  float             GuardBandRight;
  float             GuardBandBottom;
  float             ExtentsAdjust;
  DWORD             StencilCaps;
  DWORD             FVFCaps;
  DWORD             TextureOpCaps;
  DWORD             MaxTextureBlendStages;
  DWORD             MaxSimultaneousTextures;
  DWORD             VertexProcessingCaps;
  DWORD             MaxActiveLights;
  DWORD             MaxUserClipPlanes;
  DWORD             MaxVertexBlendMatrices;
  DWORD             MaxVertexBlendMatrixIndex;
  float             MaxPointSize;
  DWORD             MaxPrimitiveCount;
  DWORD             MaxVertexIndex;
  DWORD             MaxStreams;
  DWORD             MaxStreamStride;
  DWORD             VertexShaderVersion;
  DWORD             MaxVertexShaderConst;
  DWORD             PixelShaderVersion;
  float             PixelShader1xMaxValue;
  DWORD             DevCaps2;
  float             MaxNpatchTessellationLevel;
  DWORD             Reserved5;
  UINT              MasterAdapterOrdinal;
  UINT              AdapterOrdinalInGroup;
  UINT              NumberOfAdaptersInGroup;
  DWORD             DeclTypes;
  DWORD             NumSimultaneousRTs;
  DWORD             StretchRectFilterCaps;
  D3DVSHADERCAPS2_0 VS20Caps;
  D3DPSHADERCAPS2_0 PS20Caps;
  DWORD             VertexTextureFilterCaps;
  DWORD             MaxVShaderInstructionsExecuted;
  DWORD             MaxPShaderInstructionsExecuted;
  DWORD             MaxVertexShader30InstructionSlots;
  DWORD             MaxPixelShader30InstructionSlots;
} D3DCAPS9;

Члены

DeviceType

Тип: D3DDEVTYPE

Член перечисленного типа D3DDEVTYPE , который определяет, какой тип ресурсов используется для обработки вершин.

AdapterOrdinal

Тип: UINT

Адаптер, на котором было создано это устройство Direct3D. Этот порядковый номер действителен только для передачи в методы интерфейса IDirect3D9 , создавшего это устройство Direct3D. Интерфейс IDirect3D9 всегда можно получить, вызвав Метод GetDirect3D.

Caps

Тип: DWORD

Следующая возможность, зависят от драйвера.

Значение Значение
D3DCAPS_READ_SCANLINE
Оборудование дисплея может возвращать текущую строку сканирования.
D3DCAPS_OVERLAY
Драйвер дисплея поддерживает DDI наложения, который позволяет проверять возможности наложения. Дополнительные сведения о наложении DDI см. в разделе Перекрытие DDI.
Различия между Direct3D 9 и Direct3D 9Ex:

Этот флаг доступен только в Direct3D 9Ex.

 

Caps2

Тип: DWORD

Возможности драйвера, определенные в D3DCAPS2.

Caps3

Тип: DWORD

Возможности, относящиеся к драйверу, определенные в D3DCAPS3.

PresentationIntervals

Тип: DWORD

Битовая маска значений, представляющая доступные интервалы переключения презентации.

Значение Значение
D3DPRESENT_INTERVAL_IMMEDIATE
Драйвер поддерживает интервал мгновенного переключения презентации.
D3DPRESENT_INTERVAL_ONE
Драйвер поддерживает интервал переключения презентации при каждом обновлении экрана.
D3DPRESENT_INTERVAL_TWO
Драйвер поддерживает интервал переключения презентации при каждом втором обновлении экрана.
D3DPRESENT_INTERVAL_THREE
Драйвер поддерживает интервал переключения презентации при каждом третьем обновлении экрана.
D3DPRESENT_INTERVAL_FOUR
Драйвер поддерживает интервал переключения презентации при каждом четвертом обновлении экрана.

CursorCaps

Тип: DWORD

Битовая маска, указывающая, какая аппаратная поддержка доступна для курсоров. Direct3D 9 не определяет возможности курсора альфа-смешивания.

Значение Значение
D3DCURSORCAPS_COLOR
Полноцветный курсор поддерживается в оборудовании. В частности, этот флаг указывает, что драйвер поддерживает по крайней мере аппаратный цветной курсор в режимах высокого разрешения (с линиями сканирования больше или равно 400).
D3DCURSORCAPS_LOWRES
Полноцветный курсор поддерживается в оборудовании. В частности, этот флаг указывает, что драйвер поддерживает аппаратный цветной курсор как в режиме высокого, так и в низком разрешении (с линиями сканирования менее 400).

DevCaps

Тип: DWORD

Флаги, определяющие возможности устройства.

Значение Значение
D3DDEVCAPS_CANBLTSYSTONONLOCAL
Устройство поддерживает прорези из текстур системной памяти в нелокальные текстуры видеопамять.
D3DDEVCAPS_CANRENDERAFTERFLIP
Устройство может ставить в очередь команды отрисовки после переворачивания страницы. Приложения не изменяют свое поведение, если этот флаг установлен; эта возможность означает, что устройство работает относительно быстро.
D3DDEVCAPS_DRAWPRIMITIVES2
Устройство может поддерживать по крайней мере драйвер, совместимый с DirectX 5.
D3DDEVCAPS_DRAWPRIMITIVES2EX
Устройство может поддерживать по крайней мере драйвер, совместимый с DirectX 7.
D3DDEVCAPS_DRAWPRIMTLVERTEX
Устройство экспортирует hal с поддержкой IDirect3DDevice9::D rawPrimitive.
D3DDEVCAPS_EXECUTESYSTEMMEMORY
Устройство может использовать буферы выполнения из системной памяти.
D3DDEVCAPS_EXECUTEVIDEOMEMORY
Устройство может использовать буферы выполнения из видеопамять.
D3DDEVCAPS_HWRASTERIZATION
Устройство имеет аппаратное ускорение для растеризации сцены.
D3DDEVCAPS_HWTRANSFORMANDLIGHT
Устройство может поддерживать преобразование и освещение в оборудовании.
D3DDEVCAPS_NPATCHES
Устройство поддерживает N исправлений.
D3DDEVCAPS_PUREDEVICE
Устройство может поддерживать растеризацию, преобразование, освещение и заливку на оборудовании.
D3DDEVCAPS_QUINTICRTPATCHES
Устройство поддерживает кривые Безье и B-сплайны.
D3DDEVCAPS_RTPATCHES
Устройство поддерживает прямоугольные и треугольные исправления.
D3DDEVCAPS_RTPATCHHANDLEZERO
Если эта возможность устройства задана, аппаратная архитектура не требует кэширования каких-либо сведений, а некэшированные исправления (ноль обработки) будут отрисовываться так же эффективно, как кэшированные. Обратите внимание, что настройка D3DDEVCAPS_RTPATCHHANDLEZERO не означает, что можно нарисовать исправление с нулевым маркером. Исправление с нулевым маркером всегда может быть нарисовано независимо от того, задано ли это ограничение.
D3DDEVCAPS_SEPARATETEXTUREMEMORIES
Устройство выполняет преобразование из отдельных пулов памяти.
D3DDEVCAPS_TEXTURENONLOCALVIDMEM
Устройство может извлекать текстуры из нелокла видеопамять.
D3DDEVCAPS_TEXTURESYSTEMMEMORY
Устройство может извлекать текстуры из системной памяти.
D3DDEVCAPS_TEXTUREVIDEOMEMORY
Устройство может извлекать текстуры из памяти устройства.
D3DDEVCAPS_TLVERTEXSYSTEMMEMORY
Устройство может использовать буферы из системной памяти для преобразованных и освещенных вершин.
D3DDEVCAPS_TLVERTEXVIDEOMEMORY
Устройство может использовать буферы из видеопамяти для преобразованных и освещенных вершин.

PrimitiveMiscCaps

Тип: DWORD

Прочие примитивные возможности драйвера. См . раздел D3DPMISCCAPS.

RasterCaps

Тип: DWORD

Сведения о возможностях растрового рисования. Этот элемент может быть одним или несколькими из следующих флагов.

Значение Значение
D3DPRASTERCAPS_ANISOTROPY
Устройство поддерживает анизотропную фильтрацию.
D3DPRASTERCAPS_COLORPERSPECTIVE
Устройство правильно выполняет итерацию цветовой перспективы.
D3DPRASTERCAPS_DITHER
Устройство может мизерировать для улучшения цветового разрешения.
D3DPRASTERCAPS_DEPTHBIAS
Устройство поддерживает предвзятость по глубине прежних версий. Сведения об истинной глубине см. в разделе D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS.
D3DPRASTERCAPS_FOGRANGE
Устройство поддерживает туман на основе диапазона. В тумане на основе диапазона расстояние от объекта от зрителя используется для вычисления эффектов тумана, а не глубины объекта (т. е. z-координаты) в сцене.
D3DPRASTERCAPS_FOGTABLE
Устройство вычисляет значение тумана, ссылаясь на таблицу подстановки, содержащую значения тумана, индексированные на глубину заданного пикселя.
D3DPRASTERCAPS_FOGVERTEX
Устройство вычисляет значение тумана во время операции освещения и интерполирует значение тумана во время растеризации.
D3DPRASTERCAPS_MIPMAPLODBIAS
Устройство поддерживает корректировку смещения на уровне детализации. Эти корректировки смещения позволяют приложению сделать MIP-карту более четкой или менее четкой, чем обычно. Дополнительные сведения об уровне детализации в MIP-картах см. в разделе D3DSAMP_MIPMAPLODBIAS.
D3DPRASTERCAPS_MULTISAMPLE_TOGGLE
Устройство поддерживает переключение между IDirect3DDevice9::BeginScene и IDirect3Device9::EndScene (с использованием D3DRS_MULTISAMPLEANTIALIAS).
D3DPRASTERCAPS_SCISSORTEST
Устройство поддерживает тест ножниц. См. раздел Тест ножниц (Direct3D 9).
D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS
Устройство выполняет смещение глубины на основе истинного наклона. Это отличается от прежних предубеждений глубины стиля.
D3DPRASTERCAPS_WBUFFER
Устройство поддерживает буферизацию глубины с помощью w.
D3DPRASTERCAPS_WFOG
Устройство поддерживает туман на основе W. Туман на основе W используется при указании матрицы проекции перспективы, но в аффинных проекциях по-прежнему используется туман на основе Z. Система считает матрицу проекции, содержащую ненулевое значение в элементе [3][4], матрицей проекции перспективы.
D3DPRASTERCAPS_ZBUFFERLESSHSR
Устройство может выполнять удаление скрытых поверхностей (HSR), не требуя от приложения сортировки многоугольников и не требуя выделения буфера глубины. Это оставляет больше видеопамяти для текстур. Метод, используемый для выполнения HSR, зависит от оборудования и является прозрачным для приложения.

HSR без Z-буфера выполняется, если поверхность буфера глубины не связана с целевой поверхностью отрисовки и включен тест сравнения буфера глубины (т. е. если для значения состояния, связанного с константой перечисления D3DRS_ZENABLE , задано значение TRUE).

D3DPRASTERCAPS_ZFOG
Устройство поддерживает туман на основе Z.
D3DPRASTERCAPS_ZTEST
Устройство может выполнять операции z-тестирования. Это фактически отрисовывает примитив и указывает, были ли отрисованы какие-либо Z-пиксели.

ZCmpCaps

Тип: DWORD

Возможности сравнения Z-буфера. Этот элемент может быть одним или несколькими из следующих флагов.

Значение Значение
D3DPCMPCAPS_ALWAYS
Всегда проходите Z-тест.
D3DPCMPCAPS_EQUAL
Пройдите z-тест, если новый z равен текущему z.
D3DPCMPCAPS_GREATER
Пройдите z-тест, если новый z больше текущего z.
D3DPCMPCAPS_GREATEREQUAL
Пройдите z-тест, если новый z больше или равен текущему z.
D3DPCMPCAPS_LESS
Пройдите z-тест, если новый z меньше текущего z.
D3DPCMPCAPS_LESSEQUAL
Пройдите z-тест, если новый z меньше текущего z или равен ей.
D3DPCMPCAPS_NEVER
Всегда не выполняется z-тест.
D3DPCMPCAPS_NOTEQUAL
Пройдите z-тест, если новый z не равен текущему z.

SrcBlendCaps

Тип: DWORD

Возможности смешивания исходного кода. Этот элемент может быть одним или несколькими из следующих флагов. (Значения RGBA источника и назначения указываются индексами s и d.)

Значение Значение
D3DPBLENDCAPS_BLENDFACTOR
Драйвер поддерживает как D3DBLEND_BLENDFACTOR, так и D3DBLEND_INVBLENDFACTOR. См. раздел D3DBLEND.
D3DPBLENDCAPS_BOTHINVSRCALPHA
Коэффициент исходной смешивания равен (1 - As, 1 - As, 1 - As, 1 - As), а целевой коэффициент смешения равен (As, As, As, As); выбор целевой смеси переопределен.
D3DPBLENDCAPS_BOTHSRCALPHA
Драйвер поддерживает режим D3DBLEND_BOTHSRCALPHA наложения. (Этот режим наложения устарел. Дополнительные сведения см. в разделе D3DBLEND.)
D3DPBLENDCAPS_DESTALPHA
Коэффициент смешения имеет значение (Ad, Ad, Ad, Ad).
D3DPBLENDCAPS_DESTCOLOR
Коэффициент смешения имеет значение (Rd, Gd, Bd, Ad).
D3DPBLENDCAPS_INVDESTALPHA
Коэффициент смешения равен (1 - Ad, 1 - Ad, 1 - Ad, 1 - Ad).
D3DPBLENDCAPS_INVDESTCOLOR
Коэффициент смешения равен (1 - Rd, 1 - Gd, 1 - Bd, 1 - Ad).
D3DPBLENDCAPS_INVSRCALPHA
Коэффициент смешения имеет значение (1 — As, 1 — As, 1 — As, 1 — As).
D3DPBLENDCAPS_INVSRCCOLOR
Коэффициент смешения равен (1 - Rs, 1 - Gs, 1 - Bs, 1 - As).
D3DPBLENDCAPS_INVSRCCOLOR2
Коэффициент смешения равен (1 - PSOutColor[1]r, 1 - PSOutColor[1]g, 1 - PSOutColor[1]b, не используется)). См. раздел Наложение целевого объекта отрисовки.
Различия между Direct3D 9 и Direct3D 9Ex:

Этот флаг доступен только в Direct3D 9Ex.

 
D3DPBLENDCAPS_ONE
Коэффициент смешения — (1, 1, 1, 1).
D3DPBLENDCAPS_SRCALPHA
Коэффициент Blend имеет значение (As, As, As, As).
D3DPBLENDCAPS_SRCALPHASAT
Коэффициент смешения равен (f, f, f, 1); f = min(As, 1 - Ad).
D3DPBLENDCAPS_SRCCOLOR
Коэффициент Blend имеет значение (Rs, Gs, Bs, As).
D3DPBLENDCAPS_SRCCOLOR2
Коэффициент blend равен (PSOutColor[1]r, PSOutColor[1]g, PSOutColor[1]b, не используется). См. раздел Наложение целевого объекта отрисовки.
Различия между Direct3D 9 и Direct3D 9Ex:

Этот флаг доступен только в Direct3D 9Ex.

 
D3DPBLENDCAPS_ZERO
Коэффициент смешения — (0, 0, 0, 0).

DestBlendCaps

Тип: DWORD

Возможности смешивания назначения. Этот элемент может быть теми же возможностями, которые определены для элемента SrcBlendCaps.

AlphaCmpCaps

Тип: DWORD

Возможности сравнения альфа-тестов. Этот элемент может включать те же флаги возможностей, которые определены для элемента ZCmpCaps. Если этот элемент содержит только возможность D3DPCMPCAPS_ALWAYS или только возможность D3DPCMPCAPS_NEVER, драйвер не поддерживает альфа-тесты. В противном случае флаги определяют отдельные сравнения, которые поддерживаются для альфа-тестирования.

ShadeCaps

Тип: DWORD

Возможности операций заливки. Как правило, предполагается, что если устройство поддерживает определенную команду, оно поддерживает режим D3DSHADE_FLAT (как указано в перечислимом типе D3DSHADEMODE ). Этот флаг указывает, может ли драйвер также поддерживать заливку Gouraud и поддерживаются ли компоненты альфа-цвета. Если альфа-компоненты не поддерживаются, альфа-значение создаваемых цветов неявно равно 255. Это максимально возможный альфа-канал (то есть альфа-компонент находится в полной интенсивности).

Цвет, зеркальные выделения, туман и альфа-интерполяции треугольника имеют флаги возможностей, которые приложение может использовать для определения того, как они реализуются драйвером устройства.

Этот элемент может быть одним или несколькими из следующих флагов.

Значение Значение
D3DPSHADECAPS_ALPHAGOURAUDBLEND
Устройство может поддерживать альфа-компонент для прозрачности смешения Gouraud (состояние D3DSHADE_GOURAUD для типа перечисления D3DSHADEMODE). В этом режиме компонент альфа-цвета примитива предоставляется на вершинах и интерполируется по поверхности вместе с другими компонентами цвета.
D3DPSHADECAPS_COLORGOURAUDRGB
Устройство может поддерживать цветное затенение Gouraud. В этом режиме компоненты цвета для каждой вершины (красный, зеленый и синий) интерполируются по треугольной стороне.
D3DPSHADECAPS_FOGGOURAUD
Устройство может поддерживать туман в режиме затенения Gouraud.
D3DPSHADECAPS_SPECULARGOURAUDRGB
Устройство поддерживает заливку Гуро зеркальных выделений.

TextureCaps

Тип: DWORD

Прочие возможности сопоставления текстур. Этот элемент может быть одним или несколькими из следующих флагов.

Значение Значение
D3DPTEXTURECAPS_ALPHA
Поддерживается альфа-формат в пикселях текстуры.
D3DPTEXTURECAPS_ALPHAPALETTE
Устройство может рисовать альфа-канал из палитр текстур.
D3DPTEXTURECAPS_CUBEMAP
Поддерживает текстуры куба.
D3DPTEXTURECAPS_CUBEMAP_POW2
Для устройства требуется, чтобы карты текстур куба имели измерения, указанные как два значения.
D3DPTEXTURECAPS_MIPCUBEMAP
Устройство поддерживает текстуры куба mipmapped.
D3DPTEXTURECAPS_MIPMAP
Устройство поддерживает текстуры mipmapped.
D3DPTEXTURECAPS_MIPVOLUMEMAP
Устройство поддерживает текстуры тома mipmapped.
D3DPTEXTURECAPS_NONPOW2CONDITIONAL
D3DPTEXTURECAPS_POW2 также задано, условно поддерживает использование двумерных текстур с размерами, которые не являются двумя. Устройство, предоставляющее эту возможность, может использовать такую текстуру при соблюдении всех следующих требований.
  • Режим адресации текстуры для этапа текстуры имеет значение D3DTADDRESS_CLAMP.
  • Оболочка текстуры для этапа текстуры отключена (D3DRS_WRAP n имеет значение 0).
  • Mipmapping не используется (используйте только фильтр увеличения).
  • Форматы текстур не должны D3DFMT_DXT1 через D3DFMT_DXT5.

Если этот флаг не задан, а D3DPTEXTURECAPS_POW2 также не задан, то для двумерных текстур с размерами, не равными двумерным, предоставляется безусловная поддержка.

Текстура, которая не является силой двух, не может быть задана на этапе, который будет считываться на основе вычисления шейдера (например , инструкции bem - ps и texm3x3 - ps в пиксельных шейдерах версий от 1_0 до 1_3). Например, эти текстуры можно использовать для хранения ударов, которые будут отправляться в операции чтения текстуры, но не для карт среды, которые используются в texbem - ps, texbeml - ps и texm3x3spec - ps. Это означает, что текстура с измерениями, которые не являются двумя, не может быть рассмотрена или выбрана с помощью координат текстуры, вычисленных в шейдере. Этот тип операции называется зависимой операцией чтения и не может выполняться с этими типами текстур.

D3DPTEXTURECAPS_NOPROJECTEDBUMPENV
Устройство не поддерживает прогнозируемую операцию подстановки в программируемых и фиксированных шейдерах функций.
D3DPTEXTURECAPS_PERSPECTIVE
Поддерживается исправление перспективы.
D3DPTEXTURECAPS_POW2
Если D3DPTEXTURECAPS_NONPOW2CONDITIONAL не задано, все текстуры должны иметь ширину и высоту, указанную в качестве двух значений. Это требование не применяется ни к текстурам куба, ни к текстурам объемов.

Если D3DPTEXTURECAPS_NONPOW2CONDITIONAL также задано, условно поддерживает использование двумерных текстур с размерами, которые не являются двумя. См. описание D3DPTEXTURECAPS_NONPOW2CONDITIONAL.

Если этот флаг не задан, а D3DPTEXTURECAPS_NONPOW2CONDITIONAL также не задан, то для двумерных текстур с размерами, не равными двумерным, предоставляется безусловная поддержка.

D3DPTEXTURECAPS_PROJECTED
Поддерживает флаг преобразования текстуры D3DTTFF_PROJECTED. При применении устройство делит преобразованные координаты текстуры на последние координаты текстуры. Если эта возможность присутствует, то проективное деление происходит на пиксель. Если эта возможность отсутствует, но проективное деление в любом случае должно произойти, то она выполняется для каждой вершины средой выполнения Direct3D.
D3DPTEXTURECAPS_SQUAREONLY
Все текстуры должны быть квадратными.
D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE
Индексы текстуры не масштабируются по размеру текстуры до интерполяции.
D3DPTEXTURECAPS_VOLUMEMAP
Устройство поддерживает текстуры томов.
D3DPTEXTURECAPS_VOLUMEMAP_POW2
Для устройства требуется, чтобы для карт текстур томов были заданы два измерения.

TextureFilterCaps

Тип: DWORD

Возможности фильтрации текстур для текстуры. Возможности поэтапной фильтрации отражают, какие режимы фильтрации поддерживаются для этапов текстуры при выполнении наложения нескольких текстур. Этот элемент может быть любым сочетанием флагов фильтрации текстур для каждого этапа, определенных в D3DPTFILTERCAPS.

CubeTextureFilterCaps

Тип: DWORD

Возможности фильтрации текстур для текстуры куба. Возможности поэтапной фильтрации отражают, какие режимы фильтрации поддерживаются для этапов текстуры при выполнении наложения нескольких текстур. Этот элемент может быть любым сочетанием флагов фильтрации текстур для каждого этапа, определенных в D3DPTFILTERCAPS.

VolumeTextureFilterCaps

Тип: DWORD

Возможности фильтрации текстур для текстуры тома. Возможности поэтапной фильтрации отражают, какие режимы фильтрации поддерживаются для этапов текстуры при выполнении наложения нескольких текстур. Этот элемент может быть любым сочетанием флагов фильтрации текстур для каждого этапа, определенных в D3DPTFILTERCAPS.

TextureAddressCaps

Тип: DWORD

Возможности адресации текстур для объектов текстуры. Этот элемент может быть одним или несколькими из следующих флагов.

Значение Значение
D3DPTADDRESSCAPS_BORDER
Устройство поддерживает установку координат за пределами диапазона [0,0, 1,0] к цвету границы, как указано в D3DSAMP_BORDERCOLOR состоянии этапа текстуры.
D3DPTADDRESSCAPS_CLAMP
Устройство может зажимать текстуры для адресов.
D3DPTADDRESSCAPS_INDEPENDENTUV
Устройство может разделять режимы адресации текстуры от координат you и v текстуры. Эта возможность соответствует значениям D3DSAMP_ADDRESSU и D3DSAMP_ADDRESSV состояния отрисовки.
D3DPTADDRESSCAPS_MIRROR
Устройство может зеркало текстуры к адресам.
D3DPTADDRESSCAPS_MIRRORONCE
Устройство может принять абсолютное значение координаты текстуры (таким образом, зеркальное отображение около 0), а затем зажать до максимального значения.
D3DPTADDRESSCAPS_WRAP
Устройство может переносить текстуры в адреса.

VolumeTextureAddressCaps

Тип: DWORD

Возможности адресации текстур для текстуры объема. Этот элемент может быть одним или несколькими флагами, определенными для элемента TextureAddressCaps.

LineCaps

Тип: DWORD

Определяет возможности примитивов для рисования линий.

Значение Значение
D3DLINECAPS_ALPHACMP
Поддерживает сравнения альфа-тестов.
D3DLINECAPS_ANTIALIAS
Поддерживаются линии с сглаживание.
D3DLINECAPS_BLEND
Поддерживает смешивание исходного кода.
D3DLINECAPS_FOG
Поддерживает туман.
D3DLINECAPS_TEXTURE
Поддерживает сопоставление текстур.
D3DLINECAPS_ZTEST
Поддерживает сравнения z-буферов.

MaxTextureWidth

Тип: DWORD

Максимальная ширина текстуры для этого устройства.

MaxTextureHeight

Тип: DWORD

Максимальная высота текстуры для этого устройства.

MaxVolumeExtent

Тип: DWORD

Максимальное значение для любого из трех измерений (ширина, высота и глубина) текстуры тома.

MaxTextureRepeat

Тип: DWORD

Это число представляет максимальный диапазон целочисленных битов после нормализованных координат текстуры. Координата текстуры хранится в виде 32-разрядного целого числа со знаком, используя 27 бит для хранения целочисленной части и 5 битов для дроби с плавающей запятой. Максимальный целочисленный индекс 2²⁷ используется для определения максимальной координаты текстуры в зависимости от того, как оборудование выполняет масштабирование координат текстуры.

Некоторые аппаратные средства сообщают о D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE ограничения. В этом случае устройство откладывает масштабирование координат текстуры по размеру текстуры до завершения интерполяции и применения режима адреса текстуры, поэтому количество случаев, когда текстура может быть упакована, задается целочисленным значением в MaxTextureRepeat.

Менее желательно, чтобы на некоторых аппаратных D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE не задано, и устройство масштабирует координаты текстуры по размеру текстуры (используя самый высокий уровень детализации) до интерполяции. Это ограничивает количество случаев, когда текстура может быть упакована до maxTextureRepeat/ размер текстуры.

Например, предположим, что maxTextureRepeat равно 32 кб, а размер текстуры — 4 кб. Если оборудование задает D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE, то количество случаев, когда текстура может быть упакована, равно MaxTextureRepeat, что в этом примере составляет 32 КБ. В противном случае количество случаев, когда текстура может быть упакована, равно MaxTextureRepeat, разделенной на размер текстуры, который в этом примере составляет 32 кб/4 кб.

MaxTextureAspectRatio

Тип: DWORD

Максимальное соотношение сторон текстуры, поддерживаемое оборудованием, обычно составляет 2.

MaxAnisotropy

Тип: DWORD

Максимально допустимое значение для состояния этапа текстуры D3DSAMP_MAXANISOTROPY.

MaxVertexW

Тип: float

Максимальное значение глубины на основе W, которое поддерживает устройство.

GuardBandLeft

Тип: float

Экранная координата области обрезки полосы защиты. Координаты внутри этого прямоугольника, но за пределами прямоугольника окна просмотра обрезаются автоматически.

GuardBandTop

Тип: float

Экранная координата области обрезки полосы защиты. Координаты внутри этого прямоугольника, но за пределами прямоугольника окна просмотра обрезаются автоматически.

GuardBandRight

Тип: float

Экранная координата области обрезки полосы защиты. Координаты внутри этого прямоугольника, но за пределами прямоугольника окна просмотра обрезаются автоматически.

GuardBandBottom

Тип: float

Экранная координата области обрезки полосы защиты. Координаты внутри этого прямоугольника, но за пределами прямоугольника окна просмотра обрезаются автоматически.

ExtentsAdjust

Тип: float

Количество пикселей для настройки прямоугольника экстентов наружу для размещения ядер сглаживания.

StencilCaps

Тип: DWORD

Флаги, указывающие поддерживаемые операции буфера набора элементов. Предполагается, что операции с набором элементов действительны для всех трех состояний отрисовки в буфере трафарета (D3DRS_STENCILFAIL, D3DRS_STENCILPASS и D3DRS_STENCILZFAIL).

Дополнительные сведения см. в разделе D3DSTENCILCAPS.

FVFCaps

Тип: DWORD

Возможности гибкого формата вершин.

Значение Значение
D3DFVFCAPS_DONOTSTRIPELEMENTS
Желательно, чтобы элементы вершин не разделялись. То есть, если формат вершины содержит элементы, которые не используются с текущими состояниями отрисовки, нет необходимости повторно создавать вершины. Если этот флаг возможности отсутствует, удаление лишних элементов из формата вершин обеспечивает лучшую производительность.
D3DFVFCAPS_PSIZE
Размер точки определяется состоянием отрисовки или данными вершин. Если используется FVF, размер точки может поступать из данных о размере точек в объявлении вершины. В противном случае размер точки определяется состоянием отрисовки D3DRS_POINTSIZE. Если приложение предоставляет размер точек в обоих случаях (состояние отрисовки и объявление вершины), данные вершин переопределяют данные состояния отрисовки.
D3DFVFCAPS_TEXCOORDCOUNTMASK
Маскирует низкое значение WORD FVFCaps. Эти биты, приводимые к типу данных WORD, описывают общее количество наборов координат текстур, которые устройство может одновременно использовать для наложения нескольких текстур. (Вы можете использовать до восьми наборов координат текстуры для любой вершины, но устройство может смешиваться, используя только указанное количество наборов координат текстуры.)

TextureOpCaps

Тип: DWORD

Сочетание флагов, описывающих операции текстуры, поддерживаемые этим устройством. Определены следующие флаги.

Значение Значение
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_LERP
Поддерживается операция D3DTOP_LERP наложения текстур.
D3DTEXOPCAPS_MODULATE
Поддерживается операция D3DTOP_MODULATE наложения текстур.
D3DTEXOPCAPS_MODULATE2X
Поддерживается операция D3DTOP_MODULATE2X текстуры.
D3DTEXOPCAPS_MODULATE4X
Поддерживается операция D3DTOP_MODULATE4X наложения текстур.
D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR
Поддерживается операция D3DTOP_MODULATEALPHA_ADDCOLOR текстуры.
D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA
Поддерживается операция D3DTOP_MODULATECOLOR_ADDALPHA текстуры.
D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR
Поддерживается операция D3DTOP_MODULATEINVALPHA_ADDCOLOR наложения текстур.
D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA
Поддерживается операция D3DTOP_MODULATEINVCOLOR_ADDALPHA текстуры.
D3DTEXOPCAPS_MULTIPLYADD
Поддерживается операция D3DTOP_MULTIPLYADD наложения текстур.
D3DTEXOPCAPS_PREMODULATE
Поддерживается операция D3DTOP_PREMODULATE наложения текстур.
D3DTEXOPCAPS_SELECTARG1
Поддерживается операция D3DTOP_SELECTARG1 текстуры.
D3DTEXOPCAPS_SELECTARG2
Поддерживается операция D3DTOP_SELECTARG2 текстуры.
D3DTEXOPCAPS_SUBTRACT
Поддерживается операция D3DTOP_SUBTRACT смешения текстур.

MaxTextureBlendStages

Тип: DWORD

Максимальное количество этапов наложения текстур, поддерживаемых в конвейере фиксированной функции. Это значение — количество доступных блендеров. В программируемом конвейере пикселей это соответствует количеству уникальных регистров текстуры, используемых инструкциями шейдера пикселей.

MaxSimultaneousTextures

Тип: DWORD

Максимальное количество текстур, которые можно одновременно привязать к этапам выборки конвейера с фиксированной функцией. Если та же текстура привязана к двум этапам выборки, она считается двумя текстурами.

Это значение не имеет значения в программируемом конвейере, где количество этапов выборки определяется каждой версией шейдера пикселей. Каждая версия пиксельного шейдера также определяет количество инструкций объявления текстуры. См . раздел Шейдеры пикселей.

VertexProcessingCaps

Тип: DWORD

Возможности обработки вершин. Для данного физического устройства эта возможность может отличаться на разных устройствах Direct3D в зависимости от параметров, предоставляемых CreateDevice. См . раздел D3DVTXPCAPS.

MaxActiveLights

Тип: DWORD

Максимальное количество одновременно активных огней. Для данного физического устройства эта возможность может отличаться на разных устройствах Direct3D в зависимости от параметров, предоставляемых CreateDevice.

MaxUserClipPlanes

Тип: DWORD

Максимальное число определяемых пользователем плоскостей обрезки. Этот элемент может иметь значение 0. Для конкретного физического устройства эта возможность может отличаться на разных устройствах Direct3D в зависимости от параметров, предоставляемых CreateDevice.

MaxVertexBlendMatrices

Тип: DWORD

Максимальное количество матриц, которое может применяться этим устройством при выполнении смешивания вершин с несколькими матрицами. Для конкретного физического устройства эта возможность может отличаться на разных устройствах Direct3D в зависимости от параметров, предоставляемых CreateDevice.

MaxVertexBlendMatrixIndex

Тип: DWORD

Значение DWORD, указывающее максимальный индекс матрицы, в который можно индексировать с помощью индексов каждой вершины. Число матриц — MaxVertexBlendMatrixIndex + 1, то есть размер матрицы. Если в данных вершин, которые необходимо смешать для освещения, присутствуют нормальные значения, то количество матриц составляет половину числа, указанного этим флагом возможности. Если параметр MaxVertexBlendMatrixIndex равен нулю, драйвер не поддерживает смешивание индексированных вершин. Если это значение не равно нулю, допустимый диапазон индексов равен нулю до MaxVertexBlendMatrixIndex.

Нулевое значение maxVertexBlendMatrixIndex указывает, что драйвер не поддерживает индексированные матрицы.

При использовании программной обработки вершин можно использовать 256 матриц для смешивания индексированных вершин с нормальным смешения или без нее.

Для конкретного физического устройства эта возможность может отличаться на разных устройствах Direct3D в зависимости от параметров, предоставляемых CreateDevice.

MaxPointSize

Тип: float

Максимальный размер точечного примитива. Если задано значение 1.0f, устройство не поддерживает управление размером точек. Диапазон больше или равен 1,0f.

MaxPrimitiveCount

Тип: DWORD

Максимальное количество примитивов для каждого вызова DrawPrimitive . Ниже приведены два возможных варианта.

  • Если Параметр MaxPrimitiveCount не равен 0xffff, вы можете нарисовать максимум примитивов MaxPrimitiveCount с каждым вызовом draw.
  • Однако, если Параметр MaxPrimitiveCount равен 0xffff, вы по-прежнему можете рисовать максимум примитив MaxPrimitiveCount, но вы также можете использовать не более уникальных вершин MaxPrimitiveCount (так как каждый примитив потенциально может использовать три разных вершины).

MaxVertexIndex

Тип: DWORD

Максимальный размер индексов, поддерживаемых для аппаратной обработки вершин. Можно создать 32-разрядные буферы индексов; однако вы не сможете выполнить отрисовку с буфером индекса, если это значение не больше 0x0000FFFF.

MaxStreams

Тип: DWORD

Максимальное число параллельных потоков данных для SetStreamSource. Допустимый диапазон — от 1 до 16. Обратите внимание, что если это значение равно 0, драйвер не является драйвером Direct3D 9.

MaxStreamStride

Тип: DWORD

Максимальный шаг для SetStreamSource.

VertexShaderVersion

Тип: DWORD

Два числа, представляющие вершинный шейдер main и подверсии. Дополнительные сведения о инструкциях, поддерживаемых для каждой версии вершинного шейдера, см. в разделе Версия 1_x, Версия 2_0, Расширенная версия 2_0 или Версия 3_0.

MaxVertexShaderConst

Тип: DWORD

Количество регистров вершинного шейдера вершин , зарезервированных для констант.

PixelShaderVersion

Тип: DWORD

Два числа, представляющие пиксельный шейдер main и подверсии. Дополнительные сведения о инструкциях, поддерживаемых для каждой версии пиксельного шейдера, см. в разделе Версия 1_x, Версия 2_0, Расширенная версия 2_0 или Версия 3_0.

PixelShader1xMaxValue

Тип: float

Максимальное значение компонента арифметического шейдера пикселей. Это значение указывает внутренний диапазон значений, поддерживаемый для операций смешивания цветов пикселей. В диапазоне, в который они сообщают, реализации должны разрешать передачу данных через обработку пикселей без изменений (не зажатых). Как правило, значение этого элемента является абсолютным значением. Например, значение 1.0 указывает, что диапазон составляет от -1,0 до 1, а 8,0 указывает, что диапазон равен -8,0–8,0. Значение должно быть >равно = 1,0 для любого оборудования, поддерживающего пиксельные шейдеры.

DevCaps2

Тип: DWORD

Возможности драйвера устройства для адаптивной тесселяции. Дополнительные сведения см. в разделе D3DDEVCAPS2.

MaxNpatchTessellationLevel

TBD

Reserved5

TBD

MasterAdapterOrdinal

Тип: UINT

Это число указывает, какое устройство является master для этого подчиненного. Это число берется из того же пространства, что и значения адаптера.

Для поддержки нескольких голов одна голова будет обозначена master головой, а все остальные головы на том же карта будут обозначены подчиненными главами. Если в системе имеется несколько адаптеров с несколькими головками, master и его подчиненные из одного многоголового адаптера называются группой.

AdapterOrdinalInGroup

Тип: UINT

Это число указывает порядок, в котором API ссылается на заголовки. Значение адаптера master всегда равно 0. Эти значения не соответствуют порядковой номеру адаптера. Они применяются только к главам в группе.

NumberOfAdaptersInGroup

Тип: UINT

Число адаптеров в этой группе адаптеров (только если master). Это будет 1 для обычных адаптеров. Значение будет больше 1 для адаптера master многозаголового карта. Значение будет равно 0 для подчиненного адаптера многозаголового карта. Каждый карта может иметь не более одного master, но может иметь много подчиненных.

DeclTypes

Тип: DWORD

Сочетание одного или нескольких типов данных, содержащихся в объявлении вершин. См. раздел D3DDTCAPS.

NumSimultaneousRTs

Тип: DWORD

Количество одновременных целевых объектов отрисовки. Это число должно быть по крайней мере одно.

StretchRectFilterCaps

Тип: DWORD

Сочетание констант, описывающих операции, поддерживаемые StretchRect. В этом поле можно задать следующие флаги:

Константа Описание
D3DPTFILTERCAPS_MINFPOINT Устройство поддерживает фильтрацию по образцам точек для минификации прямоугольников. Этот тип фильтра запрашивается путем вызова StretchRect с помощью D3DTEXF_POINT.
D3DPTFILTERCAPS_MAGFPOINT Устройство поддерживает фильтрацию по образцам точек для увеличительного прямоугольника. Этот тип фильтра запрашивается путем вызова StretchRect с помощью D3DTEXF_POINT.
D3DPTFILTERCAPS_MINFLINEAR Устройство поддерживает фильтрацию билинейной интерполяции для минификации прямоугольников. Этот тип фильтра запрашивается путем вызова StretchRect с помощью D3DTEXF_LINEAR.
D3DPTFILTERCAPS_MAGFLINEAR Устройство поддерживает фильтрацию билинейной интерполяции для увеличения прямоугольников. Этот тип фильтра запрашивается путем вызова StretchRect с помощью D3DTEXF_LINEAR.
 

Дополнительные сведения см. в разделах D3DTEXTUREFILTERTYPE и D3DTEXTUREFILTERTYPE.

VS20Caps

Тип: D3DVSHADERCAPS2_0

Устройство поддерживает расширенную возможность шейдера вершин версии 2_0. См . D3DVSHADERCAPS2_0.

PS20Caps

Тип: D3DPSHADERCAPS2_0

Устройство поддерживает расширенную возможность шейдера пикселей версии 2_0. См . D3DPSHADERCAPS2_0.

VertexTextureFilterCaps

Тип: DWORD

Устройство поддерживает возможность фильтрации текстуры вершинных шейдеров. См . раздел D3DPTFILTERCAPS.

MaxVShaderInstructionsExecuted

Тип: DWORD

Максимальное количество инструкций шейдера вершин, которые можно выполнять при использовании управления потоком. Максимальное количество запрограммированных инструкций — MaxVertexShader30InstructionSlots.

MaxPShaderInstructionsExecuted

Тип: DWORD

Максимальное количество инструкций шейдера пикселей, которые можно выполнять при использовании управления потоком. Максимальное количество запрограммированных инструкций — MaxPixelShader30InstructionSlots.

MaxVertexShader30InstructionSlots

Тип: DWORD

Максимальное число поддерживаемых слотов инструкций шейдера вершин. Максимальное значение, которое можно задать для этого ограничения, — 32768. Устройства, поддерживающие vs_3_0, должны поддерживать не менее 512 слотов инструкций.

MaxPixelShader30InstructionSlots

Тип: DWORD

Максимальное число поддерживаемых слотов инструкций шейдера пикселей. Максимальное значение, которое можно задать для этого ограничения, — 32768. Устройства, поддерживающие ps_3_0, должны поддерживать не менее 512 слотов инструкций.

Комментарии

Элементы MaxTextureBlendStages и MaxSimultaneousTextures могут показаться похожими, но содержат разные сведения. Элемент MaxTextureBlendStages содержит общее количество этапов смешивания текстур, поддерживаемых текущим устройством, а член MaxSimultaneousTextures описывает, сколько из этих этапов может иметь текстуры, привязанные к ним с помощью метода SetTexture .

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

Как правило, проблемы с производительностью могут возникнуть, если вы используете текстуру, а затем изменяете ее во время сцены. Убедитесь, что текстура, используемая в текущем блоке BeginScene и EndScene , не вытеснена, если это не является абсолютно необходимой. В случае чрезвычайно высокого уровня использования текстур в сцене результаты не определены. Это происходит при изменении текстуры, используемой в сцене, при отсутствии запасной памяти текстуры. Для таких систем содержимое z-буфера становится недопустимым в EndScene. Приложения не должны вызывать UpdateSurface в или из заднего буфера на оборудовании этого типа в паре BeginScene/EndScene. Кроме того, приложения не должны пытаться получить доступ к z-буферу, если установлен флаг возможности D3DPRASTERCAPS_ZBUFFERLESSHSR. Наконец, приложения не должны блокировать обратный буфер или z-буфер внутри пары BeginScene/EndScene.

Следующие флаги, касающиеся текстур mipmapped, не поддерживаются в Direct3D 9.

  • D3DPTFILTERCAPS_LINEAR
  • D3DPTFILTERCAPS_LINEARMIPLINEAR
  • D3DPTFILTERCAPS_LINEARMIPNEAREST
  • D3DPTFILTERCAPS_MIPNEAREST
  • D3DPTFILTERCAPS_NEAREST

Требования

   
Верхняя часть d3d9caps.h

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

Структуры Direct3D

GetDeviceCaps