DDENUMSURFACES_ALL
Перечисляет все поверхности, которые отвечают критерию поиска.
DDENUMSURFACES_CANBECREATED
Перечисляет первую поверхность, которая может быть создана, если отвечает критерию поиска.
DDENUMSURFACES_DOESEXIST
Перечисляет уже существующие поверхности, которые отвечают критерию поиска.
lplpDDSD
Адрес структуры DDSURFACEDESC, которая описывает интересующую поверхность.
lpContext
Адрес caller-определенной структуры, которая будет передана каждому члену перечисления.
lpEnumCallback
Адрес функции EnumCallback, которую процедура перечисления вызовет каждый раз когда найдено соответствие.
Если установлен флажок DDENUMSURFACES_CANBECREATED, этот метод будет пытаться временно создавать поверхность, которая отвечает критерию. Обратите внимание, что поскольку поверхность перечисляется, счет ссылки увеличивается, если Вы не собираетесь использовать поверхность, вызовите IDirectDraw:: Release, чтобы уничтожить поверхность после каждого перечисления.
DDENUMSURFACES_MATCH
Поиск любой поверхности, которая соответствует поверхностному описанию.
DDENUMSURFACES_NOMATCH
Поиск любой поверхности, которая не соответствует поверхностному описанию.
DDERR_INVALIDSURFACETYPE
lpDDPixelFormat
Адрес структуры DDPIXELFORMAT, которая будет заполнена детализированным описанием текущего пикселя и цветного формата поверхности.
DDERR_NOCLIPPERATTACHED
lplpDDClipper
Адрес указателя на DirectDrawClipper, связанный с поверхностью.
См. также IDirectDraw2:: SetDisplayMode, IDirectDraw:: RestoreDisplayMode, IDirectDraw2:: EnumDisplayModes, IDirectDraw:: SetCooperativeLevel
DDERR_NOTFOUND
Этот метод может вызываться в конце прикладной программой использующей переключающиеся страницы, чтобы гарантировать, что память дисплея, в которую записывает GDI, видима пользователю.
lplpGDIDDSSurface
Адрес указателя DirectDrawSurface на объект DirectDrawSurface, которая в настоящее время управляет основной поверхностной памятью GDI.
DDERR_NOTPALETTIZED
dwFlags
Этот параметр не используется в настоящее время и должен быть установлен в 0.
dwBase
Указывает начало входов, которые должны быть восстановлены.
dwNumEntries
Указывает, что число входов палитры lpEntries имеет участок памяти. Цвета каждого входа палитры будут возвращены в последовательности от dwStartingEntry до dwCount -1.
lpEntries
Адрес входов палитры. Входы палитры - один байт каждый, если установлен флажок DDPCAPS_8BITENTRIES, или иначе четыре байта. Каждое поле - описание цвета.
DDERR_OUTOFMEMORY
lpGUID
Адрес GUID, который представляет драйвер, который будет создан. NULL - всегда активный драйвер дисплея.
lplpDD
Адрес указателя, который будет инициализирован с имеющим силу DirectDraw указателем при успешном обращении
pUnkOuter
Учитывает будущую совместимость с COM особенностями соединения частей. Сейчас DirectDrawCreate возвратит ошибку, если этот параметр не NULL.
Эта функция пытается инициализировать объект DirectDraw, затем устанавливает указатель на объект. При вызове IDirectDraw:: GetCaps метод немедленно после инициализации определяется, до какой степени этот объект аппаратно ускорен.
lpClipList
Или адрес имеющей силу структуры RGNDATA или NULL. Если имеется существующий отсекающий список, связанный с DirectDrawClipper, и это значение - NULL, отсекающийся список будет удален.
dwFlags
Этот параметр не используется в настоящее время и должен быть установлен в 0.
Отсекающийся список - ряд прямоугольников, который описывает видимые области поверхности. Отсекающийся список не может быть установлен, если hWnd уже связан с объектом DirectDrawClipper. Обратите внимание, что метод IDirectDrawSurface:: BltFast не может отсекать.
См. также IDirectDrawClipper:: GetClipList, IDirectDrawSurface:: Blt, IDirectDrawSurface:: BltFast, IDirectDrawSurface:: BltBatch, IDirectDrawSurface:: UpdateOverlay
riid
Идентификатор ссылки запрашиваемого интерфейса.
ppvObj
Адрес указателя, который будет заполнен указателем интерфейса если запрос успешен.
Если прикладная программа не нуждается в использовании интерфейса, восстановленного обращением к этому методу, она должна вызвать метод Release для этого интерфейса, чтобы его освободить. Метод IDirectDrawSurface:: QueryInterface позволяет объектам DirectDrawSurface быть расширенными Microsoft и третьими лицами без сталкновения с существующими или будущими функциональными возможностями.
См. также IDirectDrawSurface:: AddRef, IDirectDrawSurface:: Initialize, IDirectDrawSurface:: Release
DDERR_SURFACELOST
lpDDSurface
Адрес DirectDrawSurface структуры для дублирования.
lplpDupDDSurface
Адрес DirectDrawSurface указателя, который указывает на недавно созданную двойную структуру DirectDrawSurface.
Этот метод создает новый объект DirectDrawSurface, который указывает на ту же самую поверхностную память как существующий объект DirectDrawSurface. Этот дубликат может использоваться точно так же как первоначальный объект. Поверхностная память разрушается после того, как последний объект, ссылающийся на нее разрушен. Основная поверхность, поверхность 3D, или неявно созданная поверхность не может быть дублирована.
lpContext
Адрес caller-определенной структуры, которая передается члену перечисления каждый раз, когда этот метод вызывается.
lpEnumSurfacesCallback
Адрес функции EnumSurfacesCallback, которую будет запрашивать каждая поверхность которая присоединена к этой поверхности.
Этот метод может использоваться, чтобы перераспределить поверхностную память. Когда объект DirectDrawSurface теряет поверхностную память, большинство методов возвратит DDERR_SURFACELOST и не выполнит никакую другую функцию.
Поверхности могут терять память, когда изменен режим платы дисплея, или потому что прикладная программа получила исключительный доступ к плате дисплея и освободила всю поверхностную память, в настоящее время распределенную на плате дисплея.
dwFlags
Этот параметр не используется в это время и должен быть установлен в 0.
Этот метод работает только на поверхностях системной памяти; не будет блокироваться страница поверхности памяти дисплея или эмулированной основной поверхности. Если этот метод обратился к поверхности памяти дисплея,он не будет делать ничего за исключением возвращения DD_OK.
Чтобы гарантировать согласие с COM, этот метод - не, часть интерфейса IDirectDrawSurface, но принадлежит интерфейсу IDirectDrawSurface2. Чтобы использовать этот метод, Вы должны сначала сделать запрос для интерфейса IDirectDrawSurface2. Для большего количества информации, см. Интерфейс IDirectDrawSurface2.
DDERR_UNSUPPORTED
lpdwFrequency
Адрес двойного слова, которое будет заполнено частотой монитора.
lpDDBltBatch
Адрес первой структуры DDBLTBATCH, которая определяет параметры для операций.
dwCount
Число операций, которые нужно выполнить.
dwFlags
Этот параметр не используется в это время и должен быть установлен в 0.
dwX
X-координата на поверхности адресата.
dwY
Y-координата на поверхности адресата.
lpDDSrcSurface
Адрес структуры DirectDrawSurface, которая представляет DirectDrawSurface. Это - источник для операции.
lpSrcRect
Адрес структуры RECT, которая определяет верхнюю левую и нижнюю правую точки прямоугольника на исходной поверхности.
dwTrans
Определяет тип передачи.
lpDDSurfaceTargetOverride
Адрес структуры DirectDrawSurface, которая будет переключаться. Значение по умолчанию для этого параметра - NULL, тогда метод IDirectDrawSurface::Flip будет циклично переключать буферы в порядке, как они присоединены друг другу. Этот параметр используется только как отмена.
dwFlags
lplpDDPalette
Адрес указателя на структуру DirectDrawPalette. Этот указатель будет заполнен адресом структуры DirectDrawPalette, связанной с этой поверхностью. Будет установлен в NULL, если никакой DirectDrawPalette не связан с этой поверхностью.
Если никакая палитра не была явно связана с этой поверхностью, возвращается NULL для связанной палитры. Однако, если это - основная поверхность или обратный буфер к основной поверхности, возвращается указатель на палитру системы, если основная поверхность находится в 8-bpp режиме.
hDC
hDC, предварительно полученный IDirectDrawSurface:: GetDC.
Этот метод также разблокирует поверхность, предварительно блокированную, при вызове IDirectDrawSurface:: GetDC.
lX
Новая х-координата дисплея.
lY
Новая у-координата дисплея.
См. также IDirectDrawSurface:: GetOverlayPosition, IDirectDrawSurface:: UpdateOverlay
dwFlags
Этот параметр не используется в настоящее время и должен быть установлен в 0.
dwStartingEntry
Определяет первый вход, который будет установлен.
dwCount
Определяет число входов палитры, которые будут изменены.
lpEntries
Адрес входов палитры. Вход палитры - один байт , если флажок DDPCAPS_8BITENTRIES установлен или иначе четыре байта. Каждое поле - описание цвета.
DDERR_UNSUPPORTEDMODE
lpSurfaceDesc
Адрес структуры DDSURFACEDESC, которая описывает запрошенную поверхность.
lplpDDSurface
Адрес указателя, который будет инициализирован с имеющим силу DirectDrawSurface указателем.
pUnkOuter
Учитывает будущую совместимость с COM особенностями соединения частей. Сейчас IDirectDraw:: CreateSurface возвратит ошибку, если этот параметр не NULL.
Объект DirectDrawSurface представляет поверхность (память пикселя), находящуюся в памяти платы дисплея, но она также может существовать в памяти системы, если память дисплея исчерпана или если это явно запрошено. Если аппаратные средства не могут поддерживать запрошенные возможности или если объект предварительно распределил те ресурсы другому объекту DirectDrawSurface, обращение к IDirectDraw:: CreateSurface будет неудачным.
Этот метод обычно создает один объект DirectDrawSurface. Если флажок DDSCAPS_FLIP в dwCaps члене структуры DDSCAPS установлен, IDirectDraw:: CreateSurface создаст несколько объектов DirectDrawSurface, упоминаемые коллективно как сложная структура. Дополнительные созданные поверхности также упоминаются как неявные поверхности.
DirectDraw не разрешает создание поверхностей памяти дисплея более широких чем основная поверхность.
Примеры создания:
lpDDSurfaceDesc
Адрес структуры DDSURFACEDESC для заполнения описанием поверхности.
Прикладная программа не должна сохранять информацию, возвращаемую IDirectDraw::GetDisplayMode, чтобы восстановить режим дисплея. Восстановление режима осуществляет IDirectDraw::RestoreDisplayMode, таким образом избегая конфликтов, которые могли бы возникать в мультипроцессорной среде.
См. также IDirectDraw2:: SetDisplayMode, IDirectDraw:: RestoreDisplayMode, IDirectDraw2:: EnumDisplayModes
DDERR_WASSTILLDRAWING
lpDDSAttachedSurface
Адрес DirectDrawSurface, которая должена быть присоединена.
Возможные присоединениями могут быть z-буфер, альфа каналы, и обратные буферы. Некоторые присоединения автоматически прерывают другие присоединения. Например, 3DZBUFFER может только быть присоединен только к обратному буферу одновременно. Присоединение не двунаправленное, и поверхность не может быть присоединена к себе. Эмулированные поверхности (в памяти системы) не могут быть присоединены к не-эмулированным поверхностям. Если одна поверхность не карта текстуры, две присоединенных поверхности должны иметь тот же самый размер. Переключаемая поверхность не может быть присоединена к другой переключаемой поверхности того же самого типа; однако, присоединение двух поверхностей различных типов позволяется. Например, переключаемый z-буфер может быть присоединен к регулярной переключаемой поверхности. Если непереключаемая поверхность присоединена к другой непереключаемой поверхности того же самого типа, две поверхности станут переключаемой цепочкой. Если непереключаемая поверхность присоединена к переключаемой поверхности, она становится частью существующей переключаемой цепочки.Дополнительные поверхности могут быть добавлены к этой цепочке, и каждое обращение к методу IDirectDrawSurface::Flip, переместится на один шаг через поверхности.
См. также IDirectDrawSurface:: DeleteAttachedSurface, IDirectDrawSurface:: EnumAttachedSurfaces, IDirectDrawSurface:: Flip
DDERR_WRONGMODE
Поверхности можно потерять, при изменении режима платы дисплея или потому что прикладная программа получила исключительный доступ к плате дисплея и освободила всю поверхностную память, в настоящее время распределенную на плате. Когда объект DirectDrawSurface теряет поверхностную память, методы возвратят DDERR_SURFACELOST и не выполнят никакую другую функцию. Метод IDirectDrawSurface::Restore перераспределит поверхностную память и повторно присоединит ее к объекту DirectDrawSurface.
Одиночное обращение к этому методу восстановит связанные неявные поверхности DirectDrawSurface’s (обратный буферы, и так далее). Попытка восстанавливать неявно созданную поверхность кончится ошибкой. IDirectDrawSurface:: Restore не будет работать с явно созданными присоединениями, созданных IDirectDrawSurface:: AddAttachedSurface, каждая из этих поверхностей должна быть восстановлена индивидуально.
См. также IDirectDrawSurface:: IsLost, IDirectDrawSurface:: AddAttachedSurface
DDERR_XALIGN
lpSrcRect
Адрес структуры RECT, которая определяет x, y, ширину, и высоту области на исходной поверхности, используемой как оверлей.
lpDDDestSurface
Адрес структуры DirectDrawSurface, которая представляет DirectDrawSurface. Это - поверхность, которая является оверлеем.
lpDestRect
Адрес структуры RECT, которая определяет x, y, ширину, и высоту области на поверхности адресата куда оверлей должен переместиться.
dwFlags
DDFLIP_WAIT
Если переключение не может быть произведено, потому что состояние аппаратных средств дисплея не позволяет, возвратится ошибка DDERR_WASSTILLDRAWING и переключение не произойдет. Установка этого флажка заставляет IDirectDrawSurface:: Flip продолжать пробовать переключать, если метод получает ошибку DDERR_WASSTILLDRAWING от HAL. IDirectDrawSurface:: Flip не будет возвращаться до тех пор пока операция переключения не завершиться успешно, или пока не произойдет ошибка (типа DDERR_SURFACEBUSY).
Этот метод может вызываться поверхностью, которая имеет набор значений DDSCAPS_FLIP и DDSCAPS_FRONTBUFFER. Память дисплея, предварительно связанная с передним буфером связана с обратным буфером. Если имеется больше чем один обратный буфер, формируется кольцо, и поверхностные буферы памяти циклически повторяются, перемещаясь на один шагпри вызове IDirectDrawSurface::Flip.
Параметр lpDDSurfaceTargetOverride используется в редких случаях, тогда когда обратный буфер не должен стать передним буфером. Обычно этот параметр - NULL.
IDirectDrawSurface::Flip всегда синхронизируется с вертикальным пробелом.
DDFXALPHACAPS_BLTALPHAEDGEBLEND
Поддерживает alpha, смешивающийся вокруг края исходной color key поверхности. Используясь для операций блиттинга.
DDFXALPHACAPS_BLTALPHAPIXELS
Поддерживает информацию alpha в формате пикселя. Разрядная глубина информации alpha в формате пикселя может быть 1, 2, 4, или 8. Значение alpha становится более непрозрачным при увеличении значения alpha. Независимо от глубины информации alpha, 0 - всегда полностью прозрачное значение. Используется для операций блиттинга.
DDFXALPHACAPS_BLTALPHAPIXELSNEG
Поддерживает информацию alpha в формате пикселя. Разрядная глубина информации alpha в формате пикселя может быть 1, 2, 4, или 8. Значение alpha становится более прозрачным при увеличении значения alpha. Независимо от глубины информации alpha, 0 - всегда полностью непрозрачное значение. Этот флажок может только быть установлен, если DDCAPS_ALPHA установлен. Используется для операций блиттинга.
DDFXALPHACAPS_BLTALPHASURFACES
Поддерживает только alpha поверхности. Разрядная глубина alpha поверхности может быть 1, 2, 4, или 8. Значение alpha становится более непрозрачным при увеличения значения alpha. Независимо от глубины информации alpha, 0 - всегда полностью прозрачное значение. Используется для операций блиттинга.
DDFXALPHACAPS_BLTALPHASURFACESNEG
Указывает, что глубина данных канала alpha может быть 1, 2, 4, или 8. Суффикс NEG указывает, что этот канал alpha становится более прозрачным при увеличении значения alpha. Независимо от глубины информации alpha, 0 - всегда полностью непрозрачное значение. Этот флажок может быть установлен только если DDFXCAPS_ALPHASURFACES был установлен. Используется для операций блиттинга.
DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND
Поддерживает alpha, смешивающийся вокруг края исходной color key поверхности. Используется для оверлеев.
DDFXALPHACAPS_OVERLAYALPHAPIXELS
Поддерживает информацию alpha в формате пикселя. Разрядная глубина информации alpha в формате пикселя может быть 1, 2, 4, или 8. Значение alpha становится более непрозрачным при увеличении значения alpha. Независимо от глубины информации alpha, 0 - всегда полностью прозрачное значение. Используется для оверлеев.
DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG
Поддерживает информацию alpha в формате пикселя. Разрядная глубина информации alpha в формате пикселя может быть 1, 2, 4, или 8. Значение alpha становится более прозрачным при увеличении значения alpha. Независимо от глубины информации alpha, 0 - всегда полностью непрозрачное значение. Этот флажок может быть установлен только если DDFXCAPS_ALPHAPIXELS был установлен. Используется для оверлеев.
DDFXALPHACAPS_OVERLAYALPHASURFACES
Поддерживает только alpha поверхности. Разрядная глубина alpha поверхности может быть 1, 2, 4, или 8. Значение alpha становится более непрозрачным при увеличении значения alpha. Независимо от глубины информации alpha, 0 - всегда полностью прозрачное значение. Используется для оверлеев.
DDFXALPHACAPS_OVERLAYALPHASURFACESNEG
Указывает, что глубина данных канала alpha может быть 1, 2, 4, или 8. Суффикс NEG указывает, что этот канал alpha становится более прозрачным при увеличения значения alpha. Независимо от глубины информации alpha, 0 - всегда полностью непрозрачное значение. Этот флажок может быть установлен только если DDFXCAPS_ALPHASURFACES был установлен. Используется для оверлеев.
DDFXCAPS_BLTARITHSTRETCHY
Использует арифметические операции удваивания пикселей для растягивания и сжатия поверхности в течение операции блиттинга. Происходит по y-оси (вертикально).
DDFXCAPS_BLTARITHSTRETCHYN
Использует арифметические операции удваивания пикселей для растягивания и сжатия поверхности в течение операции блиттинга. Происходит по y-оси (вертикально) и работает только целого растяжения(ґ1, ґ2, и так далее).
DDFXCAPS_BLTMIRRORLEFTRIGHT
Поддерживает зеркальное отражение слева направо в операции блиттинга.
DDFXCAPS_BLTMIRRORUPDOWN
Поддерживает зеркальное отражение сверху вниз в операции блиттинга.
DDFXCAPS_BLTROTATION
Поддерживает произвольное вращение в операции блиттинга.
Поддерживает вращение на 90 градусов в операции блиттинга.
DDFXCAPS_BLTSHRINKX
Поддерживает произвольное сжатие поверхности по x-оси (горизонтально). Этот флажок имеет силу только для операций блитинга.
DDFXCAPS_BLTSHRINKXN
Поддерживает сжатие на целое число (ґ1, ґ2, и так далее) поверхности по x-оси (горизонтально). Этот флажок имеет силу только для операций блитинга.
DDFXCAPS_BLTSHRINKY
Поддерживает произвольное сжатие поверхности по y-оси (вертикально). Этот флажок имеет силу только для операций блитинга.
DDFXCAPS_BLTSHRINKYN
Поддерживает сжатие на целое число (ґ1, ґ2, и так далее) поверхности по y-оси (вертикально). Этот флажок имеет силу только для операций блитинга.
DDFXCAPS_BLTSTRETCHX
Поддерживает произвольное растяжение поверхности по x-оси (горизонтально). Этот флажок имеет силу только для операций блиттинга.
DDFXCAPS_BLTSTRETCHXN
Поддерживает растяжение на целое число(ґ1, ґ2, и так далее) поверхности по x-оси (горизонтально). Этот флажок имеет силу только для операций блиттинга.
DDFXCAPS_BLTSTRETCHY
Поддерживает произвольное растяжение поверхности по y-оси (вертикально). Этот флажок имеет силу только для операций блиттинга.
DDFXCAPS_BLTSTRETCHYN
Поддерживает растяжение на целое число(ґ1, ґ2, и так далее) поверхности по y-оси (вертикально). Этот флажок имеет силу только для операций блиттинга.
DDFXCAPS_OVERLAYARITHSTRETCHY
Использует арифметические операции удваивания пикселей для растяжения и сжатия поверхности в течение оверлейной операции. Происходит по y-оси (вертикально).
DDFXCAPS_OVERLAYARITHSTRETCHYN
Использует арифметические операции удваивания пикселей для растяжения и сжатия поверхности в течение оверлейной операции. Происходит по y-оси (вертикально) и работает только для целых чисел(ґ1, ґ2, и так далее).
DDFXCAPS_OVERLAYMIRRORLEFTRIGHT
Поддерживает зеркальное отражение оверлеев вокруг вертикальной оси.
DDFXCAPS_OVERLAYMIRRORUPDOWN
Поддерживает зеркальное отражение оверлеев вокруг горизонтальной оси.
DDFXCAPS_OVERLAYSHRINKX
Поддерживает произвольное сжатие поверхности по x-оси (горизонтально). Этот флажок имеет силу только для DDSCAPS_OVERLAY поверхностей. Этот флажок указывает на возможности поверхности; не указывает, что сжатие доступено.
DDFXCAPS_OVERLAYSHRINKXN
Поддерживает целочисленное сжатие(ґ1, ґ2, и так далее) поверхности по x-оси (горизонтально). Этот флажок имеет силу только для DDSCAPS_OVERLAY поверхностей. Этот флажок указывает на возможности поверхности; не указывает, что сжатие доступено.
DDFXCAPS_OVERLAYSHRINKY
Поддерживает произвольное сжатие поверхности по y-оси (вертикально). Этот флажок имеет силу только для DDSCAPS_OVERLAY поверхностей. Этот флажок указывает на возможности поверхности; не указывает, что сжатие доступено.
DDFXCAPS_OVERLAYSHRINKYN
Поддерживает целочисленное сжатие(ґ1, ґ2, и так далее) поверхности по y-оси (вертикально). Этот флажок имеет силу только для DDSCAPS_OVERLAY поверхностей. Этот флажок указывает на возможности поверхности; не указывает, что сжатие доступено.
DDFXCAPS_OVERLAYSTRETCHX
Поддерживает произвольное растяжение поверхности по x-оси (горизонтально). Этот флажок имеет силу только для DDSCAPS_OVERLAY поверхностей. Этот флажок указывает на возможности поверхности; не указывает, что сжатие доступено.
DDFXCAPS_OVERLAYSTRETCHXN
Поддерживает целочисленное растяжение(ґ1, ґ2, и так далее) поверхности по x-оси (горизонтально). Этот флажок имеет силу только для DDSCAPS_OVERLAY поверхностей. Этот флажок указывает на возможности поверхности; не указывает, что сжатие доступено.
DDFXCAPS_OVERLAYSTRETCHY
Поддерживает произвольное растяжение поверхности по y-оси (вертикально). Этот флажок имеет силу только для DDSCAPS_OVERLAY поверхностей. Этот флажок указывает на возможности поверхности; не указывает, что сжатие доступено.