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


Интерфейс DirectDraw - часть 12


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

Подготовка тестового окна

Для каждого теста мы создаем окно, устанавливаем соответствующий режим DirectDraw и производим тестирование. Каждый тест выполняется примерно для 100 кадров, сообщает о результатах и проверяет, не была ли нажата клавиша, прекращающая процесс тестирования. Ниже приведена функция, которая создает окно, устанавливает режим и запускает тест:

/b> в^ Глава 12. Интерфейс DirectDraw

BOOL CTestWnd::Create(TESTINFO* pti)

{

// Сохранить информацию о тесте m_pTI = pti;

ASSERT(m_pTI) ;

// Создать объект DirectDraw m_pDD = new CDirectDraw;

BOOL b = m_pDD-»Create () ;

ASSERT(b);~

II Зарегистрировать класс окна

CString strClass =

AfxRegisterWndClass(CS_HREDRAW I CS_VREDRAW, ::LoadCursor(NULL, IDC_ARROW), (HBRUSH)::GetStockObject(GRAY_BRUSH)

// Задать стиль и размеры окна DWORD dwStyle = WS_VISIBLE ¦ WS_POPUP;

RECT re;

if (m_pTI-»bFullScreen) {

re.top = 0;

re.left = 0;

re.right = ::GetSystemMetrics(SM_CXSCREEN);

re.bottom = ::GetSystemMetrics(SM_CYSCREEN);

} else { // Оконный режим

dwStyle ¦= WS_CAPTION ¦ WS_SYSMENU;

re.top = 50;

re.left = 50;

re.bottom = re.top + m_pT I-»i Height;

re. right = re. left + m_pTI-»iWidth;

::AdjustWindowRect(&rc, dwStyle, FALSE);

\

if (!CreateEx(0,

strClass,

"DirectDraw Window",

dwStyle,

re.left, re.top,

re.right — re.left, re.bottom — re.top,

m pTI-»pParent-»GetSafeHwnd() ,

NULL)) {

return FALSE;

i

// Обеспечить отображение окна на экране UpdateWindow() ;

// Установить режим для окна

Работа с DirectDraw 'Ч^' 287

ASSERT(m_pTI) ;

if (m_pTI-»bFullScreen) f

b = m_pDD-»SetFull3creenMode (GetSafeHwndO ,

m_pTI-»iWidth,

m_pTI-»iHeight,

m_pTI-»iBpp) ;

} else (

b = m_pDD-»SetWindowedMode (GetSafeHwnd () ,

m_pTI-»iWidth,

m_pTI-»iHeight) ;




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



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