Поделиться через


Интерфейс 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