SFX-WoW / Masque

A button-skinning engine for World of Warcraft.
Other
44 stars 11 forks source link

Bug: Potential Scaling Issue #308

Closed StormFX closed 1 year ago

StormFX commented 1 year ago

Hey, I have been running into an issue with my WA where some icons sometimes appeared to get rescaled randomly. After quite of bit of searching I figured out it was linked to Masque and ended up here. Now the issue seems to match this bug, as it only happens when I have masque enabled but disabled for the icons of my WA.

Trouble is, I am currently on version 10.0.5 of Masque, which I think should already have the fix you mention above? Here's an example of it happening, all 3 lines of DoTs should look similar, but on the last one the icon for the Curse of Agony seems to be half its height and much wider than it should.

image

This is on the WotLK Classic version of WoW.

Originally posted by @EJeyp in https://github.com/SFX-WoW/Masque/issues/298.

StormFX commented 1 year ago

Are you able to consistently duplicate it? IE, can you provide me with the WA and steps to reproduce it?

Originally posted by @StormFX in https://github.com/SFX-WoW/Masque/pull/298.

StormFX commented 1 year ago

The repro isn't extremly consistant, but it seems to happen fairly easily. Not always as obviously as in the screenshot above, but often some of the icons are slightly smaller than they should be. (The WA itself doesn't dynamically change the size of the icons at all).

image

The WA in question is https://wago.io/5Pz4pCOF5. It is designed for WotLK classic, though it can be made to work on retail if necessary (though that's a bit more complicated). To repro it, take a warlock to the training dummies in Undercity (or Ironforge), and you should see the bars in my screenshot appearing. They might look bigger, so you'll want to change the skin to "Alternative" in the Custom Options of the WA, as the default one doesn't use icon, but progress bars instead. You'll also want to go in your Masque settings and Disable Masque on all the WeakAuras that start by "MDF - Alternative Skin" (you can ignore the "MDF - Classic SKin" ones). Once it looks similar to my screenshot, start using DoTs on the target dummies, they should display above the bars and they should be of a normal size. Once that is done, open the WeakAuras options by typing "/wa", and close it. This should clear the icons from my WeakAuras. Then start using DoTs on the target dummies again, and you should see that some of them (not all) look a bit different fairly quickly.

During my testing, the first few DoTs after opening and closing the /wa menu did not always have an issue, but I always ended up having it for at least one dot in the full 3 lines of dots.

Originally posted by @EJeyp in https://github.com/SFX-WoW/Masque/pull/298.

StormFX commented 1 year ago

Yeah, there's no way I can test that. I have no characters on Wrath Classic. You could try something, though: Comment out line 152 of Masque\Core\Group.lua using two dashes -- and see if that changes anything. It may be that the code I implemented for the above issue is having an adverse effect in your scenario.

Originally posted by @StormFX in https://github.com/SFX-WoW/Masque/pull/298.

StormFX commented 1 year ago

I've tested commenting out the line but it doesn't seem to help fix the issue. I've modified my WA to be able to test it in retail : https://pastebin.com/vQnzYEb2 The frames should show up on the target dummies of Ogrimmar. Interestingly, while testing it on my warlock I couldn't seem to repro the issue on retail. Any chance the fix for the issue above could only be applied for retail and not classic?

Originally posted by @EJeyp in https://github.com/SFX-WoW/Masque/pull/298.

StormFX commented 1 year ago

If commenting out the line didn't fix your issue, then not applying the above fix to classic won't do anything, either. Try disabling WeakAuras for Masque altogether.

Originally posted by @StormFX in https://github.com/SFX-WoW/Masque/pull/298.

StormFX commented 1 year ago

Just checked it, it does happen with WeakAuras disabled for Masque : image

Originally posted by @EJeyp in https://github.com/SFX-WoW/Masque/pull/298.

StormFX commented 1 year ago

One last test: Disable everything but Masque and WeakAuras. This includes ElvUI.

P.S: Make sure the AddOnSkins module for ElvUI is disabled. It's incompatible with Masque, AFAIK.

Originally posted by @StormFX in https://github.com/SFX-WoW/Masque/pull/298.

StormFX commented 1 year ago

Tested it with only Masque and WeakAuras, I am no longer getting the very wide icons, but still getting some icons that are randomly scaled up : image

Originally posted by @EJeyp in https://github.com/SFX-WoW/Masque/pull/298.

StormFX commented 1 year ago

I just tested it about 50 consecutive times casting Agony, Corruption and UA, then opening WA and closing it, then recasting them again, etc. I wasn't able to reproduce it. Based on the WA provided above, the icons should be the larger size, not the smaller size.

My initial thought was that perhaps you might be using a skin with smaller icons for some add-ons and that the icon size wasn't being updated when the auras were changed to different groups, but then that would mean that if no other add-ons are loaded, the issue shouldn't arise. The only way I can think of to test it is to set all add-ons to use "Classic Blizzard" first. Eg:

  1. Masque > Skin Settings > Global > Select "Blizzard Classic" > Click "Reset Skin"
  2. /console reloadui
  3. Test it again.

The reason I'm mentioning "Blizzard Classic" is because that skin has a 1:1 icon scale ratio, so in theory, should minimize any scaling issues.

One other note: Make sure you're not using Masque's scaling option for any group.

Originally posted by @StormFX in https://github.com/SFX-WoW/Masque/pull/298.

EJeyp commented 1 year ago

Was your testing on retail ? As mentioned aboved I was unable to reproduce the issue myself on retail. I did try you steps without seeing any change with regards to my issue. I did however notice that the settings for my WA still had the skin I had saved saved (For the record, it is Newsom for WeakAuras and Blizzard Classic for everything else, but I've heard that other users that use a different skin had a similar issue)

As far as I can tell, I am not using Masque to rescale anything.

StormFX commented 1 year ago

Yeah, it was on Retail. There's no way for me to test such an obscure issue on Class/Classic Era without actually having a character of significant level on those flavors and it's bit difficult to narrow the issue down without being able to reproduce it.

When you had everything else disabled, I'm assuming that the only thing that showed up in Masque was WeakAuras correct? And you had the skins disabled for all WA groups?

EJeyp commented 1 year ago

I'd totaly understand if you didn't want to bother about doing it, but warlocks unlock corruption at level 4, so that would be an option to test the issue at fairly low level. Again I can understand if you don't want to take the time to do it, but it would allow you to reproduce the issue.

Regarding your question, yes to both : image

StormFX commented 1 year ago

Right, but I doubt the issue is going to arise with having a single DoT, as I won't be able to actually test it against other DoTs.

EJeyp commented 1 year ago

It's actually very easy to repro, just did it after a single /wa only using corruption, twice.

That being said something a bit strange happened before that while testing if I could easily repro it with only corruption. For the first ~10 times I was unable to repro the issue at all, even after using more DoTs. I think this may be because I still had Disabled all the WeakAuras skins and has since reloaded the ui, while when I previously tested this I had not reloaded the UI after disabling all the WA skins.

As soon as I reenabled all the WA skins (still having the specific skins used by my WA disabled), I was able to repro the issue consistently only using Corruption.

StormFX commented 1 year ago

Can you clarify the last part? IE, you enabled the WA skins at the root, but left each WA sub-group disabled or?

EJeyp commented 1 year ago

So when you asked if I had disabled all WA groups - I hadn't, so I decided to test it ahain; I pressed disable in the WA Category of masque. That didn't appear to change anything, hence my previous answer. Then before attempting to test wether or not I could repro the bug easily, I called a /reload ui, and then attempted to repro the issue. I was unable to do so for a number of trys, event when using multiple dots. The issue only happened again when I re-enabled the skins to the Weakaura category, then redisabled them for the specific icons I was testing.

StormFX commented 1 year ago

Ok, try disabling all WeakAura sub-groups. IE, leave the main WeakAuras root group enabled, but disable everything under it, including (and especially), the ones you're not using (eg, MDF - Classic Skin ...). This will help to see if the issue is the inheritance from the root or an issue with the auras being swapped laterally.

Also, it's a bit difficult to test it myself, since I run out of mana 4-5 times before I can even land a DoT on a dummy. :P

StormFX commented 1 year ago

The fact that the issue didn't occur after a reload leads me to believe that it's a lateral swap issue. WeakAuras reuses its aura "buttons" to maximize efficiency. So if, for example, Unit A has 3 auras/debuffs and one fades, then Unit B gains 1 aura/debuff, WA will reuse the third aura of Unit A and move that button to the Unit B group in Masque. The problem is that if Unit A is enabled and Unit B is disabled (in Masque), Masque has to apply a default skin to that aura in order to prevent it from retaining the skin from Unit A. So the ideal solution is to use the same (or no) skin across WA groups or at least reload after changing the skin.

EJeyp commented 1 year ago

Indeed it seems that you are correct; disabling the Skin on all WA also fixes the issue.

StormFX commented 1 year ago

Ok, I boosted my Wrath Classic Warlock to 70 (so I could actually hit the dummies) and tested it. Was not able to reproduce it after more than a dozen tries, using the steps provided above. Based on your original post that showed one debuff stretched horizontally, I'm left with the assumption that it's an issue with WeakAura's reuse of frames and the frames not having their size properly set prior to being re-added to their new Masque group. Masque sets the icon, etc, sizes based on the parent frame size, so if the frame isn't sized correctly, none of the frame's regions will be sized correctly, either.

EJeyp commented 1 year ago

Tested it with only Masque and WeakAuras, I am no longer getting the very wide icons, but still getting some icons that are randomly scaled up : image

Originally posted by @EJeyp in #298.

As mentionned above, with only Masque and WA I would no longer get the very stretched version either. Only some debuffs that are randomly scaled down.

StormFX commented 1 year ago

And, as I said, I wasn't able to reproduce it. Something else is going on. I only mentioned the stretched icon because it seems to be related, though dependent on something else being enabled.

StormFX commented 1 year ago

To further expand on the above, I tried testing various enabled states between Unit A/B/C and even tried skins with different icon sizes, etc and still was unable to reproduce the issue. Can you test it with only WeakAuras and Masque enabled (no other add-ons, at all) and by exporting and then removing all other WeakAuras but the one above?

EJeyp commented 1 year ago

Indeed you are correct that it wasn't happening. I then did some further testing to try to see what was triggering it.

I first tried to import a mega pack containing hundred of WA. It did cause my issue. I then removed most of the WA in that pack only leaving the dynamic group + 1 WA inside of it. No issue. I then went back to the full WA and tried to remove more and more WA to see what was the limit. I got to a point where I was importing a WA with the group + 3 WA inside. That appears to always cause the first icon displayed by my weakaura to get scaled up to the size of the new WA (and only the first icon displayed, the others are fine).

Try it on your side by importing the following WA : !WA:2!9Evw0T1rzyKDlPOuoNe1w3GHE4wttinK4ylVKKUDqYwUr9iVCUs2oHJP(UnsZn5Q796zUYBL2IfLIl7OYAHYIyRaLLkwl71aLLYYpIYH9nZl8SFaEHh4FM7vY2je2oa6CI1Oz(Nz(Nz(w(tSzsWvhQ3b69ejkNWkH16dxtNzMJ4wkGEFDTPHhZIWsRBEElMNV)(s7yV6Q6mlLcEEob2(glPxYl7O1o3cKCgJN7oYYwEYIf5KGt)IDEO(AE2)8G1kX8Q4N10Z1i5qd23P6BlUhl40RyWSTkOB4qg2F)t7yvrNPCmLwlp1)QB3xktBlBtL02beQ)bA39ymczvB3skPze9akTEXkooJyZmDiAQCFDtYEtwH54FD0GaF(nD8JlY0ET9oEbszE4QC8HgMPBgy75YhwLhOZcIN221oiUrr8lonE1aMDPsegV7dXIAE)1TigvkwSWk(e2PZKBQXMox6a8hQ6vy6jRY9joozT4X3KxXGSiXnipgT9YnMFKu5lmF(cPul0EOPyeCi18tLjxU0vWD2W3rFfctvoQXPj6obuvx9YeE8AvCJsH4nm9CQu2nV4q25w2UbeMRUZmyEIhL1QP7AxwxCQggUQXGUt765s2GOZj5dyY31900cZvreZlYCgNGVow8QIyeNl4iPlRB7IZfoc8I2dCu4yqVyZR5c7rv3XUKRXizMOqg1QmVa5IgJTyyQSqD8GQskjUGJZWlyr2hRAfojNDz7aAAhpDRzmc0DWtBxQLRGiQ4SvX0fVa7inEvA2fCQ4QMo6CUOvAU9QerdCVwk8430icBoINJh7o6SZoNQZ(6Diw4LarZG7vHzsmSl7JWUg6UMup2uE4Lg0Vk3e36PUS(6D4HQBse3JIJFp5uncX906HFNXQeXF)5xaXmeLXqCMYSueowNjpBI5SH1k4ZKTPeShnR8yYE5PfOD4ijRyB1G6wE0xYsUtvjvFPXaxsvn7TF6cgmDl7k877krMIT1S2wb09Uj(GG3xUbJH4tpMHAQrZoDEdS3I2LIVr46hs0EwgCsz8cxnzVd1BF1d8mJU9VIfFIEST87wG3vIOntHxwi3z0WKv1r8mS3gfzicdbh6b6DUv4n0yIUehmJ8JOMjZen1ReGDpPVKTeVrygK1ftGozR0IYBFd)P79XNlxvXbrEtQoAuKHVoXIfRZ6cSMD0Yy7w0JfcwpudSPjjJa5Z18pacS8yKOnu2BggZJX1QXjofLVGPZLzScjmVP1pADBCvZlFPJbxo8mH9eRUzfEGx5cKLd8)lfR4k55h(gJRGFSlQmlr)8PqwaV3S8OnzsFcgGsaL4QWibvyUkexRwtW1lqrqXNN4UyViGmqXJDbDClk3ojOGDzcUkhtP)EhsUwYfq8z3bFRBhC7iYJ73iu9GXjCUEjYH75UoZDROo9ekPMn1zvWF0dUWhdtouMWKiwDLYHHQOZvCjelsy(kYB8FGEmyeO)MMOyTL3sU5xY2NO5VVTVAM23czjgvKFb7d2FAXnPg01ehcU21FHQU(MzTuhyGt0)qSiPn1KNCGtoqnXPrQm1T6Wdo8aNSAlnLejRAr4btJYzqpg6L9qHRe9vto7jWjyKTSps7QZPElnIds2506OKW8uPAhDlSDMLryF(WTJ2evOeKZWXt0h8cGBOriREIWSBWKN8Knelrugs3q8JwjHMC1dZdTnBnYyo6L4jd3zKPfuHtHNpOaxhB(rtnEQBpJybtvSiXmGyPH6Epx4aStNsDCuVFl5K2od0yyhIJMgC9qpSkUs5B1a8X1coyC5Egqf2uH5Z2TrTpwjsWwHz38E4rvh579Cp3AnXKK3(AnBF0e7bfEEXfsOZl8l02q8mihZg9C83VyGDDFP531U(D79iXTj3cutM5PbhQl4naVXgw28ZjPklssQ744VFDz7cHgpJ7zrE0NbC41268eIFkH(CGQ4nNc3i61md0THpJGkbs3c0M4Htxu3IiDlo(msVJwdux3XNQpvfhE4WxJy4hU9WW7w0lA1YXxgmDXt9aladEKUGUBIEkcnFHsRR16xRFIaehppNQJi8ZeQefZ)5i7u(NqfM55rnGJuR9y9CqU)(2X03wLAZWEBR0KA6ct6FvYorLqpHKLPuQoDk8NBfUr2ltc1VxRzOk6zJsNnKJFoK1zxCfO)6sNsIG)LEIjNid0ndpuIy8vUO8o1yJLzKczgTD6xxoQzl7UoRffTBG)1KYelwcFR1DuWAl4I2MRSRBOwPutzFlHIZZY09RoBuJMTxmzbotoDHCzNit0L0ompRHJKrD(cto1FNuwpI20oLdp)lAZTX6902EpeoKhm6UQ9txIDSxTYwdkXUenyn4epziXazymkCsrTanWZOG9qqtN093FFNqsp3rNu4wX46QkMnbRuw3vtsFeLzqHBwwwHODhn310OnAfewlIgClhYGJfB6qmMsnBM8fW1dEkn4Ms2)GNcsbPbk0pKf8R2sQvtWLevZjQ89aDCz7zJwJikMqdMpomTyJ9khtDjjMXpbUJJefes1ufLV4F1TMMaTmQnxuXSfnTaesHZg6XdxjmxNQsgvNWlfUtyw4mW4nwLFJdwzAtdJ7yzMTROQacvDBCdyfhihckQbL0Gei)TilYmPJnJAmFOrH)H32)SLZOq9sihD4EclzfDMqdNQwEcHrxucU1siQWmz(uNToouuFuvzm(9NvCtxeTYMlLL1KU85A7kp34elB95YlIJpxAHJzVELkbxDCSk0A4sfMzu43d)b43rHFnD9JcNRL3pCEWjY7dkRbUGNWAd8rFT7u6RblamGdbqfP71qdalLijSm0dScAWSkCxWlJc3nfUhkCVHooWlhwdQsHxHgCFAWRKc3FKFb8QG1J8hGhaE1AWRr6caVw41HA)WRxtiScVjushQPbpOq(gEZAWBjo8w1G3wIBdE7TuF3zM9hXmd)Z)4SQ(iELn0duY5vkm90UKPxntzOoyKY0K(FEAcVJK6URaVtPta8UAR9FrY3xOMp8EU0s9W7DBfE49T(1c1JbVFmIpq1XNCMmkOAd8bLcZWhc(WWJaFe4JUg8XIbpk(c)XHpboPpj8PW4FSqODd4tdFMyWNf(CWNh(cWJdFr4lHJ(L1GVYbHVAm4Rfd(6cXe4jIerGnGVb8nJukGVLg8KrAdW3Ud47qHVRqca(EWt1I4dF)Ds7HFGg8dpqhjEm4hfrTbig8JxdAQb)ek80Btv3lsvHF6oPPNpJ5Idmq2fidBd)mk8ZVeKt4x0b8lHFfI0HFd8BfyEb0xYhGn)3NhiRV7OWcy1t9FQta8R4V(asYWq933GxcyNaljXDPhbPJTrCuPIm()EW88Bd(cReHiQJRDvznlrCr9yZ8yHFt6Ujx(vlbpjAfb2RljqincbFcKkca7gbQi(uGuRrHRVMOQtu0bRxTfKTjwpLt(wviHj8dQH43WCyxBQMaRFXaA4H()fCMnM6KtuivU)BHMV()xIMFK)PO5N9fHMNSVjo8qZyTYy(L)xcnR1gn7FZ7YoWBx2bt5TeHjBUlJbUNRoBBJHDresS4tFM)2d (This is a tiny sample of this WA https://wago.io/TemsUlduar)

For me it appears to always cause the first icon to look like that : image

StormFX commented 1 year ago

I was finally able to reproduce it using the above example on retail. There's a few issues:

First, WeakAuras doesn't seem to be properly updating an aura's size after the WA options window is opened and then closed. In Masque's AddButton method, I added a print(...) section to print the size of the frame that was moved to the current group:

image

As you can see, the larger icon was added at its default size of 64 x 64. This is probably a side effect of being pulled from a frame pool but not being properly downsized for the current WA. Not sure if this specific to your WA or to WeakAuras in general.

image

Second, as you can see in the above image, the larger icon is skinned as the "Blizzard Modern" action bar skin, which is the default on Retail. Given that WeakAuras uses a custom type, it needs to have a default skin, otherwise it will default to look like whatever the default action button skin is.

I can probably throw together a quick default skin for WeakAuras but that's not something that should be included with Masque by default, as Masque doesn't generally provide add-on specific features.