自绘窗口阴影2.0 支持Direct2D硬件加速 [复制链接]
https://att.125.la/data/attachment/forum/202112/29/174114djriwh1hhbrw1r2q.png窗口阴影模块2.0 by a2002上个版本: https://bbs.125.la/forum.php?mod=viewthread&tid=14712177
https://att.125.la/data/attachment/forum/202112/29/174826hguer4xzw7xkwwdd.gif
把原始窗口阴影想象成单色的矩形
这个矩形经过高斯模糊处理后, 加上偏移即形成阴影
实际上绘制时与原窗口重叠的部分应该不计算, 这样的话效率还可以
https://att.125.la/data/attachment/forum/202112/29/174642xz50p5yoglyalzdk.jpg
优化了软件计算高斯模糊的速度, 采用缓存机制
加入了Direct2D硬件加速, 当然在你的设备不支持Direct2D时GDI仍可用
可以参考exdui4.1的源码, 把绘画函数封装起来, 通过一个标识决定用gdi+还是D2D这是个好主意, 然后它来了, 写了两天捏~
主要是D2D错误处理太复杂了, 尤其是那个设备丢失(移除?)的错误
但最终还是写出来啦, 流程大概如下:
https://att.125.la/data/attachment/forum/202112/29/174807gsm29fd9lzkgf8sd.jpg
你可能感觉是否开启硬件加速对阴影外观来说没有什么区别, 这是因为erf函数模拟的效果好
这二者的区别主要在速度方面, 把阴影半径调至最大, 然后最大化窗口或者频繁调整窗口大小, 可以明显地看出区别
点我下载
(已有 84 次下载)
引用模块
源码文件名
模块文件名
demo.e
窗口阴影模块.ec
页:
[1]