2013-10-04 98 views
4

我試圖看看是否有可能製作一個窗口(或甚至mac/linux的事情)應用程序,將後處理所有在屏幕上的應用程序。如果可能的話,我希望能夠使用glsl着色器執行諸如顏色反轉和sobel過濾之類的操作。有誰知道這可以做到嗎?後處理窗口視頻輸出

+0

既然你正在討論這個可移植性,我想你會想在許多窗口管理器中處理曲面的方式。在合成窗口管理器(大多數新窗口屬於此類別)下,當前/後緩衝區交換時,窗口管理器使用後臺緩衝區表面的副本,使用傳統API(如OpenGL或D3D)來製作奇特的3D效果。不幸的是,在Windows中,DWM不直接公開它直接使用的曲面,用公共API可以做的最好的方法是獲取應用程序中任意窗口的縮略圖。 –

+0

有一些未公開的DWM API調用可以幫助您,即'UpdateWindowShared(...)'和'GetSharedSurface(...)'。我知道至少有一種商業產品實際上使用了這些產品,並且您可能會在網上找到一些成功使用該API的未公開部分的人的示例,但主要問題是您將面臨D3D表面互操作。很可能會在OpenGL中做到這一點很困難。 –

回答

0

用於linux的Compiz compositor看起來像它可以做你想做的。它包含許多後期處理效果(包括插件),並允許您通過自定義插件添加自己的插件。看起來這些插件可以使用GLSL像素着色器。

this site,下面的命令應該建立CompizConfig設置管理器在Ubuntu 13.04

sudo apt-get install synaptic 
sudo apt-get install compizconfig-settings-manager compiz-plugins-extra 

希望這提供了一個有益的起點爲您的項目!

聲明:我還沒有真正使用過Compiz。我將我的描述放在我可以在網上找到的地方。