Visual Basic - мастерская разработчика
Библиотеки

DirectX

Обзоры
DirectDraw
Direct3D
DirectX Audio
DirectPlay
DirectInput
Fido Topics
SourceCode
Tools&Libs

OpenGL

Статьи и учебники
Fido Topics
SourceCode
Tools&Libs

Архив по Glide

Движки

Обзоры
Учебники
SourceCode
Downloads

Создание игр

Ваши игры

Обзорные статьи
Учебники
Fido Topics
SourceCode
Download

Stuff

Программер-Чат

Псевдо-FTP
Disclaimer
Оффтопик

 

Cooperative Levels

"Теория DirectDraw"


Уровни доступа (cooperative levels) описывают, как DirectDraw общается с дисплеем и как он реагирует на события, которые могут повлиять на дисплей. Используйте метод IDirectDraw7::SetCooperativeLevel (DirectDraw7.SetCooperativeLevel) для того, чтобы установить уровень совместного доступы для DirectDraw.
В большинстве случаев вы будете использовать Cooperative Level для определения режима в котором будет работать программа - полноэкранный с эксклюзивным доступом к экрану или же в оконном.

Однако Cooperative Level могут быть использован и для других случаев.

Использование режима экрана Mode X. (Для большей информации см. Mode X и Mode 13 режимы дисплея).
Предотвращения потери DirectDraw эксклюзивного контроля над дисплеем или перезагрузки компьютера по CAD (только в эксклюзивном режиме).
Разрешать DirectDraw минимизировать и максимизировать приложение в ответ на соответствующие события.
Нормальный cooperative level указывает на то, что приложение DirectDraw работает в оконном режиме. В этом уровне доступа, вы не можете менять палитры главной поверхности или применять page flipping. Ко всему этому, вы не сможете применять некоторые методы, которые чрезмерно влияют на дисплей или видеопамять.

В полноэкранном эксклюзивном режиме вы можете выжать из оборудования компьютера все, на что оно только способно. В этом режиме вы можете устанавливать пользовательские и динамические палитры, менять разрешение экрана, применять page flipping. Эксклюзивный (полноэкранный) режим не запрещает другим приложениям резервировать себе буфера или использовать DirectDraw или GDI. Но он запрещает им выполнять какие-либо операции, которые могут повлиять на состояние экрана или палитры.

Потому что приложения могут использовать DirectDraw во множестве окон, IDirectDraw7::SetCooperativeLevel (DirectDraw7.SetCooperativeLevel) не требует указателя на окно (window handle), если приложение запрашивает режим DDSCL_NORMAL. Передавая NULL (Nothing) вместо указателя окна, все окна могут быть одновременно использованы в нормальном режиме Windows.

IDirectDraw7::SetCooperativeLevel (DirectDraw7.SetCooperativeLevel) поддерживает связь между процессом и указателем окна. Если в процессе вызывается IDirectDraw7::SetCooperativeLevel (DirectDraw7.SetCooperativeLevel) , устанавливается связь между процессом и указателем окна, если этот метод опять вызывается в том же процессе, возвращается код ошибки DDERR_HWNDALREADYSET. Некоторые приложения могут получать эту ошибку, когда DirectSound указывает другой указатель окна, чем DirectDraw - они должны указывать один указатель (простите за каламбур) top-level окна.

Posted: 23.01.2k1
Autor: Antiloop
<anti_loop@mail.ru>

 


Проект
Создание Народного Учебника по OpenGL

Участвовать!
Поиск
Найдите статью или файл:


Рассылка
Новости сайта
La Vision в вашем почтовом ящике








Программирование на С++ Delphi и Паскаль
Центр демо-искусства в России