Microsoft DirectX 2

       

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 поверхностей. Этот флажок указывает на  возможности поверхности; не указывает, что сжатие доступено.