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


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

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

Синтаксис

typedef struct _DDSCAPS {
  DWORD dwCaps;
} DDSCAPS;

Члены

dwCaps

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

Flag Значение

DDSCAPS_3DDEVICE

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

DDSCAPS_ALLOCONLOAD

Память для surface не выделяется до тех пор, пока surface не будет загружена приложением с помощью метода IDirect3DTexture::Load .

DDSCAPS_ALPHA

Эта поверхность содержит только альфа-информацию.

DDSCAPS_BACKBUFFER

Эта поверхность является задним буфером структуры переворачивания поверхности. Как правило, эта возможность задается методом CreateSurface приложения при использовании флага DDSCAPS_FLIP. Эта возможность задана только у поверхности, непосредственно предшествующей поверхности DDSCAPS_FRONTBUFFER. Другие поверхности идентифицируются как задние буферы по наличию флага DDSCAPS_FLIP, их порядку прикрепления и отсутствию возможностей DDSCAPS_FRONTBUFFER и DDSCAPS_BACKBUFFER. Если эта возможность отправляется в метод CreateSurface приложения, создается автономный обратный буфер. После вызова этого метода эта поверхность может быть присоединена к переднему буферу, другому заднему буферу или к обоим буферам, чтобы сформировать переворачиваемую структуру поверхности. Дополнительные сведения см. в статье Метод AddAttachedSurface в пакете SDK для DirectX. DirectDraw поддерживает произвольное количество поверхностей в переворачиваемой структуре.

DDSCAPS_COMPLEX

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

DDSCAPS_EXECUTEBUFFER

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

DDSCAPS_FLIP

Эта поверхность является частью структуры переворачивания поверхности. При передаче этой возможности в метод CreateSurface приложения создается передний буфер и один или несколько задних буферов. DirectDraw задает бит DDSCAPS_FRONTBUFFER на передней поверхности буфера и бит DDSCAPS_BACKBUFFER на поверхности, прилегающей к поверхности переднего буфера. Для успешного вызова метода члену dwBackBufferCount структуры DDSURFACEDESC должно быть задано значение не менее 1. Возможность DDSCAPS_COMPLEX всегда должна быть задана при создании нескольких поверхностей с помощью метода CreateSurface .

DDSCAPS_FRONTBUFFER

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

DDSCAPS_HWCODEC

Эта поверхность должна иметь возможность распаковки потока в нее оборудованием.

DDSCAPS_LIVEVIDEO

Эта поверхность должна иметь возможность получать видеотрансляций.

DDSCAPS_LOCALVIDMEM

Эта поверхность существует в локальной памяти, а не в нелокальной памяти дисплея. Если этот флаг указан, необходимо также указать DDSCAPS_VIDEOMEMORY. Этот флаг нельзя использовать с флагом DDSCAPS_NONLOCALVIDMEM.

DDSCAPS_MIPMAP

Эта поверхность является одним из уровней MIP-карты. Эта поверхность присоединяется к другим DDSCAPS_MIPMAP поверхностям для формирования MIP-карты. Это можно сделать явным образом, создав несколько поверхностей и присоединив их с помощью метода AddAttachedSurface приложения или неявно с помощью метода CreateSurface приложения. Если эта возможность задана, необходимо также задать DDSCAPS_TEXTURE.

DDSCAPS_MODEX

Эта поверхность является поверхностью X 320x200 или 320x240. Если этот бит возможностей задан драйвером Microsoft Windows 2000 или более поздней версии, DirectDraw отключен.

DDSCAPS_NONLOCALVIDMEM

Эта поверхность существует в нелокальной памяти дисплея, а не в локальной памяти дисплея true. Если этот флаг указан, необходимо также указать флаг DDSCAPS_VIDEOMEMORY. Его нельзя использовать с флагом DDSCAPS_LOCALVIDMEM.

DDSCAPS_OFFSCREENPLAIN

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

DDSCAPS_OVERLAY

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

DDSCAPS_OPTIMIZED

Этот флаг в настоящее время не реализован.

DDSCAPS_OWNDC

Эта поверхность будет иметь связь контекста устройства (DC) в течение длительного периода времени. Если этот бит возможностей задан драйвером Windows 2000 или более поздней версии, DirectDraw будет отключен.

DDSCAPS_PALETTE

Этот драйвер устройства позволяет создавать и присоединять к этой поверхности уникальные объекты DirectDrawPalette.

DDSCAPS_PRIMARYSURFACE

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

DDSCAPS_PRIMARYSURFACELEFT

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

DDSCAPS_STANDARDVGAMODE

Эта поверхность является стандартной поверхностью режима VGA, а не поверхностью ModeX. Этот флаг нельзя использовать в сочетании с флагом DDSCAPS_MODEX.

DDSCAPS_SYSTEMMEMORY

Эта память surface была выделена из системной памяти. Если этот бит возможностей задан драйвером Windows 2000 или более поздней версии, DirectDraw отключен.

DDSCAPS_TEXTURE

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

DDSCAPS_VIDEOMEMORY

Эта поверхность существует в памяти дисплея.

DDSCAPS_VIDEOPORT

Эта поверхность может получать данные из объекта расширения видеопорта (VPE).

DDSCAPS_VISIBLE

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

DDSCAPS_WRITEONLY

Доступ к поверхности разрешен только для записи. Доступ на чтение с поверхности может привести к общему сбою защиты (GPF), но результаты чтения с этой поверхности не имеют смысла. Если этот бит возможности задается драйвером Windows 2000 или более поздней версии, DirectDraw отключен.

DDSCAPS_ZBUFFER

Эта поверхность является z-буфером. Он содержит сведения битовой глубины, которые используются для определения того, какие пиксели видимы, а какие скрыты. Z-буфер содержит сведения, которые невозможно отобразить.

Комментарии

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

Требования

Требование Значение
Заголовок ddraw.h