之前报道过微软某位UI工程师打算重新把
win8 Aero Glass磨砂透明 效果给整出来,还放出了效果图,后来不知道什么原因没发布了。之后又有国外研究出Win8开启透明效果,但没有磨砂效果。国外码农继续给力,终于研究出Win8开启Aero磨砂透明效果的软件,原理是通过注入dwm.exe来实现Aero glass磨砂透明效果。
目前这个Aero Glass For Win8(64位)作者已经更新了版本,目前 Win8 64位用户可以使用啦~ 下载后解压到 C:DWM 文件夹。提示缺少 msvcp110d 文件的,缺少的DLL文件 (放到system32目录)
它是如何工作的呢?
我已经开发了C + + DLL库,注入到dwm.exe过程中(没有任何系统文件替换为必填项)。然后,用于窗口边框绘制的功能,钩住了自己的实现。这将确保,,随时DWM要绘制窗口边框,代码将被重定向到我的图书馆,在那里我可以改变的参数顶点缓冲区,混合状态和其他的东西。然后我重新回到原来的绘图功能。透明窗口边框的画!
它提供了更多的功能比纯窗口边框的透明度?
目前,我只实现模糊效果,使用Direct2D。我的计划是返回窗口的标题,更好的影子在窗户周围,如果有人有兴趣,尝试重新实现Flip3D功能的发光效果。
有什么缺点吗?
DWM实现脏区的管理,确保只有改变重绘的屏幕区域是一个主要的问题。这根本不重绘的内容被其他窗口遮挡。而且,不幸的是,它的内容付费窗口边框。因此,它需要根据透明边框强制的DWM重绘内容。由于接触脏的区域管理是不可能的(至少,我还没有找到一种方法),我们有两个选择:
1)修改始终重绘整个窗口纹理的顶点缓冲区。它肯定会带来一些性能损失,并不适用于完全消失(因为没有被调用Draw函数为他们所有)的窗口。对于其他情况,这完美的作品。
2)设置每一个可视化的窗口进行分层alpha值254,因为DWM也重画脏区下方。我选择了这种方法,因为它似乎很好地工作在大多数情况下,除了一些窗口时,拒绝WS_EX_LAYERED风格。我不知道的其他任何问题与分层窗口。
什么时候会被释放?
我会尝试释放它的源代码,包括几天。因为我没有太多的经验与Direct3D,我已经使用Direct2D的,因为它有更简单的API,内置的效果和程序员不必关心着色器的任何绘图,顶点缓冲区等,我也会很高兴,如果有人让我的手,这个小项目。
还有一些已知的问题,我需要解决的问题,例如:与Windows 7,DWM重新启动是不可能在Windows 8中,但它是需要正确的Direct3D功能挂钩。
下载的压缩解压缩到C: DWM文件夹中。如果有任何错误和DWM崩溃,它会产生在这个文件夹的崩溃日志。