Thread: Z-Perl 2
View Single Post
02-14-16, 04:04 PM   #7
Resike
A Pyroguard Emberseer
AddOn Author - Click to view addons
Join Date: Mar 2010
Posts: 1,290
Originally Posted by pelf View Post
I've been using some form of Perl since ... well, since I got it with Cosmos, I think? Is that where I got it the first time? I think that one was Nymbia's version. After playing WoW with it for so long, it's pretty much impossible for me to change to something else; I've tried at least two separate times. So, I had just accepted the performance issues with X-Perl, which were, as I'm sure you remember, not insignificant.

So, for the sake of my sanity and of my framerate during raids, thanks for keeping the project going.

-----------------

I was just catching up on the development forums and noticed your thread here.

Your isDeveloper function and your "encrypted" battletag are pretty funny. I assume that's just to prevent it from getting scraped from GitHub?

Dat MakeScaleable function. Yikes. Do you think it would be possible to do something like this:
  1. Create a frame.
  2. Attach all of those scalability behaviors to that frame.
  3. Copy the size, location and scale of the frame being resized to the scaling frame.
  4. Make the frame being resized the child of the scaling frame and anchor it to fill.
Would that still work? If so, the build-up process would be nearly equivalent, but the tear down would be simpler, right? You could just pull the frame to be resized out of the scaling frame, copy the relevant resulting size, location and scale values and then make sure you destroy all references to the scaling frame. At that point, it should be a candidate for GC; I didn't see anything in the code scanning over it that should block it from being collected.

Or, if that would be viable and if you wanted to be super sneaky, you could create a scaling frames pool and never run the create code more than either once if the user doesn't ever resize more than one frame at a time or (assuming it will be possible to resize frames concurrently) n times, where n is the total number of frames (frame classes?) available to be resized concurrently.

I say "frame classes" because I'm not sure how much sense it would make to be able to make raid27 a different size and shape than raid12 (or party2target and party4target and so on).

Well, starred and watched. It's going to be arguably way more fun, for me, to watch you build some unit frames from the ground up than to (try to) build them myself .
My main goal with this mod is basically to create the most efficient unit frame mod, while keeping the X-Perl look. Which requires a whole rewrite since lets face is the codebase of X-Perl/Z-Perl is almost 10 years old. XML, Globals, overused metatables and useless/pointless workarounds everywhere, while big part of the addon is not even handled securely.

My battletag is encrypted to prevent parser functions to catch it by any way.

I'm not sure if you are familiar with this project but it's handling the scaling method just the way you described it. It can also scale multiple/linked frames at once. However the function is even more kinky there, since that one also handling Texture and FontString scaling perfectly.

MoveAnything 2:
http://www.wowinterface.com/forums/s...ad.php?t=49385

In action:
https://www.youtube.com/watch?v=FZvb5ae3c1c

In Z-Perl 2 i use a modified version of the scaling function from MoveAnything 2, because i wanted to scale the border of the frames with a different scale-multiplier, since borders look really stupid on high and low scales. Thats why that MakeScaleable function is a monster. (Also because it's not really optimized yet.)

Last edited by Resike : 02-14-16 at 04:11 PM.
  Reply With Quote