Библиотека:
С. Трухильо
.
Графика для Windows, б-ка программиста
Содержание
Благодарности
Предисловие
Введение
Для чего написана эта книга
Требования к читателю
Программные требования
Аппаратные требования
Глава 1 • Краткий курс DirectDraw
Что такое DirectDraw?
Термины и концепции
Видеорежимы
Аппаратное ускорение
Поверхности
Блиттинг
Палитры
Отсечение
Другие типы поверхностей
Спецификация COM фирмы Microsoft
Объекты и интерфейсы
Интерфейс IUnknown
GUID
DirectDraw API
Интерфейсы DirectDraw и DirectDraw2
Интерфейсы DirectDrawSurface
Интерфейс DirectDrawPalette
Интерфейс DirectDrawClipper
Дополнительные интерфейсы DirectDraw
Структуры DirectDraw
Создание приложений DirectDraw
Оконные приложения
Полноэкранные приложения
Комбинированные приложения
Подготовка инструментов
Runtime-файлы DirectX
DirectX SDK
Visual C++
Windows NT и Windows 95
Заключение
Глава 2 • Проблемы быстродействия
Традиционная оптимизация
Действительно ли C++ медленнее C?
Не бойтесь плавающей точки
Аппаратная часть быстрее программной
Нехватка видеопамяти
FPS - еще не все
Полезные хлопоты с палитрами
Долой аппаратную зависимость!
Перестановка кресел на «Титанике»
Будущее DirectX
Заключение
Глава 3 • За кулисами DirectDraw
DirectDraw AppWizard
Создание приложения Bounce
Структура приложения
Назначение классов
Структура приложения
Специализированные классы
Инициализация
Инициализация DirectDraw
Получение списка драйверов DirectDraw
Выбор драйвера
Инициализация DirectDraw
Обнаружение видеорежимов
Выбор видеорежима
Активизация видеорежима
Создание поверхностей
Подготовка поверхностей
Функции для работы с поверхностями
Графический вывод
Функция DrawScene()
Функция BltSurface()
Восстановление поверхностей
Завершение
Оконные приложения
Структура приложения
Инициализация
Графический вывод
Заключение
Глава 4 • Видеорежимы и частота смены кадров
Переключение видеорежимов
Функция SetDisplayMode()
Обнаружение видеорежимов и частот смены кадров
Функция ActivateDisplayMode()
Программа Switch
Структура приложения
Вывод текста
Вычисление FPS
Класс SwitchWin
Инициализация приложения
Графический вывод
Обработка пользовательского ввода
Восстановление поверхностей
Частота смены кадров
Программа SuperSwitch
Класс SuperSwitchWin
Инициализация приложения
Графический вывод
Обработка пользовательского ввода
Заключение
Глава 5 • Поверхности и форматы пикселей
Поверхности
Глубина пикселей
Шаг поверхности
Форматы пикселей
Получение данных о формате пикселей
Переменные формата пикселей в классе DirectDrawWin
Блокировка поверхностей
BMP-файлы
Формат BMP-файлов
Структура заголовка
Палитра
Графические данные
Организация доступа к поверхностям
Функция CreateSurface()
Функция CreatePalette()
Передача графических данных
Программа BmpView
Прокрутка больших поверхностей
Проблемы с диалоговыми окнами
Определение класса
Инициализация приложения
Выбор и отображение BMP-файла
Графический вывод
Обработка пользовательского ввода
Заключение
Глава 6 • DirectInput
Что такое DirectInput?
Поддерживаемые устройства
Быстродействие
Схемы получения данных
Опросы и оповещения
Уровни кооперации
Данные об осевых смещениях
Захват устройств
DirectInput API
Интерфейс DirectInput
Интерфейс DirectInputDevice
Программа Qwerty
Класс QwertyWin
Инициализация DirectInput
Захват клавиатуры
Определение состояния клавиш
Завершение приложения
Управление версией DirectInput
Программа Smear
Структура приложения
Класс SmearWin
Инициализация DirectInput
Инициализация мыши
Инициализация клавиатуры
Захват мыши и клавиатуры
Получение данных от мыши
Завершение приложения
Заключение
Глава 7 • Проблема курсора
Частичное обновление экрана
Обновление курсора
Переключение страниц
Многопоточность
Потоки и процессы
Зачем нужна многопоточность?
Синхронизация потоков
Классы потоков в MFC
Решение проблемы курсора
Основной поток
Поток ввода
Что делать с кнопками мыши?
Программа Cursor
Класс CursorWin
Инициализация приложения
Функция DrawScene()
Поток ввода
Завершение приложения
Заключение
Глава 8 • Воспроизведение видеороликов
Начальные сведения
AVI-файлы
Представление данных в видеофайлах
Video For Windows
VFW API
Программа AviPlay
Класс AviPlayWin
Функция OnCreate()
Функция SelectInitialDisplayMode()
Функция ShowDialog()
Функция LoadAvi()
Функция CreateAviSurface()
Функция InstallPalette()
Функция DrawScene()
Функция UpdateAviSurface()
Функция RestoreSurfaces()
Обработка пользовательского ввода
Функция OnDestroy()
Заключение
Глава 9 • Проверка столкновений
Общее решение
Наглядное пояснение
Функции проверки столкновений
Класс Sprite
Программа Bumper
Класс BumperWin
Инициализация приложения
Функция DrawScene()
Функция OnKeyDown()
Восстановление потерянных поверхностей
Заключение
Приложение А • Информация для разработчиков
Отладка
Проблемы
Windows NT и Windows 95
Отладочные макросы
Удаленная отладка
Отладочные сообщения DirectX
Замечания о Visual C++
Прекомпилированные заголовки
Файлы DirectX SDK
Фокусы ClassView
Работа с Visual C++ 4.0
Варианты Visual C++
Советы и рекомендации
Ошибка переключения режимов DirectDraw
Символическая константа INITGUID (устаревшая)
Эмуляция версий
Где достать DirectX SDK