suixin812 发表于 2014-7-19 11:39:12

【Update.dll】辅助动画效果的实现

本帖最后由 suixin812 于 2019-11-3 23:19 编辑

2019年11月更新:

这个插件该废弃了。
现在Rainmeter提供更好的ActionTimer.dll来实现动画,
以及专门的!Delay指令来实现延时执行命令。



---------------------------------------------------------------------
原帖内容如下:




众所周知,任何一个动画效果,无论是平移还是渐隐,都需要10~100ms的更新频率才能流畅显示。
而这就需要设置皮肤的全局更新频率为10~100ms,但这会占用大量的系统资源。
虽然我们可以通过使用UpdateDivider来缓解这一问题,在动画结束后的静默期间调低Meter和Measure的更新频率,
但对于复杂的皮肤或者有大量图像的皮肤来说,这样仍然比较耗费系统资源。

前面提到UpdateDivider可以使皮肤局部的更新频率低于全局更新频率
((局部)Update x UpdateDivider > Update(全局))
那我们可不可以类似的使局部更新比全局更新更频繁呢?
((局部)Update / UpdateMutiplier < Update(全局))
来自Rainmeter开发团队的回答是:少年你想多了!


按照开发团队的说法,本来Rainmeter皮肤的动画效果的实现应该由一类专门的Meter实现,
这类Meter有独立于全局更新之外的更新。
(很可能是指节点下的TransitionUpdate,目前只有Bitmap类Meter使用这个选项)


根据这个想法,Update.dll通过创建一个独立的线程来实现独立于皮肤全局更新之外的更新。


假设在一个Update=1000的皮肤中有一个UpdateDivider=1的Meter,
当Update.dll设置独立的更新为Update=100,且更新这个Meter时,
每过 2 秒,
Meter被全局Update更新 2 次,
被插件的Update更新20次。





turan16366 发表于 2022-6-12 00:40:27

哇好好用

oldshyn 发表于 2022-3-6 14:45:34

谢谢分享。。。。

461260911 发表于 2022-2-24 10:40:05

感谢分享!{:10_431:}

浅尘 发表于 2021-7-6 23:28:53

不知道干嘛的

RabbitY 发表于 2020-10-28 10:54:05

emmmmmmmm{:10_431:}

camusice 发表于 2019-11-25 17:24:08

作者好 我有个问题:
官方给出的ActionTimer插件,其文档介绍时特别说明:“ActionTimer does not support, and should not be used, to do anything "endless" or otherwise of a very long duration combined with a very rapid update.”即不希望用户使用该插件给皮肤做长期性性的高频率刷新。请问你的这个插件支持长期运行吗?

Lemon.. 发表于 2019-11-3 19:12:55

感谢楼主分享

胡六刀 发表于 2019-7-18 08:01:58

很不错,研究研究

胡六刀 发表于 2019-7-17 14:52:31

不错,学习一下

seaneo 发表于 2018-8-15 00:35:28

但这会占用大量的系统资源
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 【Update.dll】辅助动画效果的实现