 |  |
 |  | |  | | К списку
Юань Ф. Издательский дом «Питер».
Мнение о книге на Королевстве...
Все дополнительные материалы предоставлены издательством специально для раздела «Библиотека». «Королевство Delphi» благодарит за помощь
fengyuan01.rar 489Kfengyuan02.rar 489Kfengyuan03.rar 489Kfengyuan04.rar 489Kfengyuan05.rar 358K
Главы из книги
Содержание
Благодарности
Введение
О чем эта книга
Как организована эта книга
Как читать эту книгу
Что находится на компакт-диске
Что дальше?
От издательства
Глава 1. Основные принципы и понятия
- Основы программирования для Windows на C/C++
- Hello World, версия 1: запуск браузера
- Hello World, версия 2: вывод текста на рабочем столе
- Hello, World, версия 3: создание полноэкранного окна
- Hello, World, версия 4: вывод средствами DirectDraw
- Ассемблер
Среда программирования
- Разработка и тестирование
- Компиляторы
- Microsoft Platform SDK
- Microsoft Driver Development Kit
- Microsoft Developer Network
- Формат исполняемых файлов Win32
- Каталог импорта
- Каталог экспорта
- Архитектура операционной системы Microsoft Windows
- HAL
- Микроядро
- Драйверы устройств
- Управление окнами и графическая система
- Исполнительная часть
- Системные функции
- Системные процессы
- Службы
- Платформенные подсистемы
- Итоги
- Примеры программ
Глава 2. Архитектура графической системы Windows
- Компоненты графической системы Windows
- Мультимедиа
- Video for Windows
- Still Image
- OpenGL
- Windows Media
- Компоненты режима ядра
- Драйверы режима ядра
- Архитектура GDI
- Функции, экспортируемые из GDI32.DLL
- Группы функций GDI
- Вызовы системных функций GDI
- От Win32 GDI API к системным функциям механизма GDI
- Архитектура DirectX
- Компоненты DirectX
- Архитектура DirectDraw
- Архитектура системы печати
- Клиент спулера Win32
- Служба спулера
- Маршрутизатор спулера
- Провайдер печати
- Процессор печати
- Языковой монитор и монитор порта
- Процесс спулера изнутри
- Графический механизм
- Системные функции графического механизма
- Механизм графической визуализации
- Структуры данных графического механизма
- Преобразование в примитивы
- Шрифтовые драйверы
- Драйверы экрана
- Драйвер видеопорта и мини-драйвер видеопорта
- Назначение драйвера экрана
- Инициализация драйвера экрана
- Вывод на поверхность, перехват и возврат
- Дополнительные возможности драйвера
- Поддержка DirectDraw/Direct3D на уровне драйвера экрана
- Драйверы принтеров
- Управляющие драйверы принтеров от Microsoft
- Графическая библиотека DLL драйвера принтера
- Драйвер принтера для вывода документа HTML
- Итоги
- Примеры программ
Глава 3. Внутренние структуры данных GDI/DirectDraw
- Манипуляторы и объектно-ориентированное программирование
- Класс и объект
- Инкапсуляция и маскировка реализации
- Указатели и манипуляторы
- Тождественное отображение
- Табличное отображение
- Когда манипулятора недостаточно
- Расшифровка манипуляторов объектов GDI
- Манипуляторы стандартных объектов - константы
- HGDIOBJ не является указателем
- Максимальное количество манипуляторов GDI на уровне процесса - 12 000
- Максимальное количество манипуляторов GDI на уровне системы - 16 384
- Часть HGDIOBJ содержит индекс
- Часть HGDIOBJ содержит тип объекта GDI
- Поиск таблицы объектов GDI
Расшифровка таблицы объектов GDI
- Указатель pKernel ссылается на выгружаемый пул
- Поле nCount иногда используется как счетчик выбора объектов
- Поле nProcess связывает манипулятор GDI с конкретным процессом
- nUpper: дополнительная проверка
- nType: внутренний тип объекта
- pUser: указатель на структуру данных пользовательского режима
- Структуры данных пользовательского режима
Структура данных пользовательского режима для кистей:
- оптимизация создания однородных кистей
- Структура данных пользовательского режима для регионов:
- оптимизация прямоугольных регионов
- Структура данных пользовательского режима для шрифтов:
- таблица значений ширины
- Структура данных пользовательского режима для контекста устройства:
- атрибуты
- Обращение к адресному пространству режима ядра
WinDbg и расширение отладчика GDI
Структуры данных режима ядра
- Таблица объектов GDI в механизме GDI
- Типы объектов GDI в механизме GDI
- Контекст устройства в механизме GDI
- Структура PDEV в механизме GDI
- Поверхности в механизме GDI
- Аппаратно-зависимые растры в механизме GDI
- DIB-секции в механизме GDI
- Кисти в механизме GDI
- Перья в механизме GDI
- Палитры в механизме GDI
- Регионы в механизме GDI
- Траектории в механизме GDI
- Шрифты в механизме GDI
- Другие объекты GDI в механизме GDI
- Структуры данных DirectDraw
Итоги
- Примеры программ
Глава 4. Мониторинг графической системы Windows
- Отслеживание вызовов функций Win32 API
- Построение программы мониторинга
- Внедрение DLL-разведчика
- Подключение к цепочке вызовов функций API
- Сбор информации
- Вывод данных
- Управляющая программа
- Отслеживание вызовов Win32 GDI
- Файл определения GDI API
- Декодер данных GDI
- Полный мониторинг API
- Отслеживание COM-интерфейсов DirectDraw
- Таблица виртуальных функций
- Определение DirectDraw API
- Модификация таблицы виртуальных функций
- Отслеживание системных вызовов GDI
Отслеживание интерфейса DDI
Итоги
- Примеры программ
Глава 5. Абстракция графического устройства
- Современные видеоадаптеры
- Кадровый буфер
- Формат пикселов
- Двойная буферизация, z-буфер и текстуры
- Аппаратное ускорение
- Экранное устройство и перечисление режимов
- Контекст устройства
- Создание контекста устройства
- Получение информации о возможностях устройства
- Атрибуты в контексте устройства
- Связь контекста устройства с окном
- Графический вывод в многооконной среде
- Получение контекста устройства, связанного с окном
- Общий контекст устройства
- Классовый контекст устройства
- Закрытый контекст устройства
- Родительский контекст устройства
- Прочие контексты устройств
- Информационный контекст устройства
- Совместимый контекст устройства
- Метафайловый контекст устройства
- Формальное представление контекста устройства
Пример: родовой класс рамочного окна
- Класс панели инструментов
- Класс строки состояния
- Класс холста
- Класс рамочного окна
- Тестовая программа
- Пример программы: графический вывод в контексте устройства
- Обновляемый регион окна
- Сообщение WM_PAINT
- Наглядное представление сообщений перерисовки окна
- Итоги
- Примеры программ
Глава 6. Системы координат и преобразования
- Физическая система координат
Система координат устройства
Страничная система координат и режимы отображения
- Режим отображения MM_TEXT
- Режимы отображения MM_LOENGLISH и MM_HIENGLISH
- Режимы отображения MM_LOMETRIC и MM_HIMETRIC
- Режим отображения MM_TWIPS
- Режим отображения MM_ISOTROPIC
- Режим отображения MM_ANISOTROPIC
- Базовые точки окна и области просмотра
- Другие функции окна и области просмотра
- Мировая система координат
- Аффинные преобразования
- Функции мировых преобразований в Win32 API
- Использование мировых преобразований
- Использование систем координат
- Реализация преобразований в GDI
- Пример программы: прокрутка и масштабирование
- Игра го в классе KScrollCanvas
- Итоги
- Примеры программ
Глава 7. Пикселы
- Объекты GDI, манипуляторы и таблица объектов
- Хранение объектов GDI
- Таблица объектов GDI
- Манипулятор объекта GDI
- API объектов GDI
- Обнаружение утечки объектов GDI
- Отсечение
- Конвейер отсечения
- Простые регионы
- Регион отсечения
- Метарегион
- Пять регионов контекста устройства
- Наглядное представление регионов в контексте устройства
- Цвет
- Цветовое пространство RGB
- Цветовое пространство HLS
- Индексируемые цвета и палитры
- Нетривиальные возможности
- Вывод пикселов
Пример: множество Мандельброта
Итоги
- Примеры программ
Глава 8. Линии и кривые
- Бинарные растровые операции
Режим заполнения фона и цвет фона
Перья
- Объект логического пера
- Стандартные перья
- Простые перья
- Расширенные перья
- Получение информации о логических перьях
- Класс для работы с объектами перьев GDI
- Линии
Кривые Безье
- PolyDraw
- Альтернативное определение кривых Безье
- Дуги
- Определение дуги в градусах: функция AngleArc
- Рисование дуг пером со стилем PS_INSIDEFRAME
- Преобразование дуг в кривые Безье
- Траектории
- Построение траектории
- Получение информации о траектории
- Преобразование объекта траектории
- Графические операции с использованием траекторий
- Преобразование пути в регион
- Пример: рисование нестандартных стилевых линий
Итоги
- Пример программы
Глава 9. Замкнутые области
- Кисти
- Объект логической кисти
- Стандартные кисти
- Пользовательские кисти
- Кисти системных цветов
- Структура LOGBRUSH
- Прямоугольники
- Прямоугольник как структура данных
- Рисование прямоугольников
- Прорисовка границ и элементов управления
- Эллипсы, секторы, сегменты и закругленные прямоугольники
Многоугольники
- Режим заполнения многоугольников
- Замкнутые траектории
Регионы
- Создание объекта региона
- Операции с объектами регионов
- Прорисовка регионов
- Градиентные заливки
- Градиентная заливка прямоугольников
- Применение градиентных заливок для создания объемных кнопок
- Практическое использование заливок
- Полупрозрачная заливка
- Реализация градиентных заливок в цветовом пространстве HLS
- Радиальные градиентные заливки
- Текстурные и растровые заливки
- Узорные заливки
- Итоги
- Пример программы
Глава 10. Основные сведения о растрах
- Аппаратно-независимые растры
- Файловый формат BMP
- Упакованный аппаратно-независимый растр
- Разделенный аппаратно-независимый растр
- Класс для работы с DIB
Отображение DIB в контексте устройства
- StretchDIBits
- Исходный прямоугольник
- Приемный прямоугольник и режимы масштабирования
- Преобразование цветового формата
- Растровая операция
- Пример использования функции StretchDIBits
- SetDIBitsToDevice
- Совместимые контексты устройств
Аппаратно-зависимые растры
- CreateBitmap
- CreateBitmapIndirect
- GetObject и DDB
- CreateCompatibleBitmap и CreateDiscardableBitmap
- CreateDIBitmap
- LoadBitmap
- Копирование растров между форматами DIB и DDB
- Прямой доступ к массиву пикселов DDB
- Использование DDB-растров
- Отображение DDB-растров
- Использование растров в меню
- Использование растра в качестве фона окна
- CreateDIBSection
- Класс для работы с DIB-секциями
- Функции GetObjectType и GetObject для DIB-секций
- GetDIBColorTable и SetDIBColorTable
- Применение DIB-секций: аппаратно-независимый вывод
- Применение DIB-секций: вывод в высоком разрешении
- Итоги
- Примеры программ
Глава 11. Нетривиальное использование растров
- Тернарные растровые операции
- Коды растровых операций
- Диаграмма тернарных растровых операций
- Часто используемые растровые операции
- Прозрачные растры
- Функция PlgBlt
- Кватернарные растровые операции: MaskBlt
- Цветовые ключи: TransparentBlt
- Прозрачность без маски
- Прозрачный вывод с использованием геометрических фигур
- Прозрачный вывод с использованием отсечения
- Предварительная подготовка изображений
- Альфа-наложение
- Пример альфа-наложения с постоянным коэффициентом
- Постепенное проявление и исчезновение растров
- Прозрачные окна
- Альфа-канал: класс AirBrush
- Имитация альфа-наложения
- Итоги
- Примеры программ
Глава 12. Графические алгоритмы и растры Windows
- Прямой доступ к пикселам
Аффинные преобразования растров
Быстрые специализированные преобразования растров
Преобразования цветов
- Преобразование растров в оттенки серого
- Гамма-коррекция
- Преобразование пикселов в растрах
- Родовой класс преобразований пикселов
- Родовой класс цветоделения
- Пример выделения каналов
- Гистограмма
- Пространственные фильтры
- Фильтры сглаживания и резкости
- Выделение границ и рельеф
- Морфологические фильтры
- Итоги
- Примеры программ
Глава 13. Палитры
- Системная палитра
- Параметры экрана
- Получение системной палитры
- Статические цвета
- Логическая палитра
- Палитра по умолчанию
- Полутоновая палитра
- Создание специализированной палитры
- Сообщения палитры
- WM_QUERYNEWPALETTE
- WM_PALETTEISCHANGING
- WM_PALETTECHANGED
- Тестовая программа
- Палитра и растры
- Аппаратно-зависимые растры и палитры
- Аппаратно-независимые растры и палитры
- Индекс палитры в цветовой таблице DIB
- DIB-секции и палитра
- Квантование цветов
Сокращение цветовой глубины растра
Итоги
- Пример программы
Глава 14. Шрифты
- Что такое шрифт?
- Наборы символов и кодировки
- Глифы
- Шрифт
- Семейство шрифтов и начертание
- Растровые шрифты
Векторные шрифты
Шрифты TrueType
- Формат файлов шрифтов TrueType
- Заголовок шрифта
- Максимальный профиль
- Отображение символов в индексы глифов
- Индексная таблица
- Данные глифов
- Инструкции глифа
- Горизонтальные метрики
- Кернинг
- Метрики OS/2 и Windows
- Другие таблицы
- Коллекции TrueType
- Установка и внедрение шрифтов
- Ресурсные файлы шрифтов
- Установка открытых шрифтов
- Установка закрытых шрифтов и шрифтов Multiple Master OpenType
- Установка шрифтов из образа в памяти
- Внедрение шрифтов
- Системная таблица шрифтов
- Итоги
- Примеры программ
Глава 15. Текст
- Логические шрифты
- Метрики шрифтов в Windows
- Стандартные шрифты
- Создание логических шрифтов
- Подстановка шрифта
- Система подстановки шрифтов PANOSE
- Получение информации о логическом шрифте
- Метрики растровых и векторных шрифтов
- Метрики шрифтов TrueType/OpenType
- Структура LOGFONT и метрики шрифта
- Точность шрифтовых метрик
- Простой вывод текста
- Выравнивание текста
- Вывод текста справа налево
- Дополнительные интервалы
- Ширина символа
- Нетривиальный вывод текста
- Преобразование символов в глифы
- Кернинг
- Расположение символов
- Функция ExtTextOut
- Uniscribe
- Доступ к данным глифов
- Форматирование текста
- Вывод текста с табуляцией
- Простое абзацное форматирование
- Аппаратно-независимое форматирование текста
- Эффекты при выводе текста
- Цвет текста
- Начертания
- Геометрические эффекты
- Работа с текстом в растровом формате
- Текст как совокупность кривых
- Текст как регион
- Итоги
- Пример программы
Глава 16. Метафайлы
- Общие сведения о метафайлах
- Создание расширенного метафайла
- Воспроизведение расширенного метафайла
- Получение информации о расширенном метафайле
- Передача расширенных метафайлов
- Строение расширенных метафайлов
- Записи EMF
- Классификация типов записей EMF
- Расшифровка записей EMF
- Простые объекты GDI в EMF
- Растры в EMF
- Регионы в EMF
- Траектории в EMF
- Палитры в EMF
- Системы координат в EMF
- Команды вывода в EMF
- Аппаратная независимость EMF
- Перечисление записей EMF
- Класс C++ для перечисления записей EMF
- Замедленное воспроизведение EMF
- Трассировка воспроизведения EMF
- Динамическое изменение EMF
- Построение производных метафайлов
- EMF как средство программирования
- Декомпилятор EMF
- Сохранение EMF-файла спулера
- Итоги
- Дополнительная информация
- Примеры программ
Глава 17. Печать
- Знакомство со спулером
- Процесс печати
- Язык управления принтером
- Прямой вывод в порт
- Печать с использованием спулера
- Процессор печати EMF
- Перечисление принтеров
- Получение информации о принтере
- Настройка драйвера принтера
- Базовая печать средствами GDI
- Стандартные диалоговые окна печати
- Создание контекста устройства принтера
- Получение информации о контексте устройства принтера
- Последовательность формирования заданий печати
- Поддержка печати в программах
- Единая логическая система координат
- Имитация внешнего вида страницы
- Одновременный вывод страниц
- Печать нескольких страниц на одном листе
- Родовой класс печати
- Вывод в контексте устройства принтера
- Единицы измерения
- Текст
- Растры
- Печать графики в формате JPEG
- Итоги
- Дополнительная информация
- Примеры программ
Глава 18. DirectDraw и непосредственный режим Direct3D
- Технология COM
- COM-интерфейсы
- COM-классы
- Создание COM-объекта
- HRESULT
- DirectX и COM
- Общие сведения о DirectDraw
- Интерфейс IDirectDraw7
- Интерфейс IDirectDrawSurface7
- Вывод на поверхности DirectDraw
- Подбор цветов
- Интерфейс IDirectDrawClipper
- Простое окно DirectDraw
- Построение графической библиотеки DirectDraw
- Вывод пикселов
- Вывод линий
- Заливка замкнутых областей
- Отсечение
- Внеэкранные поверхности
- Поддержка прозрачности посредством цветовых ключей
- Шрифт и текст
- Спрайты
- Непосредственный режим Direct3D
- Подготовка среды непосредственного режима Direct3D
- Изменение размеров окна
- Двухэтапный вывод
- Использование Direct3D в окне
- Текстурные поверхности
- Пример использования непосредственного режима Direct3D
- Итоги
- Примеры программ
Алфавитный указатель
|
|
| |  |  |  | |
 |  |
Время на сайте: GMT минус 5 часов
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.
©
При использовании любых материалов «Королевства Delphi»
необходимо указывать источник информации.
Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются
собственностью их производителей.