Sellorio / mega-macro

A World of Warcraft AddOn that replaces the built in macro functionality allowing more and bigger macros.
17 stars 13 forks source link

Flickering icons on currently unusable macros #178

Closed bartkoevoets closed 1 year ago

bartkoevoets commented 1 year ago

Some of my macros are constantly flickering at a consistent rate, around every 1 second. Seems to be mainly connected to the "fadeout" when the macrod ability isn't usable due to the talent not being selected or the current not being an on-use. https://gyazo.com/a5623dfbf0461a9a1952502109ac8b17 Happens to every non-usable macro on my bars at the same time. I think it's a separate issue from durandal42's which is mentioned earlier, since this happens across all actionbars and it's the icon that's flickering, not the label.

Dannez83 commented 1 year ago

Some of my macros are constantly flickering at a consistent rate, around every 1 second. Seems to be mainly connected to the "fadeout" when the macrod ability isn't usable due to the talent not being selected or the current not being an on-use. https://gyazo.com/a5623dfbf0461a9a1952502109ac8b17 Happens to every non-usable macro on my bars at the same time. I think it's a separate issue from durandal42's which is mentioned earlier, since this happens across all actionbars and it's the icon that's flickering, not the label.

Hey I'm happy to have a look at helping you fix this but as I am not experiencing anything similar, I'll need you to confirm a couple of things. 1) Have you disabled all other addons except for MegaMacro to confirm it's defo this addon? 2) Are you just using the version of the addon from curseforge, or have you made any code amendments? I ask this because the only time I've seen flickering like this was when I was experimenting with reducing the CPU usage of the addon

Cheers

bartkoevoets commented 1 year ago

@Dannez83

  1. After trying that, it appears to be caused by bartender4. I'm guessing there's some kind of conflict, since the flickering doesn't occur when only mega macro or bartender is enabled, but does appear when both are enabled.
  2. I'm using the version from curseforge, and I haven't messed with any files.

Edit: after messing with the bartender settings, the flickering only appears when I'm using the "full button mode" on their out-of-range indicator setting.

Dannez83 commented 1 year ago

@bartkoevoets

I don't use bartender myself so haven't tested this, but in the attached file I've commented out the code that updates MegaMacro range when bartender is installed and set to full button, so this is my best guess to fix it.

Extract in addons\MegaMacro\src\engine\

Backup the existing file first of course in case you need to revert

mega-macro-action-bar-engine.zip

bartkoevoets commented 1 year ago

@Dannez83 Is it possible that this change could cause serious fps issues? After changing the files, my game refused to run more than 5 fps and reverting the change immediately fixed the issue.

Dannez83 commented 1 year ago

@Dannez83 Is it possible that this change could cause serious fps issues? After changing the files, my game refused to run more than 5 fps and reverting the change immediately fixed the issue.

Were you getting any issues with bar lockouts before you tried that file? It's probably the fix for that, that is causing the slowdown as it's specifically for blizzard bars. If you weren't, then try this file.

I downloaded bartender and tested this change. Seems to work. I didn't get any bar lockouts during brief testing, but I also can't say for sure that it won't happen in some specific scenario I didn't test

mega-macro-action-bar-engine.zip

bartkoevoets commented 1 year ago

@Dannez83 We're making progress, haha. The flickering issue goes away with this engine change, which is good enough for me right now. It does entirely disable the out-of-range indicator on mega macros, but that's acceptable.

Dannez83 commented 1 year ago

@bartkoevoets MegeMacro has code in it to replicate the bartender full button range checker, but it's clearly not working well . Unfortunately, I'm not familiar enough with bartender to know how to fix it so disabling it was the only thing I could do

This one is a cleaner fixed code for the taint issue. Still won't resolve that issue for you unfortunately. mega-macro-action-bar-engine.zip

bartkoevoets commented 1 year ago

@Dannez83 Hello, back with an update. After a lot of trial and error, I managed to fix the flickering issue as well as make MegaMacro properly inherit Bartender's out-of-range indicator settings. The issue was, or is, that the UpdateRange function is throttled while the UpdateUsable function is not, causing the default visibility settings from the UpdateUsable function to immediately overwrite anything that the UpdateRange function changed. I solved that issue by removing the throttle on the range check, but I don't know how bad of a performance hit that will cause. I suppose time will tell. If you have any suggestions on how I might keep the throttle in without reintroducing the problem, I'd love to hear it.

If anyone would like to use my version and accept the possible performance loss: mega-macro-action-bar-engine.zip