Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Графика -> Гончаров Д. -> "DirectX 7.0 Для программистов" -> 47

DirectX 7.0 Для программистов - Гончаров Д.

Гончаров Д., Салихо Т. DirectX 7.0 Для программистов — Спб.: Питер, 2001. — 528 c.
ISBN 5-318-00173-4
Скачать (прямая ссылка): dirext7dlyaprogrammistov2001.djvu
Предыдущая << 1 .. 41 42 43 44 45 46 < 47 > 48 49 50 51 52 53 .. 229 >> Следующая

HRESULT WINAPI DirectDrawCreateEx(
GUID FAR *lpGUID,
LPVOID *1 pipDD,
REFIID iid,
IUnknown FAR *pUnkOuter
):
Параметр lpGUID представляет собой указатель на уникальный идентификатор драйвера DirectDraw. Он необходим, если установлено более одного видеоадаптера и требуется указать, какой из них будет использоваться. При установке данного параметра в NULL используется текущий видеоадаптер. Подробнее о выборе видеоадаптеров будет рассказано в уроке, посвященном расширенным возможностям DirectDraw. Этот параметр также может указывать на использование только аппаратных возможностей видеоадаптера или только их эмуляции. Для этого соответственно используются два флага: DDCREATEHARDWAREONLY и DDCREATEEMULATIONONLY. Параметр lplpDD является указателем на интерфейс, который будет создан. Не забывайте, что функция DirectDrawCreateExO создает только интерфейс IDirectDraw7. Параметр iid может принимать только одно значение — IID IDRECTDRAW7. Любое другое значение приведет к ошибке DDERRINVALIDPARAMS.
Последний параметр в описываемой функции в данный момент не используется и предназначен для будущих версий DirectDraw.
Ниже показан пример использования функции DirectDrawCreateExO.
DirectDrawCreateEx(NULL,(VOID**)&pDD, IID_IDirectDraw7, NULL);
Функция DirectDrawCreateExO появилась в седьмой версии DirectX и используется только для создания интерфейса IDirectDraw7. Если вы хотите использовать другую версию интерфейса IDirectDraw или же вам по каким-либо причинам не подходит описанный выше метод, то воспользуйтесь старым способом инициализации DirectDraw:
LPDIRECTDRAW lpdd;
LPDIRECTDRAW7 lpdd7;
HRet*DirectDrawCreate(NULL, &lpdd, NULL);
HRetepldd->QueryInterface( IID_IDIRECTDRAW7, (void**)&lpdd7);
lpdd->ReleaseO;
lpdd-NULL;
Особенностью данного метода является то, что с его помощью можно создавать интерфейсы IDirectDraw любой версии. При этом первый параметр функции QuerylnterfaceO устанавливается в соответствии с запрашиваемой версией. Все же, если вы используете новые возможности DirectDraw, а особенно при ее взаимодействии с другими компонентами, вроде Direct3D, при создании интерфейса IDirectDraw7 необходимо пользоваться только функцией DirectDrawCreateExO.
Установка режима кооперации
105
Установка режима кооперации
Windows является многозадачной системой и гарантировать, что никакое другое приложение не попытается произвести вывод на экран совместно с вашей программой, нельзя. Поэтому полноэкранные приложения нуждаются в особом уровне кооперации — эксклюзивном. Это даст уверенность в том, что никакое другое приложение не будет осуществлять вывод на экран, искажая, таким образом, посланные на него данные.
Устанавливать эксклюзивный режим кооперации может только одно приложение, при повторной попытке установки процессу, пытающемуся это сделать, будет возвращен код ошибки DDERR_HWNDALREADYSET.
ВНИМАНИЕ При совместном использовании компонентов DirectDraw и DirectSound всегда первым
Установка эксклюзивного режима означает также полный контроль над устройством. Сюда входят:
О изменение экранного разрешения;
О использование низких разрешений экрана;
О запрет на обработку сообщения, возникающего при нажатии клавиш CTRL+
О переключение страниц;
О установка и динамическая смена палитры;
О полное использование аппаратных возможностей видеоадаптера.
За установку кооперативного режима отвечает метод IDirectDraw7: :SetCooperative Level О, прототип которого представлен ниже.
SetCooperativeLevel(
HWND hWnd,
DWORD dwFlags
)
Первым параметром указывается дескриптор окна, для которого устанавливается необходимый уровень кооперации. Второй параметр — флаги, которые непосредственно указывают, какой уровень кооперации устанавливается и какие при этом используются возможности. Описание флагов для метода SetCooperativeLevel О приведено в табл. 4.1.
Таблица 4.1. Описание флагов метода SetCooperativeLevel()
Флаг Описание
DDSCL_ALLOWMODEX Разрешает использовать Mode X — режимы с экранным разреше-
инициализируйте DirectDraw, так как если DirectSound уже установил эксклюзивный уровень кооперации, DirectDraw, попытавшись установить свой эксклюзивный режим кооперации, возвратит ошибку DDERR_HWNDALREADYSET.
ALT+DEL;
нием 320x200x8 и 320x240x8 (некогда популярным в DOS-npo-граммах). Данный флаг можно использовать только совместно с флагами DDSCL_EXCLUSICE и DDSCLJULLSCREEN. В Windows NT не работает
DDSCL ALL0WREB00T
Разрешает выполнение события при нажатии CTRL+ALT+DEL в полноэкранном режиме
продолжение &
106
Урок 4 • Основы использования DirectDraw
Таблица 4.1 (продолжение)
Флаг Описание
DDSCLCREATEDEVICEWINDOW Используется только в Windows 98 и Windows 2000. Указывает, что интерфейс ID1rectDraw7 создан и управляется окном по умолчанию
DDSCLEXCLUSIVE Запрашивает эксклюзивный режим. Используется только для полноэкранных приложений
DDSCLJPUPRESERVE Наблюдение за FPU-статусом. В этом режиме Direct3D постоянно обновляет FPU-статус
DDSCLFPUSETUP Устанавливает оптимальную производительность Direct3D
DDSCLFULLSCREEN Устанавливает полноэкранный режим. При его использовании обязателен флаг DDSCL EXCLUSIVE
Предыдущая << 1 .. 41 42 43 44 45 46 < 47 > 48 49 50 51 52 53 .. 229 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.