DirectX 8. Начинаем работу с DirectX Graphics (Ваткин, Dempski) - страница 5

Функция Sweep()

Самая короткая по программному коду функция. Осуществляет "подчистку" после нашей работы.

>g_pd3dDevice->Release();

>g_pD3D->Release();

>UnregisterClass("InitClass", wclass.hInstance);

Все просто. Сначала освобождаем устройства рендеринга, затем объект D3D. После этого остается лишь удалить класс окна и все!

Функция MessageProc()

Стандартная функция всех Windows приложений (название функции может быть любым), которая обрабатывает поступившие окну сообщения.

>switch (msg) {

>case WM_DESTROY:

> Sweep();

> PostQuitMessage(0);

> break;

>case WM_PAINT:

> Render();

> ValidateRect(hWnd, NULL);

> break;

>default:

> return DefWindowProc(hWnd, msg, wParam, lParam);

> break;

>} 

Если окну поступает сообщение WM_DESTROY, то происходит "подчистка" функцией Sweep(), а обращение к функции PostQuitMessage(0) говорит системе, что наше приложение завершило работу. Если же окну поступило сообщение WM_PAINT (например, когда пользователь передвинул окно мышкой), то все окно должно быть немедленно перерисовано, что и делает наша функция Render(). Остальные сообщения обрабатываются стандартным образом. Как мне приятно описывать эту функцию :-) И не потому, что она последняя в данной статье. Просто в ней все красиво, т.к. ранее мы подготовили базу для ее работы.

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

Удачной тебе компиляции!

Примечание: Если будешь писать программу сам, помни, что для ее компиляции нужно подключить библиотечные файлы [*.lib]. Lib'ы подключайются так:

a. Project->Settings…

b. Открой вкладку "Link"

c. В строке "Object/library modules" добавь в начало d3d8.lib

d. Должно получиться примерно следующее: "d3d8.lib kernel32.lib user32.lib gdi32.lib…"

Автор: voxatu

DirectX 8: Создание и текстурирование простого трехмерного объекта

Автор: voxatu

Ты уже умеешь инициализировать Direct3D, а значит можно на этой базе создавать трехмерные объекты. Чтобы было совсем интересно, натянем на наш трехмерный объект текстуру и заставим его вращаться!!! Кроме того, воспользуемся фильтрацией текстур и MipMapping'ом, чтобы получить более реалистичный результат почти без потери быстродействия. Попутно, научимся работать со вспомогательной библиотекой Direct3DX. Пример можешь скачать ЗДЕСЬ.