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

После уменьшения значения счетчика может оказаться, что к объекту класса mesh_data больше не обращается ни один объект класса d3d_roesh. Если это так, то оператор присваивания удаляет объект класса mesh_data в строках 25-28.

Затем оператор присваивания записывает в указатель meshData адрес объекта класса mesh_data, на который указывает указатель meshData в копируемом объекте. Это делается в строке 31. Кроме того, он увеличивает значение счетчика ссылок, поскольку к объекту класса mesh_data теперь обращается еще один объект класса d3d_mesh. Оператор присваивания завершается как обычно — возвращая копию объекта-получателя.

Единственная оставшаяся задача в подсчете ссылок - удаление объектов класса d3d_mesh. Деструктор этого класса приведен в строках 40-50. Когда удаляется объект класса d3d_mesh, он перестает обращаться к данным модели. Поэтому деструктор уменьшает значение счетчика обращений в строке 43. Если к объекту класса mesh_data больше нет обращений, этот объект тоже можно удалить. Деструктор класса mesh_data выполняет операции очистки, требуемые Direct3D.

Подсказка

Методика подсчета ссылок основана на подходе, описанном в статье 29 книги Scott Meyers «More Effective C++» (издательство Addison-Wesley).

Эта книга и связанная с ней книга «Effective C++» (те же автор и издательство) очень полезны всем программистам, работающим на языке C++. Прочитав их вы сможете заметно повысить уровень своих познаний в C++.

Итоги

На компакт-диске, поставляемом с книгой, есть пример программы, показывающий, как использовать класс d3d_mesh. Он находится в папке Source\Chapter06\MeshSpin. В программе используется сетчатая модель тигра, поставляемая в составе SDK DirectX. Готовя программу к компиляции, скопируйте файлы tiger.х и tiger.bmp из подпапки SDK Media в папку проекта. При работе программа должна отображать вращающуюся модель тигра на синем фоне.

Мы продвинулись от рендеринга простых объектов, состоящих из нескольких треугольников, до рендеринга сложных объектов, представленных сетчатыми моделями с текстурами. Научившись выполнять рендеринг сложных объектов, мы можем перейти к моделированию движения ЗБ-объектов.








Новости
Авторы Max Payne раскритиковали крупные игры
Глава по коммуникации студии Remedy Томас Пуха заявил, что в нынешних реалиях игрового рынка его команде пришлось реорганизовать производство.
Ubisoft выпустит эксклюзивную фигурку Father’s Calling
Компания Ubisoft сообщила, что коллекционная фигурка Father’s Calling, представляющая собой лидера организации «Врата Эдема» из Far Cry 5, поступит в продажу 22 марта 2018 года по цене 3999 рублей.