Direct Draw Термины и концепции - Интерфейс DirectDrawClipper
Интерфейс DirectDrawClipper предназначен для поддержки отсечения. Чтобы выполнить отсечение, следует присоединить объект отсечения к поверхности и использовать ее в качестве приемника блиттинга. Экземпляры интерфейса DirectDrawClipper создаются функцией CreateClipper интерфейса DirectDraw. Интерфейс DirectDrawClipper содержит следующие функции:
GetHWnd()
IsClipListChanged()
SetClipList()
GetClipList()
Объекты отсечения обычно используются
для ограничения вывода, необходимого при работе
приложений DirectDraw в окне. Объект отсечения
гарантирует, что при выполнении блиттинга будет
учитываться присутствие на рабочем столе других
окон. Например, если окно приложения будет
полностью или частично закрыто другим окном,
объект отсечения позаботится о том, чтобы
содержимое верхнего окна не было испорчено
приложением DirectDraw.
Отсечение для рабочего стола активизируется
функцией SetHWnd. Функция SetHWnd присоединяет объект
отсечения к логическому номеру (handle) окна. В
результате инициируется взаимодействие Windows с
объектом отсечения. Объект отсечения получает
уведомления обо всех изменениях окон на рабочем
столе и действует соответствующим образом.
Функция GetHWnd определяет, к какому логическому
номеру окна присоединен заданный объект
отсечения (и присоединен ли он вообще). Функция
IsClipListChanged определяет, был ли внутренний список
отсечений изменен вследствие изменений на
рабочем столе.
Функции SetClipList и GetClipList упрощают нестандартное
использование интерфейса DirectDrawClipper. Функция
SetClipList определяет набор прямоугольных областей,
для которых разрешено выполнение блиттинга.
Функция GetClipList извлекает внутренние данные
объекта отсечения.
После того как экземпляр DirectDrawClipper будет
присоединен к поверхности, происходит
автоматическое отсечение операций блиттинга,
выполняемых функциями B1t(), BltBatch() и UpdateOverlay().
Обратите внимание на то, что в список не входит
функция BltFast(). Для нее отсечение не
поддерживается.