Взаимодействие GDI+ и рабочего стола
На самом деле это не вопрос кодирования, скорее я пытаюсь понять, почему происходит следующее. Хотя если бы кто-то мог предложить решение, это было бы фантастически.
Я написал заставку с использованием Winforms и GDI+ , которая рисует фигуры в буфер с ручным управлением, а затем рендерит готовое изображение в форму. Все работает так, как задумано. (вещи летают по экрану)
В качестве последующей мысли я решил добавить движущуюся "шпионскую дыру", которая использует ключ прозрачности форм, чтобы прорезать рабочий стол под моей формой.
Это также прекрасно работает, но вводит "прерывистость" в анимацию. После выполнения некоторых тестов с функцией секундомера: это не сводится к чрезмерной нагрузке, размещенной на системе. Для рендеринга моей "шпионской дыры" требуется около 5000 тиков. Я также пробовал различные варианты композитинга и сглаживания практически без эффекта.
Заставка работает со скоростью около 30 кадров в секунду и настраивается в зависимости от производительности системы, чтобы поддерживать это.
Я предполагаю, что проблема вызвана тем, что рабочий стол перекрашивается независимо от моей формы и вызывает паузы во время этого? Или может быть другая причина?
Что я уже пробовал:
Включено в описание проблемы.