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