Структура 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
Следующая возможность, зависят от драйвера.
Значение | Значение | |
---|---|---|
|
Оборудование дисплея может возвращать текущую строку сканирования. | |
|
Драйвер дисплея поддерживает DDI наложения, который позволяет проверять возможности наложения. Дополнительные сведения о наложении DDI см. в разделе Перекрытие DDI.
|
Caps2
Тип: DWORD
Возможности драйвера, определенные в D3DCAPS2.
Caps3
Тип: DWORD
Возможности, относящиеся к драйверу, определенные в D3DCAPS3.
PresentationIntervals
Тип: DWORD
Битовая маска значений, представляющая доступные интервалы переключения презентации.
CursorCaps
Тип: DWORD
Битовая маска, указывающая, какая аппаратная поддержка доступна для курсоров. Direct3D 9 не определяет возможности курсора альфа-смешивания.
DevCaps
Тип: DWORD
Флаги, определяющие возможности устройства.
Значение | Значение |
---|---|
|
Устройство поддерживает прорези из текстур системной памяти в нелокальные текстуры видеопамять. |
|
Устройство может ставить в очередь команды отрисовки после переворачивания страницы. Приложения не изменяют свое поведение, если этот флаг установлен; эта возможность означает, что устройство работает относительно быстро. |
|
Устройство может поддерживать по крайней мере драйвер, совместимый с DirectX 5. |
|
Устройство может поддерживать по крайней мере драйвер, совместимый с DirectX 7. |
|
Устройство экспортирует hal с поддержкой IDirect3DDevice9::D rawPrimitive. |
|
Устройство может использовать буферы выполнения из системной памяти. |
|
Устройство может использовать буферы выполнения из видеопамять. |
|
Устройство имеет аппаратное ускорение для растеризации сцены. |
|
Устройство может поддерживать преобразование и освещение в оборудовании. |
|
Устройство поддерживает N исправлений. |
|
Устройство может поддерживать растеризацию, преобразование, освещение и заливку на оборудовании. |
|
Устройство поддерживает кривые Безье и B-сплайны. |
|
Устройство поддерживает прямоугольные и треугольные исправления. |
|
Если эта возможность устройства задана, аппаратная архитектура не требует кэширования каких-либо сведений, а некэшированные исправления (ноль обработки) будут отрисовываться так же эффективно, как кэшированные. Обратите внимание, что настройка D3DDEVCAPS_RTPATCHHANDLEZERO не означает, что можно нарисовать исправление с нулевым маркером. Исправление с нулевым маркером всегда может быть нарисовано независимо от того, задано ли это ограничение. |
|
Устройство выполняет преобразование из отдельных пулов памяти. |
|
Устройство может извлекать текстуры из нелокла видеопамять. |
|
Устройство может извлекать текстуры из системной памяти. |
|
Устройство может извлекать текстуры из памяти устройства. |
|
Устройство может использовать буферы из системной памяти для преобразованных и освещенных вершин. |
|
Устройство может использовать буферы из видеопамяти для преобразованных и освещенных вершин. |
PrimitiveMiscCaps
Тип: DWORD
Прочие примитивные возможности драйвера. См . раздел D3DPMISCCAPS.
RasterCaps
Тип: DWORD
Сведения о возможностях растрового рисования. Этот элемент может быть одним или несколькими из следующих флагов.
Значение | Значение |
---|---|
|
Устройство поддерживает анизотропную фильтрацию. |
|
Устройство правильно выполняет итерацию цветовой перспективы. |
|
Устройство может мизерировать для улучшения цветового разрешения. |
|
Устройство поддерживает предвзятость по глубине прежних версий. Сведения об истинной глубине см. в разделе D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS. |
|
Устройство поддерживает туман на основе диапазона. В тумане на основе диапазона расстояние от объекта от зрителя используется для вычисления эффектов тумана, а не глубины объекта (т. е. z-координаты) в сцене. |
|
Устройство вычисляет значение тумана, ссылаясь на таблицу подстановки, содержащую значения тумана, индексированные на глубину заданного пикселя. |
|
Устройство вычисляет значение тумана во время операции освещения и интерполирует значение тумана во время растеризации. |
|
Устройство поддерживает корректировку смещения на уровне детализации. Эти корректировки смещения позволяют приложению сделать MIP-карту более четкой или менее четкой, чем обычно. Дополнительные сведения об уровне детализации в MIP-картах см. в разделе D3DSAMP_MIPMAPLODBIAS. |
|
Устройство поддерживает переключение между IDirect3DDevice9::BeginScene и IDirect3Device9::EndScene (с использованием D3DRS_MULTISAMPLEANTIALIAS). |
|
Устройство поддерживает тест ножниц. См. раздел Тест ножниц (Direct3D 9). |
|
Устройство выполняет смещение глубины на основе истинного наклона. Это отличается от прежних предубеждений глубины стиля. |
|
Устройство поддерживает буферизацию глубины с помощью w. |
|
Устройство поддерживает туман на основе W. Туман на основе W используется при указании матрицы проекции перспективы, но в аффинных проекциях по-прежнему используется туман на основе Z. Система считает матрицу проекции, содержащую ненулевое значение в элементе [3][4], матрицей проекции перспективы. |
|
Устройство может выполнять удаление скрытых поверхностей (HSR), не требуя от приложения сортировки многоугольников и не требуя выделения буфера глубины. Это оставляет больше видеопамяти для текстур. Метод, используемый для выполнения HSR, зависит от оборудования и является прозрачным для приложения.
HSR без Z-буфера выполняется, если поверхность буфера глубины не связана с целевой поверхностью отрисовки и включен тест сравнения буфера глубины (т. е. если для значения состояния, связанного с константой перечисления D3DRS_ZENABLE , задано значение TRUE). |
|
Устройство поддерживает туман на основе Z. |
|
Устройство может выполнять операции z-тестирования. Это фактически отрисовывает примитив и указывает, были ли отрисованы какие-либо Z-пиксели. |
ZCmpCaps
Тип: DWORD
Возможности сравнения Z-буфера. Этот элемент может быть одним или несколькими из следующих флагов.
SrcBlendCaps
Тип: DWORD
Возможности смешивания исходного кода. Этот элемент может быть одним или несколькими из следующих флагов. (Значения RGBA источника и назначения указываются индексами s и d.)
Значение | Значение | |
---|---|---|
|
Драйвер поддерживает как D3DBLEND_BLENDFACTOR, так и D3DBLEND_INVBLENDFACTOR. См. раздел D3DBLEND. | |
|
Коэффициент исходной смешивания равен (1 - As, 1 - As, 1 - As, 1 - As), а целевой коэффициент смешения равен (As, As, As, As); выбор целевой смеси переопределен. | |
|
Драйвер поддерживает режим D3DBLEND_BOTHSRCALPHA наложения. (Этот режим наложения устарел. Дополнительные сведения см. в разделе D3DBLEND.) | |
|
Коэффициент смешения имеет значение (Ad, Ad, Ad, Ad). | |
|
Коэффициент смешения имеет значение (Rd, Gd, Bd, Ad). | |
|
Коэффициент смешения равен (1 - Ad, 1 - Ad, 1 - Ad, 1 - Ad). | |
|
Коэффициент смешения равен (1 - Rd, 1 - Gd, 1 - Bd, 1 - Ad). | |
|
Коэффициент смешения имеет значение (1 — As, 1 — As, 1 — As, 1 — As). | |
|
Коэффициент смешения равен (1 - Rs, 1 - Gs, 1 - Bs, 1 - As). | |
|
Коэффициент смешения равен (1 - PSOutColor[1]r, 1 - PSOutColor[1]g, 1 - PSOutColor[1]b, не используется)). См. раздел Наложение целевого объекта отрисовки.
|
|
|
Коэффициент смешения — (1, 1, 1, 1). | |
|
Коэффициент Blend имеет значение (As, As, As, As). | |
|
Коэффициент смешения равен (f, f, f, 1); f = min(As, 1 - Ad). | |
|
Коэффициент Blend имеет значение (Rs, Gs, Bs, As). | |
|
Коэффициент blend равен (PSOutColor[1]r, PSOutColor[1]g, PSOutColor[1]b, не используется). См. раздел Наложение целевого объекта отрисовки.
|
|
|
Коэффициент смешения — (0, 0, 0, 0). |
DestBlendCaps
Тип: DWORD
Возможности смешивания назначения. Этот элемент может быть теми же возможностями, которые определены для элемента SrcBlendCaps.
AlphaCmpCaps
Тип: DWORD
Возможности сравнения альфа-тестов. Этот элемент может включать те же флаги возможностей, которые определены для элемента ZCmpCaps. Если этот элемент содержит только возможность D3DPCMPCAPS_ALWAYS или только возможность D3DPCMPCAPS_NEVER, драйвер не поддерживает альфа-тесты. В противном случае флаги определяют отдельные сравнения, которые поддерживаются для альфа-тестирования.
ShadeCaps
Тип: DWORD
Возможности операций заливки. Как правило, предполагается, что если устройство поддерживает определенную команду, оно поддерживает режим D3DSHADE_FLAT (как указано в перечислимом типе D3DSHADEMODE ). Этот флаг указывает, может ли драйвер также поддерживать заливку Gouraud и поддерживаются ли компоненты альфа-цвета. Если альфа-компоненты не поддерживаются, альфа-значение создаваемых цветов неявно равно 255. Это максимально возможный альфа-канал (то есть альфа-компонент находится в полной интенсивности).
Цвет, зеркальные выделения, туман и альфа-интерполяции треугольника имеют флаги возможностей, которые приложение может использовать для определения того, как они реализуются драйвером устройства.
Этот элемент может быть одним или несколькими из следующих флагов.
TextureCaps
Тип: DWORD
Прочие возможности сопоставления текстур. Этот элемент может быть одним или несколькими из следующих флагов.
Значение | Значение |
---|---|
|
Поддерживается альфа-формат в пикселях текстуры. |
|
Устройство может рисовать альфа-канал из палитр текстур. |
|
Поддерживает текстуры куба. |
|
Для устройства требуется, чтобы карты текстур куба имели измерения, указанные как два значения. |
|
Устройство поддерживает текстуры куба mipmapped. |
|
Устройство поддерживает текстуры mipmapped. |
|
Устройство поддерживает текстуры тома mipmapped. |
|
D3DPTEXTURECAPS_POW2 также задано, условно поддерживает использование двумерных текстур с размерами, которые не являются двумя. Устройство, предоставляющее эту возможность, может использовать такую текстуру при соблюдении всех следующих требований.
Если этот флаг не задан, а D3DPTEXTURECAPS_POW2 также не задан, то для двумерных текстур с размерами, не равными двумерным, предоставляется безусловная поддержка. Текстура, которая не является силой двух, не может быть задана на этапе, который будет считываться на основе вычисления шейдера (например , инструкции bem - ps и texm3x3 - ps в пиксельных шейдерах версий от 1_0 до 1_3). Например, эти текстуры можно использовать для хранения ударов, которые будут отправляться в операции чтения текстуры, но не для карт среды, которые используются в texbem - ps, texbeml - ps и texm3x3spec - ps. Это означает, что текстура с измерениями, которые не являются двумя, не может быть рассмотрена или выбрана с помощью координат текстуры, вычисленных в шейдере. Этот тип операции называется зависимой операцией чтения и не может выполняться с этими типами текстур. |
|
Устройство не поддерживает прогнозируемую операцию подстановки в программируемых и фиксированных шейдерах функций. |
|
Поддерживается исправление перспективы. |
|
Если D3DPTEXTURECAPS_NONPOW2CONDITIONAL не задано, все текстуры должны иметь ширину и высоту, указанную в качестве двух значений. Это требование не применяется ни к текстурам куба, ни к текстурам объемов.
Если D3DPTEXTURECAPS_NONPOW2CONDITIONAL также задано, условно поддерживает использование двумерных текстур с размерами, которые не являются двумя. См. описание D3DPTEXTURECAPS_NONPOW2CONDITIONAL. Если этот флаг не задан, а D3DPTEXTURECAPS_NONPOW2CONDITIONAL также не задан, то для двумерных текстур с размерами, не равными двумерным, предоставляется безусловная поддержка. |
|
Поддерживает флаг преобразования текстуры D3DTTFF_PROJECTED. При применении устройство делит преобразованные координаты текстуры на последние координаты текстуры. Если эта возможность присутствует, то проективное деление происходит на пиксель. Если эта возможность отсутствует, но проективное деление в любом случае должно произойти, то она выполняется для каждой вершины средой выполнения Direct3D. |
|
Все текстуры должны быть квадратными. |
|
Индексы текстуры не масштабируются по размеру текстуры до интерполяции. |
|
Устройство поддерживает текстуры томов. |
|
Для устройства требуется, чтобы для карт текстур томов были заданы два измерения. |
TextureFilterCaps
Тип: DWORD
Возможности фильтрации текстур для текстуры. Возможности поэтапной фильтрации отражают, какие режимы фильтрации поддерживаются для этапов текстуры при выполнении наложения нескольких текстур. Этот элемент может быть любым сочетанием флагов фильтрации текстур для каждого этапа, определенных в D3DPTFILTERCAPS.
CubeTextureFilterCaps
Тип: DWORD
Возможности фильтрации текстур для текстуры куба. Возможности поэтапной фильтрации отражают, какие режимы фильтрации поддерживаются для этапов текстуры при выполнении наложения нескольких текстур. Этот элемент может быть любым сочетанием флагов фильтрации текстур для каждого этапа, определенных в D3DPTFILTERCAPS.
VolumeTextureFilterCaps
Тип: DWORD
Возможности фильтрации текстур для текстуры тома. Возможности поэтапной фильтрации отражают, какие режимы фильтрации поддерживаются для этапов текстуры при выполнении наложения нескольких текстур. Этот элемент может быть любым сочетанием флагов фильтрации текстур для каждого этапа, определенных в D3DPTFILTERCAPS.
TextureAddressCaps
Тип: DWORD
Возможности адресации текстур для объектов текстуры. Этот элемент может быть одним или несколькими из следующих флагов.
VolumeTextureAddressCaps
Тип: DWORD
Возможности адресации текстур для текстуры объема. Этот элемент может быть одним или несколькими флагами, определенными для элемента TextureAddressCaps.
LineCaps
Тип: DWORD
Определяет возможности примитивов для рисования линий.
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
Возможности гибкого формата вершин.
TextureOpCaps
Тип: DWORD
Сочетание флагов, описывающих операции текстуры, поддерживаемые этим устройством. Определены следующие флаги.
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 |