Программирование графики с использованием Direct3D

       

Класс MultiViewWin


Основная (но не вся) функциональность приложения MultiView предоставляется классом MultiViewWin:

class MultiViewWin : public RMWin { public: MultiViewWin(); BOOL CreateScene(); protected: //{{AFX_MSG(MultiViewWin) afx_msg void OnRenderWireframe(); afx_msg void OnRenderFlat(); afx_msg void OnRenderGouraud(); afx_msg void OnUpdateRenderFlat(CCmdUI* pCmdUI); afx_msg void OnUpdateRenderGouraud(CCmdUI* pCmdUI); afx_msg void OnUpdateRenderWireframe(CCmdUI* pCmdUI); afx_msg void OnFileOpen(); //}}AFX_MSG DECLARE_MESSAGE_MAP() private: LPDIRECT3DRMMESHBUILDER meshbuilder; LPDIRECT3DRMFRAME meshframe; };

В классе объявлены две открытые функции: конструктор и функция CreateScene(). Конструктор инициализирует две переменные класса. Функция CreateScene() создает сцену приложения, но отличается от подобных функций в других демонстрационных программах, поскольку не создает никаких портов просмотра. Код функции CreateScene() мы рассмотрим в следующем разделе.

Далее объявлены семь защищенных функций. Шесть из них являются обработчиками сообщений меню Render и присутствуют в большинстве других приложений. Седьмая функция является обработчиком сообщений для команды Open меню File. Мы будем использовать ее для отображения диалогового окна выбора файлов и загрузки выбранной сетки с диска.

Две переменных класса являются указателями, используемыми для доступа к единственной сетке приложения и фрейму, к которому эта сетка присоединена.



Содержание раздела