Category: Miscellaneous
Addon Information
Download Latest Version.
To add favorites please register for a free account. If you already have one you need to login. How do I install this? (FAQ)
Author:
Version:
1.0
Date:
07-23-2008 11:51 AM
Size:
939 b
Downloads:
235
Favorites:
4
MD5:
Pictures
Can't see, but can feel
Fix ScrollingMessageFrame Lag
This light-weight addon fixes massive lag when massive number of messages are added to Scrolling Message Frames. It covers all of them automatically (most common ones being Chat Frames).

Extremely helpful in AOE-heavy raiding situations like Hyjal trash.
  Optional Files - Fix ScrollingMessageFrame Lag
Sorry, there are currently no optional files available.
  Comments - Fix ScrollingMessageFrame Lag
Post A Reply Comment Options
Old 07-29-2008, 05:11 PM  
Drundia
A Kobold Labourer
Interface Author - Click to view interfaces

Forum posts: 0
File comments: 3
Uploads: 2
My tests show that :UpdateColorByID() doesn't force update after :SetHeight().

You are correct, all 3 functions used to fix lag will result in addon action blocked message if the frame is protected. Also I missed interruption of dragging that it causes, and I agree about possible evil OnShow and OnHide scripts. I'll look into it all.

However it may end up causing more harm than help if all issues are accounted for and fixed.

Last edited by Drundia : 07-29-2008 at 05:25 PM.
Drundia is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Old 07-29-2008, 12:16 AM  
Saiket
A Deviate Faerie Dragon
 
Saiket's Avatar
Interface Author - Click to view interfaces

Forum posts: 16
File comments: 199
Uploads: 14
While putting together my implementation (in my _Dev addon), I noticed a potential problem: Since the message frame is hidden and shown when printed to, it can break dragging with chat frames, and also has the potential to cause "addon blocked" messages and also fire time-consuming OnHide and OnShow scripts.

A compromise I found was to use the following API in your OnUpdate script to refresh the text display instead:
Code:
if ( MessageFrame:IsVisible() ) then
    local Color = ChatTypeInfo[ "SYSTEM" ]; -- Chosen only because it has ID 0
    MessageFrame:UpdateColorByID( Color.id, Color.r, Color.g, Color.b ); -- Redraws text
end
Just change that MessageFrame variable to the one you actually used, and it should work in combat and won't make dragged frames stop dragging.
Saiket is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Old 07-25-2008, 09:17 PM  
Drundia
A Kobold Labourer
Interface Author - Click to view interfaces

Forum posts: 0
File comments: 3
Uploads: 2
Re: Great find!

Quote:
Originally posted by Saiket
How did you stumble across this trick? I can recursively print out the entire global environment in six seconds now, where before this addon I would have been disconnected before the command finished!

Do you mind sharing the theory behind why this works? Also, do you mind me using the concept in one of my more text-heavy mods?
From what I know other text displaying widgets don't have similar performance issues.

The frames just don't lag when they are hidden or immediately after :SetWidth() or :SetHeight(), I have no idea why it works, but it works. You are welcome to use this addon and/or its parts/ideas in your work with proper attribution.
Drundia is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Old 07-24-2008, 05:08 AM  
Saiket
A Deviate Faerie Dragon
 
Saiket's Avatar
Interface Author - Click to view interfaces

Forum posts: 16
File comments: 199
Uploads: 14
Great find!

How did you stumble across this trick? I can recursively print out the entire global environment in six seconds now, where before this addon I would have been disconnected before the command finished!

Do you mind sharing the theory behind why this works? Also, do you mind me using the concept in one of my more text-heavy mods?
Saiket is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Post A Reply



Category Jump:




The Network:
EQInterface | EQ2Interface | LoTROInterface | MMOInterface | War.MMOUI | WoWInterface | VGInterface | Allakhazam | Thottbot | Wowhead | Zam


©2009 MMOUI / ZAM Network
vBulletin - Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.