Интерфейс IDirectDrawSurface7 (ddraw.h)
Приложения используют методы интерфейса IDirectDrawSurface7 для создания объектов DirectDrawSurface и работы с переменными системного уровня. В этом разделе приведена ссылка на методы этого интерфейса.
Наследование
Интерфейс IDirectDrawSurface7 наследуется от интерфейса IUnknown . IDirectDrawSurface7 также имеет следующие типы элементов:
Методы
Интерфейс IDirectDrawSurface7 содержит следующие методы.
IDirectDrawSurface7::AddAttachedSurface Присоединяет к этой поверхности указанную поверхность z-буфера. |
IDirectDrawSurface7::AddOverlayDirtyRect Метод IDirectDrawSurface7::AddOverlayDirtyRect в настоящее время не реализован. |
IDirectDrawSurface7::Blt Выполняет передачу битового блока (bitblt). Этот метод не поддерживает z-буферизацию или альфа-смешение во время операций bitblt. |
IDirectDrawSurface7::BltBatch Метод IDirectDrawSurface7::BltBatch в настоящее время не реализован. |
IDirectDrawSurface7::BltFast Выполняет исходное копирование bitblt или transparent bitblt с помощью исходного ключа цвета или ключа цвета назначения. |
IDirectDrawSurface7::ChangeUniquenessValue Вручную обновляет значение уникальности для этой поверхности. |
IDirectDrawSurface7::D eleteAttachedSurface Отсоединяет одну или несколько присоединенных поверхностей. |
IDirectDrawSurface7::EnumAttachedSurfaces Перечисляет все поверхности, прикрепленные к этой поверхности. |
IDirectDrawSurface7::EnumOverlayZOrders Перечисляет поверхности наложения в указанном месте назначения. Наложения можно перечислять в порядке от переднего или обратного к переднему. |
IDirectDrawSurface7::Flip Позволяет связать память поверхности, связанную с поверхностью DDSCAPS_BACKBUFFER, с поверхностью переднего буфера. |
IDirectDrawSurface7::FreePrivateData Освобождает указанные личные данные, связанные с этой поверхностью. |
IDirectDrawSurface7::GetAttachedSurface Получает присоединенную поверхность, которая имеет указанные возможности, и увеличивает число ссылок для полученного интерфейса. |
IDirectDrawSurface7::GetBltStatus Получает состояние операции передачи битовых блоков (bitblt). |
IDirectDrawSurface7::GetCaps Извлекает возможности этой поверхности. Эти возможности не обязательно связаны с возможностями устройства отображения. |
IDirectDrawSurface7::GetClipper Извлекает объект DirectDrawClipper, связанный с этой поверхностью, и увеличивает число ссылок возвращенного клипера. |
IDirectDrawSurface7::GetColorKey Извлекает значение ключа цвета для этой поверхности. |
IDirectDrawSurface7::GetDC Создает совместимый с GDI дескриптор контекста устройства для этой поверхности. |
IDirectDrawSurface7::GetDDInterface Извлекает интерфейс для объекта DirectDraw, который использовался для создания этой поверхности. |
IDirectDrawSurface7::GetFlipStatus Возвращает состояние о том, завершила ли эта поверхность процесс перелистывания. |
IDirectDrawSurface7::GetLOD Извлекает максимальный уровень детализации (LOD), заданный в настоящее время для управляемой поверхности MIP-карты. Этот метод выполняется успешно только для управляемых текстур. |
IDirectDrawSurface7::GetOverlayPosition Извлекает координаты отображения этой поверхности. Этот метод используется на видимой активной поверхности наложения (то есть на поверхности с установленным флагом DDSCAPS_OVERLAY). |
IDirectDrawSurface7::GetPalette Извлекает объект DirectDrawPalette, связанный с этой поверхностью, и увеличивает число ссылок возвращаемой палитры. |
IDirectDrawSurface7::GetPixelFormat Извлекает цвет и формат пикселей этой поверхности. |
IDirectDrawSurface7::GetPriority Возвращает приоритет управления текстурами для этой текстуры. Этот метод выполняется успешно только для управляемых текстур. |
IDirectDrawSurface7::GetPrivateData Копирует частные данные, связанные с этой поверхностью, в предоставленный буфер. |
IDirectDrawSurface7::GetSurfaceDesc Извлекает описание этой поверхности в текущем состоянии. |
IDirectDrawSurface7::GetUniquenessValue Извлекает текущее значение уникальности для этой поверхности. |
IDirectDrawSurface7::Initialize Инициализирует объект DirectDrawSurface. |
IDirectDrawSurface7::IsLost Определяет, была ли освобождена память поверхности, связанная с объектом DirectDrawSurface. |
IDirectDrawSurface7::Lock Получает указатель на память поверхности. |
IDirectDrawSurface7::P ageLock Предотвращает выгружаемость поверхности системной памяти во время операции передачи битовых блоков (bitblt), использующего прямой доступ к памяти (DMA), в системную память или из нее. |
IDirectDrawSurface7::P ageUnlock Разблокирует поверхность системной памяти, которая затем позволяет вывести ее на страницу. |
IDirectDrawSurface7::ReleaseDC Освобождает дескриптор контекста устройства, который ранее был получен с помощью метода IDirectDrawSurface7::GetDC. |
IDirectDrawSurface7::Restore Восстанавливает потерянную поверхность. Это происходит при освобождении поверхностной памяти, связанной с объектом DirectDrawSurface. |
IDirectDrawSurface7::SetClipper Присоединяет объект clipper к этой поверхности или удаляет его из нее. |
IDirectDrawSurface7::SetColorKey Задает значение ключа цвета для объекта DirectDrawSurface, если оборудование поддерживает цветовые ключи для каждой поверхности. |
IDirectDrawSurface7::SetLOD Задает максимальный уровень детализации (LOD) для управляемой поверхности MIP-карты. Этот метод выполняется успешно только для управляемых текстур. |
IDirectDrawSurface7::SetOverlayPosition Изменяет координаты отображения поверхности наложения. |
IDirectDrawSurface7::SetPalette Присоединяет объект палитры к поверхности (или отсоединяет его от поверхности). Поверхность использует эту палитру для всех последующих операций. Изменение палитры происходит немедленно, без учета времени обновления. |
IDirectDrawSurface7::SetPriority Назначает приоритет управления текстурами для этой текстуры. Этот метод выполняется успешно только для управляемых текстур. |
IDirectDrawSurface7::SetPrivateData Связывает данные с поверхностью, которая предназначена для использования приложением, а не DirectDraw. Данные передаются по значению, и несколько наборов данных могут быть связаны с одной поверхностью. |
IDirectDrawSurface7::SetSurfaceDesc Задает характеристики существующей поверхности. |
IDirectDrawSurface7::Unlock Уведомляет DirectDraw о том, что прямые манипуляции с поверхностью завершены. |
IDirectDrawSurface7::UpdateOverlay Изменяет положение или изменение визуальных атрибутов поверхности наложения. Для этих поверхностей должен быть установлен флаг DDSCAPS_OVERLAY. |
IDirectDrawSurface7::UpdateOverlayDisplay Метод IDirectDrawSurface7::UpdateOverlayDisplay в настоящее время не реализован. |
IDirectDrawSurface7::UpdateOverlayZOrder Задает z-порядок наложения. |
Комментарии
Методы интерфейса IDirectDrawSurface7 можно упорядочить в следующие группы:
Группа | Методы |
---|---|
Выделение памяти | Инициализация, IsLost и восстановление |
Присоединение поверхностей | AddAttachedSurface, DeleteAttachedSurface, EnumAttachedSurfaces и GetAttachedSurface |
BitBltting | Blt, BltBatch, BltFast и GetBltStatus |
Цветовая клавиша | GetColorKey и SetColorKey |
Контексты устройств | GetDC и ReleaseDC |
Листать | Flip и GetFlipStatus |
Поверхности блокировки | Lock, PageLock, PageUnlock и Unlock |
Прочее | GetDDInterface |
Наложения | AddOverlayDirtyRect, EnumOverlayZOrders, GetOverlayPosition, SetOverlayPosition, UpdateOverlay, UpdateOverlayDisplay и UpdateOverlayZOrder |
Частные данные поверхности | FreePrivateData, GetPrivateData и SetPrivateData |
Возможности Surface | GetCaps |
Surface Clipper | GetClipper и SetClipper |
Характеристики Поверхности | ChangeUniquenessValue, GetPixelFormat, GetSurfaceDesc, GetUniquenessValue и SetSurfaceDesc |
Палитры Surface | GetPalette и SetPalette |
Текстуры | GetLOD, GetPriority, SetLOD и SetPriority |
Интерфейс IDirectDrawSurface7 расширяет возможности предыдущих версий интерфейса, предлагая методы, обеспечивающие лучшее управление поверхностью и простоту использования. Многие методы в этом интерфейсе принимают несколько другие параметры, чем их аналоги в предыдущих версиях интерфейса. Если метод интерфейса IDirectDrawSurface3 может принимать структуру DDSURFACEDESC или интерфейс IDirectDrawSurface3 , методы в IDirectDrawSurface7 принимают вместо этого структуру DDSURFACEDESC2 или интерфейс IDirectDrawSurface7 .
Используйте тип данных LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE2, LPDIRECTDRAWSURFACE3, LPDIRECTDRAWSURFACE4 или LPDIRECTDRAWSURFACE7, чтобы объявить переменную, указывающую на различные интерфейсы объектов DirectDrawSurface. Файл заголовка Ddraw.h объявляет эти типы данных со следующим кодом:
typedef struct IDirectDrawSurface FAR *LPDIRECTDRAWSURFACE;
typedef struct IDirectDrawSurface2 FAR *LPDIRECTDRAWSURFACE2;
typedef struct IDirectDrawSurface3 FAR *LPDIRECTDRAWSURFACE3;
typedef struct IDirectDrawSurface4 FAR *LPDIRECTDRAWSURFACE4;
typedef struct IDirectDrawSurface7 FAR *LPDIRECTDRAWSURFACE7;
Требования
Целевая платформа | Windows |
Header | ddraw.h |