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



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







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


ASP






XML



CSS

SSI





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











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








   Базы Данных









   Графика






Данные




Графика / Direct x /

Создание D3D8 работающего в оконном режиме

Самое простое приложение необходимое нам для дальнейшей работы мы создали. Теперь попробуем сделать так, чтобы у нас в этом окне работало D3D8. Инициализируем самые необходимые параметры и запустим цикл отрисовки.

В ранее приведенном коде у нас добавится несколько фрагментов. Начнем с первого - подключение необходимых файлов :


#include <d3d8.h>
#pragma comment (lib, "d3d8.lib")

Данным образом мы подключаем заголовочный и библиотечный файлы необходимые для компиляции нашего приложения с D3D8.

Теперь создадим необходимые нам интерфейсы :

Первый - это указатель на интерфейс IDirect3D8 - главный интерфейс для всей работы с графикой. Второй отвечает за устройство D3D - то, что будет непосредственно работать и обрабатывать нашу трехмерную графику.

Теперь займемся непосредственной инициализацией, в функцию инициализации приложения AppInit() вставим следующие строки :

-- Сперва мы создаем интерфейс D3D8, который является самым основным.
-- Затем мы получаем информацию о текущем режиме разрешения экрана и его параметрах. Это не обходимо в дальнейшем при создании устройства D3D, нам необходимо знать формат поверхности вторичного буфера.
-- Далее идут строки инициализации параметров представления. Мы говорим, что будем использовать оконный режим ( d3dpp.Windowed = true ), указываем необходимый нам метод обновления экрана ( d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD ), и устанавливаем формат поверхности вторичного буфера ( d3dpp.BackBufferFormat = d3ddm.Forma t).
-- Последней строкой мы инициализируем и создаем устройство D3D. Оно у нас будет принадлежать первичному видеоадаптеру ( D3DADAPTER_DEFAULT ), работать с использованием аппаратного ускорения ( D3DDEVTYPE_HAL ), его оконным контекстом будет hWnd , будет использовать программную обработку вершин ( D3DCREATE_SOFTWARE_VERTEXPROCESSING ), будет использовать нами ранее установленные параметры представления ( &d3dpp ), и представляемое устройство будет содержаться по указателю p_d3d_Device .

После того, как мы создали D3D, мы можем работать с ним, а конкретнее - мы можем уже сейчас начинать отрисовку экрана средствами D3D. Для этого нам нужно в уже созданную нами ранее функцию RenderScreen() вставить нижеследующие строки :

-- переменная нам нужна для показа некоторого эффекта, что бы вы могли убедиться, что наше приложение и D3D работают.
-- затем мы очищаем наше устройство - в данном случае мы очищаем вторичный буфер определенным ( D3DCOLOR_XRGB (0, 0, c++) ) цветом. У нас этот цвет будет постепенно изменяться - от черного к синему.
-- далее у нас идет строка начала сцены -
-- далее у нас идет строка конца сцены - собственно говоря, между этими строками и происходит отрисовка всего составляющего нашу сцену. Пока у нас между ними ни чего нет - т.е. нет и сцены, точнее она пока пустая.
-- последней строкой идет вызов методы для отрисовки всего того, что мы состроили на экране монитора.

Теперь откомпилировав и запустив это приложение, вы увидите, что оно работает. Но это еще не все. После того как наше приложение отработало нам необходимо удалить все созданные нами интерфейсы и занятые нами ресурсы. Для этого в функцию WinMain() добавим, в самом конце, строку вызова функции удаления :


DestroyDirect3D8 ();

и создадим саму эту функцию :

вот теперь все...




Комментарии

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



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

DirectX
17-05-2010   

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

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

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

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

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

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

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

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

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

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

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

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



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