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


Структура DDSCAPS2 (ddraw.h)

Структура DDSCAPS2 определяет дополнительные возможности поверхностного объекта Microsoft DirectDraw.

Синтаксис

typedef struct _DDSCAPS2 {
  DWORD dwCaps;
  DWORD dwCaps2;
  DWORD dwCaps3;
  union {
    DWORD dwCaps4;
    DWORD dwVolumeDepth;
  } DUMMYUNIONNAMEN;
} DDSCAPS2;

Члены

dwCaps

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

dwCaps2

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

Flag Значение

DDSCAPS2_ADDITIONALPRIMARY

Только Microsoft DirectX 9.0 и более поздних версий.

Указывает, что подчиненные головки карта с несколькими головами больше не управляют своей видеопамяти после создания поверхностей для подчиненных голов с этим набором битов. После того как такие поверхности разрушаются, подчиненные руководители восстанавливают контроль над своей памятью. Дополнительные сведения см. в разделе Управление памятью Multiple-Head.

DDSCAPS2_COMMANDBUFFER

Помечает буфер команд, используемый Microsoft Direct3D для пакетных команд.

DDSCAPS2_CUBEMAP

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

DDSCAPS2_CUBEMAP_POSITIVEX

Этот флаг используется вместе с флагом DDSCAPS2_CUBEMAP для создания положительной стороны X кубической карты среды.

DDSCAPS2_CUBEMAP_NEGATIVEX

Этот флаг используется вместе с флагом DDSCAPS2_CUBEMAP для создания отрицательного X-лица кубической карты среды.

DDSCAPS2_CUBEMAP_POSITIVEY

Этот флаг используется вместе с флагом DDSCAPS2_CUBEMAP для создания положительной грани Y кубической карты среды.

DDSCAPS2_CUBEMAP_NEGATIVEY

Этот флаг используется вместе с флагом DDSCAPS2_CUBEMAP для создания отрицательной грани Y на кубической карте среды.

DDSCAPS2_CUBEMAP_POSITIVEZ

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

DDSCAPS2_CUBEMAP_NEGATIVEZ

Этот флаг используется вместе с флагом DDSCAPS2_CUBEMAP для создания отрицательного Z-лица кубической карты среды.

DDSCAPS2_CUBEMAP_ALLFACES

Этот флаг используется вместе с флагом DDSCAPS2_CUBEMAP для создания всех шести граней кубической карты среды.

DDSCAPS2_D3DTEXTUREMANAGE

Текстура всегда управляется Direct3D.

DDSCAPS2_DISCARDBACKBUFFER

Только DirectX 8.0 и более поздних версий.

Указывает, что сохранение заднего буфера не требуется. Он будет установлен на основной поверхности и в задних буферах, если приложение настроило D3DSWAPEFFECT_DISCARD в API Present. Только DirectX 9.0 и более поздних версий. Указывает, что сохранение поверхности трафарета глубины не требуется.

DDSCAPS2_DONOTPERSIST

Управляемую поверхность можно безопасно потерять.

DDSCAPS2_ENABLEALPHACHANNEL

Только DirectX 8.1 и более поздних версий.

Указывает на создание поверхностей, которые являются частью основной цепочки перелистывания или находятся в автономных задних буферах. Этот флаг включает альфа-канал. Дополнительные сведения см. в разделе Включение альфа-каналов в Full-Screen задних буферах.

DDSCAPS2_EXTENDEDFORMATPRIMARY

Только DirectX 9.0 и более поздних версий.

Указывает на создание фиктивной основной поверхности для использования с нестандартным режимом отображения. Дополнительные сведения см. в разделе Переключение между стандартным и нестандартным режимами.

DDSCAPS2_HARDWAREDEINTERLACE

Драйвер должен преобразовать чередуемый сигнал в прогрессивные кадры. В этой структуре также должны быть установлены флаги DDSCAPS_VIDEOPORT и DDSCAPS_OVERLAY.

DDSCAPS2_HINTANTIALIASING

Приложение будет использовать сглаживание. Этот флаг действителен, только если также установлен флаг DDSCAPS_3DDEVICE.

DDSCAPS2_HINTDYNAMIC

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

DDSCAPS2_HINTSTATIC

Приложение будет обновлять поверхность нечасто, но по-прежнему требует доступа. На поверхностях с этим флагом также должен быть установлен флаг DDSCAPS_TEXTURE в этом наборе структуры. Этот флаг нельзя использовать с флагами DDSCAPS2_HINTDYNAMIC или DDSCAPS2_OPAQUE.

DDSCAPS2_INDEXBUFFER

Только DirectX 8.0 и более поздних версий.

Помечает буфер индекса, созданный и контролируемый приложением.

DDSCAPS2_MIPMAPSUBLEVEL

Это упрощает использование GetAttachedSurface вместо EnumAttachedSurfaces для конструкций поверхности, таких как карты куба, в которых к корневой поверхности подключено несколько поверхностей MIP-карты. Его следует задать на всех поверхностях нетопового уровня в схеме куба mipmapped, чтобы вызов GetAttachedSurface можно было различать лица верхнего уровня и подключенные уровни MIP-карты. Этот бит возможности игнорируется в CreateSurface.

DDSCAPS2_NOTUSERLOCKABLE

Только DirectX 8.0 и более поздних версий.

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

DDSCAPS2_NPATCHES

Только DirectX 8.0 и более поздних версий.

Указывает, что данные буфера вершин можно использовать для отрисовки n-исправлений.

DDSCAPS2_OPAQUE

Приложение никогда не будет блокировать, щелкать или обновлять поверхность до конца времени существования этой поверхности. Драйвер может сжимать или изменять порядок поверхности, не распаковывая ее. На поверхностях с этим флагом также должен быть установлен флаг DDSCAPS_TEXTURE в этом наборе структуры. Этот флаг нельзя использовать с флагами DDSCAPS2_HINTDYNAMIC или DDSCAPS2_HINTSTATIC.

DDSCAPS2_POINTS

Только DirectX 8.0 и более поздних версий.

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

DDSCAPS2_RTPATCHES

Только DirectX 8.0 и более поздних версий.

Указывает, что данные буфера вершин можно использовать для отрисовки rt-patch.

DDSCAPS2_STEREOSURFACELEFT

Эта поверхность является частью цепочки переворачивания стерео. Если этот флаг установлен во время вызова CreateSurface , для каждого буфера в основной цепочке переворачивания создается пара стерео surfaces. Необходимо создать сложную цепочку перелистывания (с обратными буферами). Нельзя создать один набор стерео surfaces. Метод Flip требует задних буферов, поэтому необходимо создать не менее 4 поверхностей.

Кроме того, если этот флаг установлен в структуре DDSURFACEDESC в результате вызова EnumDisplayModes или GetDisplayMode , он указывает на поддержку стерео в этом режиме.

DDSCAPS2_TEXTUREMANAGE

Клиент указывает, что эта поверхность текстуры должна управляться драйвером, если это возможно; в противном случае он управляется direct3D Immediate Mode. Этот флаг можно использовать только для поверхностей текстур (DDSCAPS_TEXTURE флаг, установленный в элементе dwCaps ). Дополнительные сведения см. в разделе Автоматическое управление текстурами в документации по direct3D Immediate Mode.

DDSCAPS2_VERTEXBUFFER

Помечает явный буфер вершин, созданный и контролируемый приложением.

DDSCAPS2_VOLUME

Только DirectX 8.0 и более поздних версий.

Этот флаг устанавливается, если текстура имеет глубину в дополнение к ширине и высоте.

dwCaps3

Только версии DirectX 8.0 и DirectX 8.1.

Указывает количество выборок для поверхности с несколькими выборками. Это поле содержит одно из значений перечисленного типа D3DMULTISAMPLE_TYPE. Если поверхность не является множественной дискретной, dwCaps3 имеет значение D3DMULTISAMPLE_NONE (0).

Только DirectX 9.0 и более поздних версий.

Задает набор битов, указывающих на дополнительные возможности поверхности. Этот элемент может быть побитовой или из следующих битов.

Bits Значение

Биты в маске DDSCAPS3_MULTISAMPLE_MASK (0x0000001FL).

Первые пять битов dwCaps3 указывают количество выборок для поверхности с несколькими выборками. Количество выборок можно указать с помощью одного из значений перечисленного типа D3DMULTISAMPLE_TYPE. Если поверхность не является множественной дискретной, это значение равно D3DMULTISAMPLE_NONE (0).

Биты в маске DDSCAPS3_MULTISAMPLE_QUALITY_MASK (0x000000E0L).

Следующие три бита dwCaps3 указывают на уровень качества отрисовки образцов в поверхности с несколькими выборками. Уровень качества должен быть числом от 0 до 7, которое представляет уровень качества от 1 до 8 соответственно. Обратите внимание, что даже если поверхность не является множественной дискретной (указана в первых пяти битах с помощью D3DMULTISAMPLE_NONE), она по-прежнему может иметь уровень качества больше 1 (задается с помощью числа больше 0).

DDSCAPS3_RESERVED1 (0x00000100L)

Зарезервировано

DDSCAPS3_VIDEO (0x00000200L)

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

DDSCAPS3_LIGHTWEIGHTMIPMAP (0x00000400L)

Указывает, имеет ли эта поверхность упрощенные уровни MIP.

DDSCAPS3_AUTOGENMIPMAP (0x00000800L)

Указывает, что подобласти MIP для этой поверхности создаются автоматически.

DDSCAPS3_DMAP (0x00001000L)

Указывает текстуру карты смещения, которая может быть отбираема с помощью образца карты смещения в блоке тесселяции.

DUMMYUNIONNAMEN

Н/Д

DUMMYUNIONNAMEN.dwCaps4

Нижнее слово — это глубина текстуры громкости.

DUMMYUNIONNAMEN.dwVolumeDepth

Задает битовую глубину текстуры тома.

Комментарии

Эта структура используется драйвером для создания отчетов о типах поверхностей, поддерживаемых драйвером. Он также заполняется приложением, чтобы указать тип создаваемой поверхности.

Требования

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