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