[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Графика / Direct x /

Использование полноэкранного режима D3D8

В предыдущем уроке мы научились создавать и отображать простейшие примитивы (треугольники) в двухмерном пространстве. Они были нам необходимы для наглядного представления настоящего урока. Теперь мы научимся использовать D3D8 в полноэкранном режиме. Данная тема не освещена в известных мне источниках, так что надеюсь вам данный урок тоже поможет и будет полезен.

Для использования D3D8 в полноэкранном режиме нам необходимо знать, как необходимо производить инициализацию, кроме того, нам будет необходимо научиться производить обнаружение доступных видео режимов.

Создадим для этого примера и последующей работы диалоговое окно следующего вида :

здесь мы можем выбирать между режимом отображения (оконное или полноэкранное) и выбирать размер окна (для оконного) или разрешение, глубину и частоту обновления экрана (для полноэкранного режима).

Для работы этого диалога нам необходима вызвать функцию его отображения в функции AppInit () :

создать несколько необходимых переменных, которые мы будем использовать для хранения информации о том, используем ли мы полный экран, если НЕТ, то нам понадобятся две переменные для хранения выбраного размера окна, а если ДА, то струтура для хранения данных об выбранном режиме экрана :

а также создать для этого диалога функцию обработки сообщений :

Данная функция обработки весьма простая и я надеюсь здесь все понятно, единственные важные строки, в которых мы производим обнаружение доступных нам видеорежимов :

Здесь -

-- мы сначала создаем временный интерфейс D3D8, необходимый нам для получения информации о доступных видеорежимах ( LPDIRECT3D8 p_d3dt = Direct3DCreate8 (D3D_SDK_VERSION); ),
-- затем получаем общее их количество ( int allVideoModes = p_d3dt->GetAdapterModeCount (D3DADAPTER_DEFAULT); ),
-- и последнее - для каждого видеорежима мы получаем данные которые его описывают (как то ширина, высота, глубина цвета - точнее формат поверхности, и частоту обновления) ( p_d3dt->EnumAdapterModes (D3DADAPTER_DEFAULT, i, &d3ddm2); )

потом по полученой информации о формате поверхности, мы решаем какую глубину цвета это обозначает
и затем заносим полученные данные в список, из которого мы можем его выбрать.

 

После того как наш диалог отработал, и мы уже знаем необходимую нам информацию мы переходим к следующему шагу - создание окна. В зависимости от того, используем ли мы полноэкранный режим или нет, мы должны создавать окно с разными параметрами :

And also with different parameters we should do initialization D3D8 :

Здесь нам интересны строчки инициализации полноэкранного режима.

-- сначала устанавливаем ширину и высоту экрана,
-- количество вторичных буферов,
-- частоту обновления экрана,

-- потом устанавливаем флаг того, что мы не будем использовать оконное приложение ( d3dpp.Windowed = false;   //   ! isFullScreen )
-- и задаем формат, нам необходимый,
-- и метод обновления экрана.

 

Все остальное остается без изменений.

На этом данный урок заканчивается...




Комментарии

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Графика / Direct x /

DirectX
17-05-2010   

Это - библиотека диспетчера Microsoft DirectX, чтобы оптимизировать графы и звуковые представления для Windows... подробнее

Кол. просмотров: общее - 3589 сегодня - 0

Особенности программирования DirectX графики
07-02-2009   

Особенности программирования DirectX графики для видео карт nVidia (по материалам nVidia)... подробнее

Кол. просмотров: общее - 4050 сегодня - 0

DirectX 8.0 FAQ
26-01-2009   
Кол. просмотров: общее - 4655 сегодня - 0

Пишем DirectX-движок
25-01-2009   

Темой этого урока я решил сделать написание т. н. движка. Полагая, что всегда существует определённый контингент людей, только начавших изучать мультимедийные и игровые технологии, и плавающие в загадочных понятиях, объясню, что такое движок и на каком бензине он работает... подробнее

Кол. просмотров: общее - 4046 сегодня - 0

Что может наша видеокарта, что можем сделать мы и как это узнать?
15-01-2009   

По прошествии некоторого времени после празднования Нового Года и всего, что с ним связано, предлагаю вашему вниманию новый урок. Посвящен он будет извлечению информации о возможностях вашей видео карты... подробнее

Кол. просмотров: общее - 3943 сегодня - 0



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects