Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Задача:

1) Создать в видеопамяти оверлей средствами DirectDraw

в режиме fullscreen

2) Переключить оврелей в один из 2-х режимов:

РЕЖИМ 1: оврлей ложится как обои рабочего стола

(с помощью задание цвета приемника), как, например

делает winamp avs plugin в режиме destop overlay;

РЕЖИМ 2: оверлей остается активным, но никак не

выводится на экран;

3) Вывести на этот оврлей произвольный битмап

(изображение).

Основное и главное требование: Этот оверлей должен

корректно отображаться на экране телевизора,

подключенного к видеокарте через s-video выход.

Вывод должен производится на ТВ в режиме

видеокарты "Театр". Должно работать на Radeon 9550.

Подробнее о режиме "Театр": Режим поддерживается

современными видеокартами. При нем на на тв-выход

выводится только содержимое оверлея в памяти видекарты,

а не весь рабочий стол (как в режиме клон). Причем этот

оверлей может автоматически растягиваться по размерам

экрана ТВ (настраивается в драйверах,

опции "Окно"/"Overlays").

Например, в этом режиме при просмотре видео через

программу-плеер (используя оверлей) на ТВ экран будет

отображать только содержимое видеоокна плеера (без

рабочего стола).

Можно даже полностью свернуть плеер, скрыв оверлей с

рабочего стола, но на ТВ он по прежнему будет отображаться

фулскрин или нет (опционально).

Т.е. вышеперечисленные пункты должны генерировать

оверлей с изображением, который будет грамотно выводится

на ТВ в режиме видеокарты "Театр" (поддерживать

масштабирование).

Все это необходимо реализовать на Delphi.

Я пытался сам реализовать данный функционал, но ввиду

полного отсутствия опыта в работе с библиотекой DirectX

у меня возникла проблема, которую я не смог решить:

Оврлей на рабочем столе монитора выводился как надо,

НО в то же самое время на телевизоре отображался лишь

пустой прямоугольник оврелея, залитый цветом фона.

От исполнителя мне необходимы процедуры:

1) InitOverlay(width,height: integer);

Инициализация DirectX, создание поврехности.

width, height: размеры битмапа который будет выводится на

оверлей

2) ShowOverlay(mode: integer);

Активирует оверлей в режимах:

mode=1: скрытый

mode=2: на обои рабчего стола

4) DrawBitmap(Bitmap: TBitmap);

Выводит в оврелей изображение Bitmap (24 или 32 бит).

5) CloseOverlay();

18 лет назад
xanderz
Гость 
NaN летРоссия
18 лет в сервисе
Был
18 лет назад