Структура DDLOCKOUT (ddkmapi.h)
Структура DDLOCKOUT содержит описание поверхности.
Синтаксис
typedef struct _DDLOCKOUT {
DWORD ddRVal;
DWORD dwSurfHeight;
DWORD dwSurfWidth;
LONG lSurfPitch;
PVOID lpSurface;
DWORD SurfaceCaps;
DWORD dwFormatFlags;
DWORD dwFormatFourCC;
DWORD dwFormatBitCount;
union {
DWORD dwRBitMask;
DWORD dwYBitMask;
};
union {
DWORD dwGBitMask;
DWORD dwUBitMask;
};
union {
DWORD dwBBitMask;
DWORD dwVBitMask;
};
} DDLOCKOUT, *LPDDLOCKOUT;
Члены
ddRVal
Указывает расположение, в котором Microsoft DirectDraw записывает возвращаемое значение функции DxApi для операций DD_DXAPI_LOCK. Возвращаемый код DD_OK указывает на успех.
dwSurfHeight
dwSurfWidth
Укажите размеры поверхности в пикселях.
lSurfPitch
Указывает расстояние в байтах до начала следующей строки.
lpSurface
Указывает на память поверхности.
SurfaceCaps
Указывает набор флагов, указывающих возможности поверхности. Этот элемент можно задать для одного или нескольких следующих флагов:
Флаг | Значение |
---|---|
DDSCAPS_3DDEVICE | Эта поверхность может использоваться для трехмерной отрисовки. Приложения могут использовать этот флаг, чтобы убедиться, что устройство, которое может отображаться только в определенной куче, имеет внеэкранные поверхности, выделенные из правильной кучи. Если этот флаг установлен для кучи, поверхность не выделяется из этой кучы. |
DDSCAPS_ALLOCONLOAD | Память для поверхности не выделяется, пока поверхность не загружается приложением с помощью метода IDirect3Device7::Load. |
DDSCAPS_ALPHA | Эта поверхность содержит альфа-информацию. Формат пикселя должен запрашиваться, чтобы определить, содержит ли эта поверхность только альфа-информацию или альфа-информацию, переплетаемую с данными цвета пикселей (например, RGBA или YUVA). |
DDSCAPS_BACKBUFFER | Эта поверхность является задней буфером структуры переворачивания поверхности. Как правило, эта возможность устанавливается методом CreateSurface приложения при использовании флага DDSCAPS_FLIP. Только поверхность, которая непосредственно предшествует DDSCAPS_FRONTBUFFER поверхности, имеет этот набор возможностей. Другие поверхности определяются как задние буферы по присутствию флага DDSCAPS_FLIP, их порядка вложений и отсутствия возможностей DDSCAPS_FRONTBUFFER и DDSCAPS_BACKBUFFER. Если эта возможность отправляется в метод CreateSurface приложения, создается автономный резервный буфер. После вызова этого метода эта поверхность может быть присоединена к переднему буферу, другому заднему буферу или к обоим, чтобы сформировать структуру поверхности перевернутой поверхности. Дополнительные сведения см. в методе AddAttachedSurface в документации по пакету SDK DirectX. DirectDraw поддерживает произвольное количество поверхностей в структуре переворачивания. |
DDSCAPS_COMPLEX | Описывается сложная поверхность. Сложная поверхность приводит к созданию нескольких поверхностей. Дополнительные поверхности присоединяются к корневой поверхности. Сложная структура может быть уничтожена только путем уничтожения корня. |
DDSCAPS_FLIP |
Эта поверхность является частью структуры перелистывания поверхности. Когда эта возможность передается в метод CreateSurface приложения |
DDSCAPS_FRONTBUFFER |
Эта поверхность является передним буфером структуры переворачивания поверхности. Этот флаг обычно устанавливается методом CreateSurface |
DDSCAPS_HWCODEC | Эта поверхность должна иметь возможность распаковки потока к нему оборудованием. |
DDSCAPS_LIVEVIDEO | Эта поверхность должна иметь возможность получать видео в реальном времени. |
DDSCAPS_LOCALVIDMEM | Эта поверхность существует в истинной, локальной памяти отображения, а не нелокальной памяти отображения. Если этот флаг указан, DDSCAPS_VIDEOMEMORY также необходимо указать. Этот флаг нельзя использовать с флагом DDSCAPS_NONLOCALVIDMEM. |
DDSCAPS_MIPMAP | Эта поверхность является одним уровнем MIP-карты. Эта поверхность будет присоединена к другим DDSCAPS_MIPMAP поверхностям для формирования MIP-карты. Это можно сделать явно, создав ряд поверхностей и присоединив их с помощью метода AddAttachedSurface приложения AddAttachedSurface или неявно с помощью метода CreateSurface CreateSurface. Если эта возможность задана, DDSCAPS_TEXTURE также необходимо задать. |
DDSCAPS_MODEX | Эта поверхность — это поверхность 320x200 или 320x240 mode X. |
DDSCAPS_NONLOCALVIDMEM | Эта поверхность существует в нелокальной памяти отображения, а не в истинной локальной памяти отображения. Если этот флаг указан, то также необходимо указать флаг DDSCAPS_VIDEOMEMORY. Это нельзя использовать с флагом DDSCAPS_LOCALVIDMEM. |
DDSCAPS_OFFSCREENPLAIN | Эта поверхность является любой внеэкранной поверхностью, которая не является наложением, текстурой, z-буфером, фронт-буфером, задней буфером или альфа-поверхностью. Он используется для идентификации простых поверхностей. |
DDSCAPS_OPTIMIZED | В настоящее время не реализовано. |
DDSCAPS_OVERLAY | Эта поверхность представляет собой наложение. Он может быть или не виден напрямую в зависимости от того, наложен ли он в настоящее время на основную поверхность. DDSCAPS_VISIBLE можно использовать для определения того, накладывается ли она в данный момент. |
DDSCAPS_OWNDC | Эта поверхность будет иметь связь контекста устройства (DC) в течение длительного периода. |
DDSCAPS_PALETTE | Этот драйвер устройства позволяет создавать и присоединять к этой поверхности уникальные объекты DirectDrawPalette. |
DDSCAPS_PRIMARYSURFACE | Поверхность является основной поверхностью. Он представляет то, что видно пользователю в данный момент. |
DDSCAPS_PRIMARYSURFACELEFT | Эта поверхность является основной поверхностью левого глаза. Он представляет то, что видно левому глазу пользователя в данный момент. При создании этой поверхности поверхность с возможностью DDSCAPS_PRIMARYSURFACE представляет то, что видно правым глазом пользователя. |
DDSCAPS_STANDARDVGAMODE | Эта поверхность является стандартной поверхностью режима VGA, а не поверхностью ModeX. Этот флаг нельзя использовать в сочетании с флагом DDSCAPS_MODEX. |
DDSCAPS_SYSTEMMEMORY | Эта память поверхности была выделена в системной памяти. |
DDSCAPS_TEXTURE | Эта поверхность может использоваться в качестве трехмерной текстуры. Он не указывает, используется ли поверхность для этой цели. |
DDSCAPS_VIDEOMEMORY | Эта поверхность существует в памяти отображения. |
DDSCAPS_VIDEOPORT | Эта поверхность может получать данные из аппаратного видеопорта. |
DDSCAPS_VISIBLE | Изменения, внесенные на эту поверхность, сразу же видны. Он всегда устанавливается для основной поверхности, а также для наложений при наложении и сопоставлении текстур при их текстуре. |
DDSCAPS_WRITEONLY | Доступ к поверхности разрешен только для записи. Доступ на чтение из поверхности может создать общую ошибку защиты (GPF), но результаты чтения из этой поверхности не являются значимыми. |
DDSCAPS_ZBUFFER | Эта поверхность — это z-буфер. Z-буфер содержит сведения, которые нельзя отобразить. Вместо этого он содержит сведения о битовой глубине, которые используются для определения видимых пикселей и которые скрыты. |
dwFormatFlags
Задает набор необязательных флагов элементов управления. Этот элемент можно задать для сочетания следующих флагов:
Флаг | Значение |
---|---|
DDPF_ALPHA | Формат пикселя описывает только альфа-поверхность. |
DDPF_ALPHAPIXELS | Поверхность содержит сведения о альфа-канале в формате пикселей. |
DDPF_ALPHAPREMULT | Зарезервировано для использования системы. |
DDPF_BUMPDUDV | Данные карты ударов dUdV в формате пикселей допустимы. |
DDPF_BUMPLUMINANCE | Допустимы данные светимости в формате пикселей. Этот флаг используется при висячести с поверхностей бампа; Битовая маска для части пикселя, а затем указывается элементом dwBumpLuminanceBitCount элемента DDPIXELFORMAT. |
DDPF_COMPRESSED | Поверхность принимает данные пикселей в указанном формате и сжимает его во время операции записи. |
DDPF_FOURCC | Допустимый код FOURCC. |
DDPF_LUMINANCE | Допустимы данные Luminance в формате пикселей. Этот флаг используется только для яркости или яркости, а также альфа-поверхностей; Затем битовая глубина указывается элементом dwLuminanceBitCount член структуры DDPIXELFORMAT. |
DDPF_PALETTEINDEXED1 | Поверхность имеет 1-разрядный индексированный цвет. |
DDPF_PALETTEINDEXED2 | Поверхность имеет 2-разрядный индексированный цвет. |
DDPF_PALETTEINDEXED4 | Поверхность имеет 4-разрядный индексированный цвет. |
DDPF_PALETTEINDEXED8 | Поверхность имеет 8-разрядный индексированный цвет. |
DDPF_PALETTEINDEXEDTO8 | Поверхность имеет 1-, 2-или 4-разрядную цветовую индексированную на 8-разрядную палитру. |
DDPF_RGB | Допустимы данные RGB в структуре формата пикселей. |
DDPF_RGBTOYUV | Поверхность принимает данные RGB и преобразует его во время операции записи в данные YUV. Формат записываемых данных содержится в структуре формата пикселей. Установлен флаг DDPF_RGB. |
DDPF_STENCILBUFFER | Поверхность содержит сведения о наборе элементов вместе с данными Z. |
DDPF_YUV | Допустимы данные YUV в структуре формата пикселей. |
DDPF_ZBUFFER | Формат пикселя описывает только поверхность z-буфера. |
DDPF_ZPIXELS | Поверхность находится в формате RGBZ. |
dwFormatFourCC
Задает код FOURCC. Дополнительные сведения о кодах FOURCC см. в документации по пакету SDK DirectX.
dwFormatBitCount
Указывает количество битов на пиксель (4, 8, 16, 24 или 32) данных RGB или YUV.
dwRBitMask
Задает маску для красных битов.
dwYBitMask
Задает маску для битов Y.
dwGBitMask
Задает маску для зеленых битов.
dwUBitMask
Задает маску для битов U.
dwBBitMask
Задает маску для синих битов.
dwVBitMask
Задает маску для виртуальных битов.
Требования
Требование | Ценность |
---|---|
заголовка | ddkmapi.h (include Ddkmapi.h) |