Составители:
Рубрика:
9
Теперь наше базовое приложение готово. Не забудьте в свойствах проекта
подключить библиотеки.
Теперь подчистим проект от лишнего. Для начала необходимо убрать из
меню пункт Help (Справка), а в коде обработчик для него.
Идеальное место для инициализации Direct3D — сразу после создания и
отображения окна в функции initinstance. Надо только определиться, как будет
происходить инициализация. Поскольку это одноразовая операция, которая будет
выполняться только при старте приложения, то можно написать отдельную
универсальную функцию, и ни коем образом не экономить на проверках
корректности выполнения операций.
Так как нам придется написать несколько приложений и код инициализации
Direct3D будет идентичным, давайте создадим модуль, в котором и будет наша
функция инициализации. Создайте файлы для исходного кода dxfunc.cpp и
заголовочный файл dxfunc.h. Содержимое заголовочного файла можно увидеть в
листинге 1.1.
Листинг 1.1. Содержимое заголовочного файла dxfunc.h
#ifndef _DXFUNC_H_
#define _DXFUNC_H_
#include "d3d9.h"
#include "d3dx9.h"
// Функция инициализации Direct3D HRESULT
DX3DInit (IDirect3D9 **ppiD3D9,
IDirect3DDevice9 **ppiD3DDevice9,
HWND hWnd,
DWORD iWidth,
DWORD iHeight,
BOOL bFullScreen );
#endif
В этом файле мы объявляем функцию DX3Dinit со следующими
параметрами:
− ppiD3D9 типа iDirect3D9 — указатель на указатель для хранения
интерфейса iDirect3D 9-й версии;
− ppiD3DDevice9 типа IDirect3DDevice9 — указатель на указатель для
хранения интерфейса устройства iDirect3DDevice 9-й версии;
− hWnd— окно, в котором будет происходить отображение Direct3 D-
сцены;
− iwidth и iHeight — желаемая ширина и высота окна;
− bFullscreen— параметр, указывающий на то, нужно ли выводить
программу в полноэкранном режиме. Если да, то сразу будет
происходить переключение на весь экран, иначе пользователь увидит
запрос на выбор нужного режима. Чаще всего создаются именно
полноэкранные приложения, без поддержки оконного режима. Дело в
том, что работа в этих двух режимах происходит немного по-разному,
поэтому если этот параметр уже равен bFullScreen, то оконный режим
предлагаться не будет.
Теперь наше базовое приложение готово. Не забудьте в свойствах проекта подключить библиотеки. Теперь подчистим проект от лишнего. Для начала необходимо убрать из меню пункт Help (Справка), а в коде обработчик для него. Идеальное место для инициализации Direct3D — сразу после создания и отображения окна в функции initinstance. Надо только определиться, как будет происходить инициализация. Поскольку это одноразовая операция, которая будет выполняться только при старте приложения, то можно написать отдельную универсальную функцию, и ни коем образом не экономить на проверках корректности выполнения операций. Так как нам придется написать несколько приложений и код инициализации Direct3D будет идентичным, давайте создадим модуль, в котором и будет наша функция инициализации. Создайте файлы для исходного кода dxfunc.cpp и заголовочный файл dxfunc.h. Содержимое заголовочного файла можно увидеть в листинге 1.1. Листинг 1.1. Содержимое заголовочного файла dxfunc.h #ifndef _DXFUNC_H_ #define _DXFUNC_H_ #include "d3d9.h" #include "d3dx9.h" // Функция инициализации Direct3D HRESULT DX3DInit (IDirect3D9 **ppiD3D9, IDirect3DDevice9 **ppiD3DDevice9, HWND hWnd, DWORD iWidth, DWORD iHeight, BOOL bFullScreen ); #endif В этом файле мы объявляем функцию DX3Dinit со следующими параметрами: − ppiD3D9 типа iDirect3D9 — указатель на указатель для хранения интерфейса iDirect3D 9-й версии; − ppiD3DDevice9 типа IDirect3DDevice9 — указатель на указатель для хранения интерфейса устройства iDirect3DDevice 9-й версии; − hWnd— окно, в котором будет происходить отображение Direct3 D- сцены; − iwidth и iHeight — желаемая ширина и высота окна; − bFullscreen— параметр, указывающий на то, нужно ли выводить программу в полноэкранном режиме. Если да, то сразу будет происходить переключение на весь экран, иначе пользователь увидит запрос на выбор нужного режима. Чаще всего создаются именно полноэкранные приложения, без поддержки оконного режима. Дело в том, что работа в этих двух режимах происходит немного по-разному, поэтому если этот параметр уже равен bFullScreen, то оконный режим предлагаться не будет. 9
Страницы
- « первая
- ‹ предыдущая
- …
- 5
- 6
- 7
- 8
- 9
- …
- следующая ›
- последняя »