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

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

Гончаров Д., Салихо Т. DirectX 7.0 Для программистов — Спб.: Питер, 2001. — 528 c.
ISBN 5-318-00173-4
Скачать (прямая ссылка): dirext7dlyaprogrammistov2001.djvu
Предыдущая << 1 .. 65 66 67 68 69 70 < 71 > 72 73 74 75 76 77 .. 229 >> Следующая

Поля dckDestColorKey и dckSrcColorKey являются цветовыми ключами для приемника и источника.
Поле dwDDFX содержит флаги, определяющие, как именно происходит копирование данных на оверлей. Может принимать следующие значения:
DDOVERFXARITHSTRETCHY — флаг указывает на использование арифметического масштабирования по оси Y, если оно применяется.
DDOVERFXMIRRORLEFTRIGHT — флаг указывает на зеркальное копирование изображения по оси X.
DDOVERFX MIRRORUPDOWN — флаг указывает на зеркальное копирование изображения по оси Y.
Поле dwFl ags зарезервировано для флагов и в данной версии не используется.
Координаты оверлея
Каждый оверлей имеет свои координаты на экране. Две функции интерфейса IDirectDrawSurface, а именно GetOverlayPositionO и SetOverlayPositionO, предназначены для получения и установки координат оверлея.
Метод SetOverlayPositionO устанавливает координаты оверлея на экране с использованием только двух осей координат — X и Y.
HRESULT SetOverlayPosition(
LONG IX,
LONG 1Y
):
Параметры IX и 1Y являются координатами X и Y оверлея.
Метод GetOverlayPositionO, наоборот, получает эти координаты.
HRESULT GetOverlayPosition(
LPLONG lplX,
LPLONG 1 piY
>:
Параметры lplX и 1 piY являются указателями на переменные, в которых будут размещены текущие координаты оверлея.
Изменение z-координаты оверлея
Помимо двух координат плоской графики оверлеи имеют еще и z-координату, определяющую порядок размещения оверлейных поверхностей на экране. Если
Оверлеи
167
z-координата равна 0, это означает, что оверлей расположен в самом низу, то есть ближе к первичной поверхности. Чем больше значение z-координаты, тем выше располагается оверлей и тем дальше он находится от первичной поверхности. Если оверлей не имеет какого-либо значения для z-координаты, она устанавливается равной 0.
Для изменения текущей z-координаты используется метод IDirectDrawSurface7:: UpdateOverl ayZ0rder().
HRESULT UpdateOverlayZ0rder(
DWORD dwFlags.
LPDIRECTDRAWSURFACE7 1pDDSReference
):
В параметре dwFi ags передаются флаги, которые перечислены и описаны в табл. 6.3.
Параметр lpDDSReference является указателем на поверхность, по отношению к которой будет изменяться z-координата. Поверхность должна быть оверлеем.
Таблица б.З. Флаги, используемые в функции UpdateOverlayZOrderQ
Флаг Описание
DDOVERZINSERTINBACK0F Флаг указывает на то, что оверлей будет размещен позади поверхности, переданной в параметре lpDDSReference
DDOVERZINSERTINFR0NT0F Флаг указывает на то, что оверлей будет размещен перед поверхностью, переданной в параметре lpDDSReference
DD0VERZM0VEBACKWARD Флаг указывает на то, что оверлей переносится на одну позицию назад
DD0VERZ_M0VEF0RWARD Флаг указывает на то, что оверлей переносится на одну позицию вперед
DD0VERZSENDT0BACK Флаг указывает на то, что оверлей помещается в конец цепочки оверлеев
DD0VERZSENDT0FR0NT Флаг указывает на то, что оверлей помещается в начало цепочки оверлеев
Перечисление оверлеев
Как и все в DirectDraw, оверлеи могут быть перечислены. Для этого используется метод IDirectDraw7: :Enum0verlayZ0rders(). Он перечисляет все оверлеи в порядке их расположения по оси Z.
HRESULT Enum0verlayZ0rders(
DWORD dwFlags.
LPVOID lpContext.
LPDDENUMSURFACESCALLBACK2 lpfnCallback
);
Параметр dwFlags указывает, как именно происходит перечисление оверлеев — начиная с нижнего (DDENUM0VERLAYZBACKT0FR0NT) или верхнего (DDENUMOVERLAYZ_ FR0NTT0BACK).
Параметр lpfnCallback является указателем на функцию обратного вызова, которой передается управление каждый раз, как будет найден оверлей.
168
Урок б «Дополнительные возможности DirectDraw
Видеопорт
Одной из возможностей видеоадаптеров, появившейся в последнее время, стало наличие видеопорта. Видеопорт является устройством, передающим поток данных с источника на поверхность. В качестве источника может выступать любое аппаратное устройство, имеющее возможность передавать данные.
Что такое видеопорт
Объект DirectDrawVideoPort представляет собой инструмент для управления аппаратными видеопортами, которые могут присутствовать на видеоадаптере. При помощи этих портов видеосигнал принимается с передающей установки (например, с видеокамеры) и отправляется в буфер. DirectDrawVideoPort поддерживает несколько каналов для передачи видеоизображения, причем каждый из них может быть отдельно сконфигурирован и все они могут управляться независимо друг от друга.
Основной особенностью видеопорта является то, что данные на экран поступают без участия центрального процессора и шины PCI. Данные, полученные с видеопорта, можно вывести на экран как оверлей, использовать как текстуру в Direct3D или передать центральному процессору для захвата кадров.
Поток данных
Данные, переданные со своего источника, помещаются в буфер кадра, проходя через видеодекодер и видеопорт. Эти два компонента обычно сопровождают друг друга, но могут находиться и на различных аппаратных устройствах, последовательно присоединенных к компьютеру.
Видеоисточник
Источником видеоданных может быть любое устройство, подключенное к видеодекодеру. Примеров таких устройств множество: видеокамера, видеомагнитофон, MPEG-кодек и т. д. Источник может передавать видео в любом формате, которые понимает декодер: PAL, NTSC, SECAM.
Предыдущая << 1 .. 65 66 67 68 69 70 < 71 > 72 73 74 75 76 77 .. 229 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

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

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

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

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