Как включить Overlay?

3 ноября 2014 г. Просмотров: 1135
Оверлей представляет собой аппаратную функцию видеокарты, которая дает возможность наложения изображения на основной экран (первичную поверхность) без копирования видеопамяти. Наложение выполняют в цифроаналоговых преобразователях видеокарт (RAMDAC) в процессе создания отправляемых на монитор видеосигналов. RAMDAC в ходе процесса сканирует первичные поверхности построчно и переключается на изображение-оверлей, когда доходит до него.

Вам понадобится

  • -Набор спецэффектов из библиотек.

Инструкция

  • Для включения Overlay необходимо рассмотреть написание выводящей некие спецэффекты на поверхность рабочего стола программы, либо на места произвольных цветов (если посчитать основным режимом режим рисования на поверхности рабочего стола).
  • Выберите спецэффект. Касательно выбора спецэффектов особенно затрудняться не стоит — их можно просто позаимствовать в примерах к библиотекам FastLIB, к примеру — алгоритмы рисования огненного шара. После этого необходимо добавить к эффекту несложную систему частиц, и назвать полученный результат так, как это будет удобно. Инициализируйте DirectDraw. Инициализировать имеет смысл только первичные поверхности.
  • Проверьте возможность вывода оверлея и его создания. Для этого используйте функцию GetOverlayCaps. В GetOverlayCaps ничего сложного и интересного нет — он представляет собой перенос из DDCaps каждого связанного с оверлеев бита или значения в более структуру с большей компактностью — TOverlayCaps. Далее следует исправить размеры оверлея для того, чтобы они соответствовали полученным в ходе использования функции параметрам. В реальности вероятность успешного выполнения подобного кода крайне незначительна, поэтому особенно акцентировать на нем внимание не стоит — в частности, его размер не следует ограничивать во избежание замедленной работы, не обязательно проверять размеры в байтах на возможность проникнуть в содержимое видеопамяти и так далее.
  • В целом, проверку стоит проводить более для получения отчета, поскольку сам процесс создания оверлея делается методом полного перебора. Дело в том, что не существует и не создано никаких функций наподобие EnumOverlayFormats, поэтому пользователь должен проверить любой вообразимый формат и надеяться, что ему повезет. Существует, правда, функция IDirectDraw7GetFourCCCodes, которая предназначена для определения кода не-RGB формата (FourCC), но она включает не только необходимые YUV, но и формат сжатой текстуры, и прочие. Использовать весь список и определять каждый формат как YUV или не YUV представляется нерациональным.
  • Уберите изображение с рабочего стола, если таковое присутствует, и присвойте ему цвета DCK. Включите оверлей с цветом DCK. Оверлей будет включен и готов к работе. Визуальные эффекты его использования можно будет оценить после сворачивания всех рабочих окон.
  • Оцените статью!