我想更改桌面屏幕的形状,因此桌面上显示的内容将同时失真.用户仍然可以在扭曲的桌面上使用鼠标操作PC(运行应用程序,打开“我的电脑”等).我想我必须首先得到屏幕坐标的投影矩阵.然后变换矩阵,并将桌面缓冲区图像映射到扭曲的网格.有没有可以在OpenGL或DirectX中修改桌面屏幕形状的界面?你能给我一些提示吗?非常感谢你提前.
请参考http://oi53.tinypic.com/bhewdx.jpg的图片
BR,
海丰
Addition1:
对不起!也许我没有明确表达我想要实施的内容.
我想要实现的是修改屏幕的形状.因此,我们可以扭曲在Windows上同时运行的所有应用程序的形状.例如,“我的电脑”窗口将因桌面屏幕的失真而失真.我们仍然可以使用来自扭曲桌面的鼠标来操作PC(单击快捷方式来运行程序).
Addition2:
投影矩阵只是我的假设.桌面表面没有任何桌面投影矩阵投影到屏幕上.我想要实现的是改变桌面的形状,就像将桌面映射到3D网格一样.但是用户仍然可以在扭曲的桌面上操作操作系统(单击快捷方式运行程序,打开ie上网).
Addition3:
在OS上运行的所有程序的形状都会随着屏幕的失真而改变.这是实时的.用户仍然可以像往常一样在失真的屏幕上操作OS.
也许我们可以截取或覆盖GPU本身来实现效果.
我正在调查GDI,我想我可以找到一些线索.第一步是找到如何在屏幕上显示桌面.
最佳答案 由于Window Seven with Aero使用Direct3D API渲染桌面,因此可以挂钩(通过绕道?)dwm.exe进程并更改桌面投影到屏幕的方式.据我所知,没有DWM API可以用来做到这一点.