Конгер Д.
Физика для разработчиков компьютерных игр
стр. 27

Я помещу собственно инициализацию DirectX в новую функцию, названную Direct3DInit (). Эта функция будет вызываться из функции Gamelnit ().

Объекты Direct3D можно создавать с помощью функции Direct3DC-reate9 (). Я назову возвращаемое значение этой функции его официальным именем - IDirect3D9. Здесь I означает интерфейс (interface).

// Получаем указатель на IDirect3D9

if (NULL == ( g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) ) return E_FAIL;

Функции Direct3DCreate9() всегда нужно передавать значение D3D_SDK_VERSION. Других корректных значений нет. D3D_SDK_ VERSION обновляется при обновлении DirectX. Передача этого параметра сообщает программе, с какой версией DirectX ей нужно работать.

Функция возвращает NULL, если ей не удается создать объект Di-rect3D. Если она возвращает NULL, функция Gamelnit () возвращает значение E_FAIL.

Используя в программах СОМ, вы будете довольно часто встречать значения S_OK и E_FAIL. Все методы COM-объектов возвращают 32-разряд-ные целые значения типа HRESULT, сообщающие о результатах работы этих методов. Обычно возвращаются коды S_OK и E_FAIL, но иногда метод может вернуть нечто вроде E_INVALDARG, если ему передали неправильные аргументы, так что будьте внимательны. Согласно принятым стандартам, при успешном выполнении методы возвращают коды, начинающиеся с S, а при неудаче - коды, начинающиеся с Е. Если вы захотите узнать, успешно ли выполнился метод, воспользуйтесь следующими макросами:

□    SUCCEEDED. Возвращает TRUE для кодов успешного выполнения и FALSE - для кодов неуспешного.

□    FAILED. Возвращает TRUE для кодов неуспешного выполнения и FALSE — для кодов успешного.

Поскольку мы возвращаем функции Gamelnit () либо значение S_OK, либо значение E_FAIL, то успешность выполнения этой функции можно выяснить в функции WinMain () с помощью макроса FAILED:

// Инициализация игровой консоли if ( FAILED( Gamelnit() ) ) return (0);

Если Gamelnit () возвратит код ошибки, WinMain () выразит возмущение.

Новости
Descent выпустит релиз игры Overload в мае
Авторы Descent озвучили дату ожидаемого релиза Overload, по заявлению авторов игрового продукта, новинка выйдет весной текущего года.
Разработчики PUBG удалят шлем третьего уровня с карты
Компания удалит с карты шлемы третьего уровня и переработает баланс оружия, чтобы пользователи выбирали более разнообразный арсенал.