It is currently April 25th, 2024, 10:35 am

[BUG] Flickering after !Refresh

Report bugs with the Rainmeter application and suggest features.
libretto
Posts: 8
Joined: September 18th, 2013, 12:41 am

[BUG] Flickering after !Refresh

Post by libretto »

Hi folks!
Today i update Rainmeter to last build and found some problem with Refresh skin.
I use in my skin colortool.exe(little colorpicker) and my programm send refresh bangs to Rainmeter.
Now i have blink after refresh. Last version Rainmeter where all good for me is 3.0 beta (revision 2022) all next version have problem.
I created a video where I test two versions, first r2022 and install last r2090.
https://www.dropbox.com/sh/gdq3mluxkhblb1k/khyf3dWLkb
Please help me, i made this skin one years. Thanks team for your work!
P.S. How to reproduce problem: use this code in your skin

Code: Select all

MiddleMouseUpAction=!Refresh
and fast click middle mouse button.
os Windows 7 x64
Last edited by libretto on October 30th, 2013, 5:30 am, edited 2 times in total.
libretto
Posts: 8
Joined: September 18th, 2013, 12:41 am

Re: [BUG]Refresh skin blink

Post by libretto »

I'm very glad to see improve font rendering with d2d.
But it posible remove flickering\blinking when skin refresh?
My skin many time used refresh command and now it looks ugly.
Maybe I can help you by giving my skin and you'll understand after seeing how you can fix flickering?
User avatar
thatsIch
Posts: 446
Joined: August 7th, 2012, 9:18 pm

Re: [BUG]Refresh skin blink

Post by thatsIch »

libretto wrote:I'm very glad to see improve font rendering with d2d.
But it posible remove flickering\blinking when skin refresh?
My skin many time used refresh command and now it looks ugly.
Maybe I can help you by giving my skin and you'll understand after seeing how you can fix flickering?
I just assume you miss-concepted your skin. There are only rare cases where you really need to refresh the whole skin, but most times what you want is a combination of [!UpdateMeter MeterName Config] [!Redraw Config] For example you need to refresh if you only use the [!WriteKeyValue "Section" "Key" "Value" "(File)"] and its changing something very important for example something which is not persistent.
libretto
Posts: 8
Joined: September 18th, 2013, 12:41 am

Re: [BUG]Refresh skin blink

Post by libretto »

I did make todo list, every time when user add\delete\other, my utility edit config file with my skin and then will refresh it.
Before update to last beta, all be clear and user dosen't see any distortion on skin, all be smooth and i was happy to work with rainmeter.
After updating the rainmeter, i always install beta version for use new feature.
Rainmeter 3 have new killer feature for me [Added] InputText: Added OnDismissAction to the plugin and i deleted my keyboard_hook.exe and update my skin.
For me, the only way out after the publication of skin write compatible with Rainmeter 3 r2022.
It saddens me. I spend too much time while did make skin and would that it were relevant...
P.s. Sorry for my English.
User avatar
thatsIch
Posts: 446
Joined: August 7th, 2012, 9:18 pm

Re: [BUG]Refresh skin blink

Post by thatsIch »

As a programmer I want to try to avoid a refresh at all cost. If you have a config menu, you use 2 commands with its corresponding redraw commands [!SetVariable Name Value Config] [!WriteKeyValue Key Value Config Ini] [!UpdateMeterGroup ThisVariableListenerGroup Config] [!Redraw]

Thats why I said, miss-concept of your skin. You use !Refresh to avoid writing !SetVariable. Its like when you install 2 softwares on your PC you would restart after each installation, but actually this is not necessary because you can restart after you installed both (except A is dependend on B)

And I tried looking at the video, but I cannot download it. You might want to share it somewhere else or is it just not uploaded yet?

And what are you doing, that you need to use !Refresh multiple times in a second?
libretto
Posts: 8
Joined: September 18th, 2013, 12:41 am

Re: [BUG]Refresh skin blink

Post by libretto »

Thank you "thatsIch" for the help, your tips very useful and solve 50% problem.
Video sharing for all in dropbox and you can download .zip or watch it.
And what are you doing, that you need to use !Refresh multiple times in a second?
Now it's not necessary !Refresh multiple time in a second, but i can't completely eliminate the use of !Refresh.
Example: i have "todo list" skin, user can add text, delete it or mark as finished(change color), set prioritet, i use my utility NoteTool.exe for edit MySkin.ini after the it's send bang !Refresh.
Main problem is flickering after refreshing. Not necessary many times refresh in a second, i have blinking skin after refresh each time. Sometime refreshed normal without flickering but very rarely.
User avatar
thatsIch
Posts: 446
Joined: August 7th, 2012, 9:18 pm

Re: [BUG]Refresh skin blink

Post by thatsIch »

If it is your tool, I would rewrite it then. use SetVariableuntil you use apply or something which then would use !WriteKeyValue. Why? Because how would the user be able to cancel it. And you don't need a !Refresh as far as I saw. !Refresh will initialize all meters anew for example if you add new meters via other tools. But as long you just modify existing meters, try to use !UpdateMeter and !Redraw which hoggs less CPU too.

I needed to be logged in in DB to watch it, but I can see where are you coming from. Are you by chance use the new rendering engine?
libretto
Posts: 8
Joined: September 18th, 2013, 12:41 am

Re: [BUG]Refresh skin blink

Post by libretto »

I don't use !WriteKeyValue, i need add some meters dynamically in skin, but rainmeter doesn't support add dynamic meter in skin.
My tool add meter to skin when user add text, and tool remove meter when user delete text. How to i can say rainmeter about changes in my skin without !Refresh?
Are you by chance use the new rendering engine?
There is no difference using D2D or not after !Refresh I still see a flickering.
Interesting only i see flickering after !Refresh, it's my local problem or it's happened with all skins in Rainmeter 3.0?
User avatar
thatsIch
Posts: 446
Joined: August 7th, 2012, 9:18 pm

Re: [BUG] Flickering after !Refresh

Post by thatsIch »

Is your list infinite long? And no, I can reproduce it with

Code: Select all

[Rainmeter]
Author =
Update = 1000
MiddleMouseUpAction = !Refresh #CURRENTCONFIG#

[Metadata]
Name =
Version = 0
Information =
License = Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported

[Variables]

;;====================================================
;;  Style
;;====================================================

[Style]
X = 0R
Y = 0r
W = 2
H = 20
MouseOverAction = [!Refresh "#CURRENTCONFIG#"]
SolidColor = FF0000

;;====================================================
;;  Measures
;;====================================================

	

;;====================================================
;;  Meters
;;====================================================

[001]
Meter = Image
MeterStyle = Style

[002]
Meter = Image
MeterStyle = Style

[003]
Meter = Image
MeterStyle = Style

[004]
Meter = Image
MeterStyle = Style

[005]
Meter = Image
MeterStyle = Style

[006]
Meter = Image
MeterStyle = Style

[007]
Meter = Image
MeterStyle = Style

[008]
Meter = Image
MeterStyle = Style

[009]
Meter = Image
MeterStyle = Style

[010]
Meter = Image
MeterStyle = Style

[011]
Meter = Image
MeterStyle = Style

[012]
Meter = Image
MeterStyle = Style

[013]
Meter = Image
MeterStyle = Style

[014]
Meter = Image
MeterStyle = Style

[015]
Meter = Image
MeterStyle = Style

[016]
Meter = Image
MeterStyle = Style

[017]
Meter = Image
MeterStyle = Style

[018]
Meter = Image
MeterStyle = Style

[019]
Meter = Image
MeterStyle = Style

[020]
Meter = Image
MeterStyle = Style

[021]
Meter = Image
MeterStyle = Style

[022]
Meter = Image
MeterStyle = Style

[023]
Meter = Image
MeterStyle = Style

[024]
Meter = Image
MeterStyle = Style

[025]
Meter = Image
MeterStyle = Style

[026]
Meter = Image
MeterStyle = Style

[027]
Meter = Image
MeterStyle = Style

[028]
Meter = Image
MeterStyle = Style

[029]
Meter = Image
MeterStyle = Style

[030]
Meter = Image
MeterStyle = Style

[031]
Meter = Image
MeterStyle = Style

[032]
Meter = Image
MeterStyle = Style

[033]
Meter = Image
MeterStyle = Style

[034]
Meter = Image
MeterStyle = Style
libretto
Posts: 8
Joined: September 18th, 2013, 12:41 am

Re: [BUG] Flickering after !Refresh

Post by libretto »

Look i did record video with your skin:
https://www.dropbox.com/sh/gdq3mluxkhblb1k/UlTq3cUX5h/Flickipiki.mp4
List not limited a fixing count, user may add text as many until enough space on the screen.