2012-05-18 2 views
0

В настоящее время я работаю над новым приложением на работе и мне нужна помощь.xna 4 взятие desktop screenshot

В основном мне нужно снимать скриншоты в реальном времени приложения, работающего на рабочем столе пользователей (а не в моем приложении), а затем деформировать изображение с помощью тени и отображать завернутый снимок экрана со скоростью 60 кадров в секунду.

У меня есть приложение для окон, которое делает это, но я получаю 6 кадров в секунду, и когда я масштабирую его до 1600x1600, он падает до 2 кадров в секунду.

Так что я думал, что если бы я мог сделать это в xna и как можно больше переместиться на GPU, это ускорит его.

Итак, у меня есть googled и googled и не могу найти какую-либо информацию о том, как получить скриншот работающего приложения в xna, отличном от моего приложения xna.

Спасибо за любую помощь.

ответ

1

Вы можете использовать XNA или дополнительно DWM или GDI+, чтобы получить полный рабочий стол. Вот некоторые ссылки, которые могут помочь вам:

Я думаю, что нет никакого способа, чтобы получить скриншот окна из другое приложение. Вы можете использовать код обнаружения кода, чтобы узнать, где находится окно, но я не рекомендую это.

+0

Я могу получить рабочий стол с помощью C# и GDI + в качестве растрового изображения, но это очень медленно, и я не знаю, как отредактировать изображение, используя шейдер, без текстуры. –

+1

GDI + медленный, я не знаю другого пути ... Чтобы сделать текстуру из растрового изображения, возможно, эта ссылка поможет: [Как получить Texture2D из переменной Bitmap?] (Http://forums.create.msdn.com /forums/p/3051/15056.aspx) – pearcoding