如何扭曲桌面屏幕

Hai*_*ang 5 windows opengl graphics

我想更改桌面屏幕的形状,因此桌面上显示的内容将同时变形。用户仍然可以在变形的桌面上用鼠标操作PC(运行应用程序,打开“我的电脑”,依此类推)。我想我必须首先获取屏幕坐标的投影矩阵。然后变换矩阵,并将桌面缓冲区图像映射到变形的网格。是否有任何界面可以修改OpenGL或DirectX中桌面屏幕的形状?请给我一些提示。提前非常感谢您。

请参考http://oi53.tinypic.com/bhewdx.jpg中的图片

海丰

加法1:

对不起!也许我没有明确表达我要实现的目标。我要实现的是修改屏幕的形状。因此,我们可以扭曲同时在Windows上运行的所有应用程序的形状。例如,“我的电脑”的窗口将因桌面屏幕的变形而失真。而且,我们仍然可以在变形的桌面上用鼠标操作PC(单击快捷方式以运行程序)。

加法2: 投影矩阵只是我的假设。没有任何桌面投影矩阵可以将桌面表面投射到屏幕上。我要实现的是更改桌面的形状,就像将桌面映射到3D网格一样。但是用户仍然可以在变形的桌面上操作操作系统(单击快捷方式以运行程序,打开ie即可上网)。

添加3: OS上运行的所有程序的形状都随着屏幕的变形而改变。这是实时的。用户仍然可以照常在变形的屏幕上操作OS。

也许我们可以拦截或覆盖GPU本身来实现效果。

我正在研究GDI,我想可以找到一些线索。第一步是找到如何在屏幕上显示桌面。

tib*_*bur 1

由于带有 Aero 的 Window Seven 使用 Direct3D API 渲染桌面,因此可以挂钩(通过使用弯路?)该dwm.exe过程并更改桌面表面投影到屏幕的方式。据我所知,没有 DWM API 可以用来执行此操作。