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


Интерфейс IDirectDraw7 (ddraw.h)

Приложения используют методы интерфейса IDirectDraw7 для создания объектов DirectDraw и работы с переменными системного уровня. В этом разделе содержится ссылка на методы интерфейса IDirectDraw7 .

Наследование

Интерфейс IDirectDraw7 наследуется от интерфейса IUnknown . IDirectDraw7 также содержит следующие типы элементов:

Методы

Интерфейс IDirectDraw7 содержит следующие методы.

 
IDirectDraw7::Compact

Этот метод в настоящее время не реализован. (IDirectDraw7.Compact)
IDirectDraw7::CreateClipper

Создает объект DirectDrawClipper.
IDirectDraw7::CreatePalette

Создает объект DirectDrawPalette для этого объекта DirectDraw.
IDirectDraw7::CreateSurface

Создает объект DirectDrawSurface для этого объекта DirectDraw.
IDirectDraw7::D uplicateSurface

Дублирует объект DirectDrawSurface.
IDirectDraw7::EnumDisplayModes

Перечисляет все режимы отображения, предоставляемые оборудованием с помощью объекта DirectDraw и совместимые с предоставленным описанием поверхности.
IDirectDraw7::EnumSurfaces

Перечисляет все существующие или возможные поверхности, соответствующие указанному описанию поверхности.
IDirectDraw7::EvaluateMode

Используется после вызова метода IDirectDraw7::StartModeTest для прохождения или сбоя каждого режима, представленного тестом, и для пошагового прохождения режимов до завершения теста.
IDirectDraw7::FlipToGDISurface

Создает поверхность, которую GDI записывает в основную поверхность.
IDirectDraw7::GetAvailableVidMem

Извлекает общий объем доступной памяти дисплея и объем памяти дисплея, который в настоящее время свободен для определенного типа поверхности.
IDirectDraw7::GetCaps

Извлекает возможности драйвера устройства для оборудования и аппаратного уровня эмуляции (HEL).
IDirectDraw7::GetDeviceIdentifier

Получает сведения о драйвере устройства. Этот метод можно использовать с осторожностью для распознавания конкретных установок оборудования для реализации обходных решений для плохого поведения драйвера или набора микросхем.
IDirectDraw7::GetDisplayMode

Извлекает текущий режим отображения.
IDirectDraw7::GetFourCCCodes

Извлекает коды из четырех символов (FOURCC), поддерживаемые объектом DirectDraw. Этот метод также может получить количество поддерживаемых кодов.
IDirectDraw7::GetGDISurface

Извлекает объект DirectDrawSurface, который в настоящее время представляет память поверхности, которую GDI рассматривает как основную поверхность.
IDirectDraw7::GetMonitorFrequency

Извлекает частоту монитора, которым управляет объект DirectDraw.
IDirectDraw7::GetScanLine

Извлекает линию сканирования, которая в настоящее время рисуется на мониторе.
IDirectDraw7::GetSurfaceFromDC

Извлекает интерфейс IDirectDrawSurface7 для поверхности на основе дескриптора контекста устройства GDI.
IDirectDraw7::GetVerticalBlankStatus

Извлекает состояние вертикального пустого поля.
IDirectDraw7::Initialize

Инициализирует объект DirectDraw, созданный с помощью com-функции CoCreateInstance.
IDirectDraw7::RestoreAllSurfaces

Восстанавливает все поверхности, созданные для объекта DirectDraw, в том порядке, в который они были созданы.
IDirectDraw7::RestoreDisplayMode

Сбрасывает режим оборудования устройства отображения для основной поверхности до вызова метода IDirectDraw7::SetDisplayMode. Для использования этого метода требуется монопольный доступ.
IDirectDraw7::SetCooperativeLevel

Определяет поведение приложения верхнего уровня.
IDirectDraw7::SetDisplayMode

Задает режим оборудования устройства отображения.
IDirectDraw7::StartModeTest

Инициирует тест для обновления системного реестра сведений о частоте обновления для текущего сочетания видеоадаптера и монитора.
IDirectDraw7::TestCooperativeLevel

Сообщает текущее состояние устройства DirectDraw на уровне сотрудничества для оконного или полноэкранного приложения.
IDirectDraw7::WaitForVerticalBlank

Помогает приложению синхронизировать себя с вертикальным пустым интервалом.

Комментарии

Методы интерфейса IDirectDraw7 можно упорядочить в следующие группы:

Группа Методы
Выделение памяти Сжатие и инициализация
Уровни совместной работы SetCooperativeLevel и TestCooperativeLevel
Создание объектов CreateClipper, CreatePalette и CreateSurface
Возможности устройства GetCaps
Режимы отображения EnumDisplayModes, GetDisplayMode, GetMonitorFrequency, RestoreDisplayMode, SetDisplayMode и WaitForVerticalBlank
Состояние отображения GetScanLine и GetVerticalBlankStatus
Прочее EvaluateMode, GetAvailableVidMem, GetDeviceIdentifier, GetFourCCCodes и StartModeTest
Управление Surface DuplicateSurface, EnumSurfaces, FlipToGDISurface, GetGDISurface, GetSurfaceFromDC и RestoreAllSurfaces
 

Интерфейс IDirectDraw7 расширяет возможности предыдущих версий интерфейса, предлагая методы, обеспечивающие более гибкое управление поверхностью, чем предыдущие версии. Все методы, относящиеся к поверхности, в интерфейсе IDirectDraw7 принимают параметры, немного отличающиеся от параметров в интерфейсе IDirectDraw2 . Везде, где метод интерфейса IDirectDraw2 может принять структуру DDSURFACEDESC и получить интерфейс IDirectDrawSurface3 , методы в IDirectDraw7 принимают структуру DDSURFACEDESC2 и извлекают интерфейс IDirectDrawSurface7 .

В IDirectDraw7 реализовано улучшенное соответствие правилам COM, которые определяют время существования дочерних объектов.

Используйте типы данных LPDIRECTDRAW, LPDIRECTDRAW2, LPDIRECTDRAW4 или LPDIRECTDRAW7, чтобы объявить переменную, содержащую указатель на интерфейс IDirectDraw, IDirectDraw2, IDirectDraw4 или IDirectDraw7 . Файл заголовка Ddraw.h объявляет эти типы данных со следующим кодом:


typedef struct IDirectDraw     FAR *LPDIRECTDRAW;
typedef struct IDirectDraw2    FAR *LPDIRECTDRAW2;
typedef struct IDirectDraw4    FAR *LPDIRECTDRAW4;
typedef struct IDirectDraw7    FAR *LPDIRECTDRAW7;

Требования

   
Целевая платформа Windows
Header ddraw.h