netlib.narod.ru
< Назад |
Оглавление
| Далее >
Оглавление
Благодарности
Предисловие
Введение
Требования к читателю
Требования к программному обеспечению
Требования к аппаратуре
Глава 1. Краткий курс DirectDraw
Что такое DirectDraw?
Термины и концепции
Видеорежимы
Аппаратное ускорение
Поверхности
Блиттинг
Палитры
Отсечение
Другие типы поверхностей
Спецификация COM фирмы Microsoft
Объекты и интерфейсы
Интерфейс IUnknown
GUID
DirectDraw API
Интерфейсы DirectDraw и DirectDraw2
Функции создания интерфейсов
Функция GetCaps()
Функция SetCooperativeLevel()
Функции для работы с видеорежимами
Функции для работы с поверхностями
Функции для работы с частотой смены кадров
Функция GetFourCCCodes()
Интерфейсы DirectDrawSurface
Функции описания поверхностей
Функции блиттинга
Функция Flip()
Функции определения состояния поверхностей
Функции для работы с цветовыми ключами
Функции Lock() и Unlock()
Функции GetDC() и ReleaseDC()
Функции PageLock() и PageUnlock()
Функции IsLost() и Restore()
Функция GetDDInterface()
Функции присоединения поверхностей
Оверлейные функции
Функции для работы с объектами отсечения
Функции палитры
Интерфейс DirectDrawPalette
Интерфейс DirectDrawClipper
Дополнительные интерфейсы DirectDraw
Структуры DirectDraw
Создание приложений DirectDraw
Оконные приложения
Полноэкранные приложения
Комбинированные приложения
Подготовка инструментов
Runtime-файлы DirectX
DirectX SDK
Visual C++
Windows NT и Windows 95
Заключение
Глава 2. Проблемы быстродействия
Традиционная оптимизация
Действительно ли С++ медленнее С?
Не бойтесь плавающей точки
Аппаратная часть быстрее программной
Нехватка видеопамяти
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()
Передача графических данных
8-битные поверхности
16-битные поверхности
24-битные поверхности
32-битные поверхности
Программа 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
Индекс
netlib.narod.ru
< Назад |
Оглавление
| Далее >
Сайт управляется системой
uCoz