Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Графика -> Гончаров Д. -> "DirectX 7.0 Для программистов" -> 25

DirectX 7.0 Для программистов - Гончаров Д.

Гончаров Д., Салихо Т. DirectX 7.0 Для программистов — Спб.: Питер, 2001. — 528 c.
ISBN 5-318-00173-4
Скачать (прямая ссылка): dirext7dlyaprogrammistov2001.djvu
Предыдущая << 1 .. 19 20 21 22 23 24 < 25 > 26 27 28 29 30 31 .. 229 >> Следующая

VOID ZeroMemoryCPVOID Destination. DWORD Length);
Родственная ей функция позволяет копировать участки памяти:
VOID CopyMemoryCPVOID Destination, CONST VOID *Source, DWORD Length );
Эти функции нам потребуются впоследствии.
Что дальше
Несколько рекомендаций перед тем, как двигаться дальше:
О На данном этапе желательно разобраться со средой программирования, в которой вы работаете. Для использующих Visual C++ краткий обзор приведен в приложении А.
О Попытайтесь изменить программу, приведенную в листинге 1.1, так, чтобы она выполнялась не в полноэкранном режиме, а в отдельном окне. Поэкспериментируйте с параметрами создания окна. Включите в оконную процедуру обработку сообщения WM CL0SE.
О На досуге изучите содержимое каталога INCLUDE, обращая внимание на файлы, начинающиеся со слова WIN (особенно те, что упоминались в этом уроке). Несмотря на то что в первый раз их содержимое выглядит не особенно понятным, эти файлы прямо-таки напичканы полезной информацией.
Подводя итоги
В этом уроке мы изучили:
0 Структуру и составные части минимальной программы для Windows, которую будем использовать далее.
0 Основные оконные сообщения и способы их обработки в программе.
0 Возможности Win32 для файлового ввода/вывода.
0 Способы преобразования строк ANSI в Unicode и обратно.
Программирование УРОК графики с использованием GDI
В этом уроке нами будут рассмотрены темы, связанные с традиционным программированием графики для Windows: использование контекстов устройств, работа с аппаратно-независимыми растрами и манипулирование шрифтами. Не пропускайте этот урок только потому, что раньше вы, возможно, работали с GDI. Здесь мы рассматриваем концепции, которые потребуются впоследствии — уже при создании DirectX-приложений.
Управление графикой в операционных системах семейства Windows традиционно представлено одним из трех базовых компонентов — GDI. Два других компонента, Kernel и User, отвечают за управление памятью, файловый ввод/вывод, взаимодействие с пользователем и др. Интерфейс графических устройств (Graphics Device Interface — GDI) представляет собой часть операционной системы, реализованную, как и большинство ее компонентов, в виде динамически подключаемой библиотеки и обеспечивающую аппаратно-независимую графику для приложений. Аппаратная независимость подразумевает возможность отображения графики на обширном классе устройств, причем программе нет необходимости знать и учитывать особенности того или иного устройства, например, конкретного монитора. Выполняя одни и те же действия, программа сможет отобразить (с различным качеством, естественно) свой графический вывод и на мониторе SuperVGA, и на старом EGA при условии, что оба они работают под Windows и для них установлены соответствующие драйверы.
Вывод может осуществляться на любое устройство вывода, поддерживаемое Windows. Это может быть монитор, принтер, плоттер или что-то другое. Для программиста GDI представляет собой развитой язык описания графики, поддерживающий как базовые операции — изменение цвета пикселей, рисование прямых, окружностей, прямоугольников, надписей, так и более сложные действия — копирование участков изображения, создание регионов, отсечений, отображение
56
Урок 2 • Программирование графики с использованием GDI
сплайнов Безье и многое другое. Слово «многое» здесь не фигура речи. GDI представляет собой одну из самых мощных (и массивных) составляющих Windows API. Только для работы с текстом существует более сорока (40!) функций. Впрочем, положение облегчается тем, что в большинстве приложений используется лишь малая часть всего этого многообразия.
GDI многословен, как большинство графических языков высокого уровня, но не это является его главной проблемой. Считается, что одна из основных проблем GDI — его медлительность. Это верно, но лишь отчасти. Конечно, система, создававшаяся в эйфории полной аппаратной независимости и универсальности, не может превосходить в своей производительности системы, учитывающие конкретные особенности аппаратной части. Однако любой человек, использующий компьютер достаточно долго, может привести пару-тройку примеров программ, активно использующих GDI и работающих при этом с приемлемым быстродействием. Отдельные авторы книг по программированию даже утверждают, что работа с GDI позволяет получить ту же скорость графического вывода, что и прямой доступ к видеопамяти. Это заявление чересчур оптимистично, но выражает настроения определенной части программистов. Действительно, имея богатый опыт использования GDI, накопив набор приемов обхода его медлительности (например, за счет использования собственных алгоритмов графического вывода, или, наоборот, за счет отказа от применения откровенно медленных процедур вывода), можно создавать конкурентоспособные программы, но, к сожалению, только не в области создания игровых программ. Отлично структурированная, использующая быстрые алгоритмы, GDI-программа по скорости вывода всегда будет уступать аналогичной DirectX-программе.
После всего вышесказанного напрашивается вопрос — а стоит ли вообще тратить время на освоение, пусть даже основ, графической системы, которая изначально признается медленной? Ответ — да, стоит. Хотя бы потому, что СОЬфункции активно используются совместно с функциями DirectX в примерах, поставляемых вместе с MS DirectX SDK. Более того, они (функции GDI и примеры в целом) обеспечивают неплохое быстродействие при минимуме затрат на кодирование. Это, например, функции для работы со шрифтами, аппаратно-независимыми растрами (Device Independent Bitmap — DIB) и др. Эти функции и будут рассмотрены в данном уроке.
Предыдущая << 1 .. 19 20 21 22 23 24 < 25 > 26 27 28 29 30 31 .. 229 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.