ПРОГРАМИРУЕМ 3D ГРАФИКУ ИСПОЛЬЗУЯ DirectX


Интерфейсы и классы - часть 15


void C3dStage::Render()

{

ASSERT(m_plFrame) ;

// Очистить ракурс m_Viewport.Clear ();

if (m_pScene) {

// Воспроизвести макет m_Viewport.Render(m_pScene) ;

}

// Обновить изображение m Device.Update() ;

)

Как видите, пользоваться классами-оболочками очень просто. Различные функции класса скрывают функции базового СОМ-интерфеиса и упрощают программу.

CSdWrap

Класс C3dWrap (определяемый в Sdlmage.cpp) также в основном используется как оболочка интерфейса IDirectSDRMWrap, однако он обладает и самостоятельной ценностью. Функция Apply реализована в двух версиях. Ниже приведен первый, более простой вариант, при котором покрытие накладывается на весь объект:

BOOL C3dWrap::Apply(CSdShape* pShape) (

ASSERT(pShape) ;

ASSERT(m_pIWrap) ;

HRESULT hr;

Библиотека классов 3dPlus ^Ш 77

hr = m_pIWrap-»Apply(pShape-»GetVisual () ) ;

return SUCCEEDED(hr) ;

)

Второй вариант, приведенный на стр. 70, накладывает покрытие лишь на одну грань.

Наличие двух разных вариантов функции Apply упрощает код и одновременно сохраняет гибкость в реализации. Покрытия, в том числе и хромовые, подробно рассмотрены в главе 8, посвященной текстурам.

C3dVisual

Базовый класс для всех классов, объекты которых используются в качестве визуальных элементов макета. C3dVisual содержит переменную, в которой хранится имя объекта. Для задания и получения этого имени служат функции SetName и GetName. Имена помогают при выделении объектов с помощью мыши — отображение имени объекта позволяет проверить выбор.

C3dlmage

Единственный класс, который не пользуется никакими интерфейсами, входящими в механизм визуализации. Он предназначен для загрузки изображений из файлов на диске или ресурсов приложения и их последующего использования в качестве текстур или декалов. Механизм визуализации определяет для таких изображений специальную структуру с именем D3DRMIMAGE. Класс C3dlmage пользуется ей для хранения данных загруженного изображения. В приведенном ниже примере класс C3dlmage применяется для загрузки из файла на диске изображения, которое будет использовано в качестве фонового изображения макета:




Начало  Назад  Вперед



Книжный магазин