易语言资源网 - 做最全的易语言资源下载社区
精易论坛授权登录

自绘窗口阴影2.0 支持Direct2D硬件加速   [复制链接]

    2022-01-04 19:41:14
    模块控件源码
    易语言资源网
    3971 次浏览
    来源链接


窗口阴影模块2.0 by a2002上个版本: https://bbs.125.la/forum.php?mod=viewthread&tid=14712177

把原始窗口阴影想象成单色的矩形
这个矩形经过高斯模糊处理后, 加上偏移即形成阴影
实际上绘制时与原窗口重叠的部分应该不计算, 这样的话效率还可以


[2.0]优化了软件计算高斯模糊的速度, 采用缓存机制
[2.0]加入了Direct2D硬件加速, 当然在你的设备不支持Direct2D时GDI仍可用

可以参考exdui4.1的源码, 把绘画函数封装起来, 通过一个标识决定用gdi+还是D2D

这是个好主意, 然后它来了, 写了两天捏~

主要是D2D错误处理太复杂了, 尤其是那个设备丢失(移除?)的错误

但最终还是写出来啦, 流程大概如下:


你可能感觉是否开启硬件加速对阴影外观来说没有什么区别, 这是因为erf函数模拟的效果好
这二者的区别主要在速度方面, 把阴影半径调至最大, 然后最大化窗口或者频繁调整窗口大小, 可以明显地看出区别



点我下载 (已有 381 次下载)

引用模块


源码文件名 模块文件名
demo.e
窗口阴影模块.ec


引用支持库


源码文件名 支持库文件名 支持库标识
demo.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325
shadow.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325


[错误报告]   上一篇:精易模块V10.0.0 发布【2022....     下一篇:网络MP3播放器