Стэн Трухильо - Графика для Windows средствами DirectDraw

Здесь есть возможность читать онлайн «Стэн Трухильо - Графика для Windows средствами DirectDraw» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Графика для Windows средствами DirectDraw: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Графика для Windows средствами DirectDraw»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Графика для Windows средствами DirectDraw — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Графика для Windows средствами DirectDraw», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать
Рис 42 Программа SuperSwitch Отличия начинаются с того что классы в этой - фото 12

Рис. 4.2. Программа SuperSwitch

Отличия начинаются с того, что классы в этой программе называются SuperSwitchWinи SuperSwitchApp(вместо SwitchWinи SwitchApp). Класс SuperSwitchWinпохож на SwitchWin, но в нем имеется несколько новых функций и переменных. Давайте посмотрим, что же изменилось. Объявление класса SuperSwitchWinприведено в листинге 4.6.

Листинг 4.6. Объявление класса SuperSwitchWin

class SuperSwitchWin : public DirectDrawWin {

public:

SuperSwitchWin();

protected:

//{{AFX_MSG(SuperSwitchWin)

afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

private:

int SelectDriver();

int SelectInitialDisplayMode();

BOOL CreateCustomSurfaces();

static HRESULT WINAPI StoreModeInfo(LPDDSURFACEDESC, LPVOID);

void DrawScene();

void RestoreSurfaces();

BOOL CreateModeMenuSurface();

BOOL UpdateModeMenuSurface();

BOOL CreateRateMenuSurface();

BOOL UpdateRateMenuSurface();

BOOL CreateFPSSurface();

BOOL UpdateFPSSurface();

private:

LPDIRECTDRAWSURFACE bmpsurf;

int x,y;

int xinc, yinc;

LPDIRECTDRAWSURFACE modemenusurf;

int selectmode;

LPDIRECTDRAWSURFACE ratemenusurf;

int selectrate;

int numrates;

BOOL ratemenu_up;

LPDIRECTDRAWSURFACE fpssurf;

RECT fpsrect;

BOOL displayfps;

DWORD framecount;

BOOL include_refresh;

CArray refresh_rates[MAXDISPLAYMODES];

HFONT smallfont, largefont;

};

Отличия начинаются с функции OnCreate(). Мы переопределяем функцию DirectDrawWin::OnCreate()так, чтобы перед инициализацией DirectDraw в ней выводилось диалоговое окно (в котором можно отключить изменение частоты смены кадров).

Другая новая функция — StoreModeInfo(). Эта функция косвенного вызова вызывается при составлении списка частот каждого видеорежима. Как говорилось в главе 3, класс DirectDrawWinимеет для этой цели собственную функцию косвенного вызова ( DisplayModeAvailable()). Вместо того чтобы изменять класс DirectDrawWin, мы воспользуемся функцией StoreModeInfo(), приспособленной для целей конкретного приложения. Это означает, что список видеорежимов будет составляться дважды: сначала без частот смены кадров (класс DirectDrawWin), а потом с частотами (класс SuperSwitchWin).

Далее в списке идут четыре новые функции:

• CreateModeMenuSurface()

• UpdateModeMenuSurface()

• CreateRateMenuSurface()

• UpdateRateMenuSurface()

Функции CreateModeMenuSurface()и UpdateModeMenuSurface() — это просто переименованные функции CreateMenuSurface()и UpdateMenuSurface()из программы Switch. Их пришлось переименовать, потому что теперь существуют две поверхности меню: одна — для видеорежимов, а другая — для частот смены кадров. Функции CreateModeMenuSurface()и UpdateModeMenuSurface()работают с поверхностью меню видеорежимов. Две новые функции, CreateRateMenuSurface()и UpdateRateMenuSurface(), предназначены для работы с поверхностью меню частот.

Теперь давайте рассмотрим новые и изменившиеся переменные класса. Указатель menusurfиз программы Switch был переименован в modemenusurfпо той же причине, по которой были переименованы функции для работы с поверхностью меню видеорежимов. Далее в классе появились шесть новых переменных. Я снова приведу объявления новых переменных класса из листинга 4.6:

LPDIRECTDRAWSURFACE ratemenusurf;

int selectrate;

int numrates;

BOOL ratemenu_up;

BOOL include_refresh;

CArray refresh_rates[MAXDISPLAYMODES];

Переменная ratemenusurfпредставляет собой указатель на интерфейс DirectDrawSurfaceи используется для работы с поверхностью меню частот. В целых переменных selectrateи numratesхранятся соответственно текущая выделенная частота и общее количество отображаемых частот. Логическая переменная ratemenu_upпоказывает, отображается ли меню частот в данный момент.

Значение логической переменной include_refreshопределяется выбором пользователя, сделанным в окне диалога при старте программы. Если эта переменная равна TRUE, программа создает и выводит меню со списком частот для каждого выделенного видеорежима. Если переменная равна FALSE, частоты не отображаются. Наконец, массив refresh_ratesпредназначен для хранения возможных частот каждого видеорежима. Содержимое массива определяется с помощью косвенно вызываемой функции StoreModeInfo()и используется функцией UpdateRateMenusurface().

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Графика для Windows средствами DirectDraw»

Представляем Вашему вниманию похожие книги на «Графика для Windows средствами DirectDraw» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Графика для Windows средствами DirectDraw»

Обсуждение, отзывы о книге «Графика для Windows средствами DirectDraw» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x