WoW 2.1 changes - Concise list (v2)
by Iriel | 16/05/2007 04:46:05![]() This is a consolidated list of the announced (and sometimes observed) changes in the User Interface API's and functionality for the 2.1.0 release. Please note that this thread is to discuss the upcoming changes and any clarifications or features that are a direct result of those changes, or things which we've been asked to remind slouken of. IMPORTANT: Off-topic or entirely redundant posts are liable to get deleted. It is however in everyone's best interest to not post them in the first place - We'd rather slouken could spend his time coding us cool things than moderating this thread! Highlights * The UI memory limit has been removed, and memory profiling features are available. * CPU profiling features are available (but must be enabled). * Conditionals on #show and #showtooltip * Improved interface loading time and reduced script memory usage by about 50% Template Handlers * Script handlers inherited from templates now share a single instance of the handler function, rather than a different closure for each one. This significantly reduces loading time and memory footprint of any frame that's using template handlers (but may behave unexpectedly if you use setfenv on handlers today). Memory Profiling * Script memory is now tracked on a per-addon basis, with functions provided to analyze and query usage. * The script memory manager has been optimized and the garbage collection tuned so there is no longer any need for a hard cap on the amount of UI memory available. * NEW - UpdateAddOnMemoryUsage() - Scan through memory profiling data and update the per-addon statistics * NEW - usedKB = GetAddOnMemoryUsage(index or "name") - query an addon's memory use (in K, precision to 1 byte) - This returns a cached value calculated by UpdateAddOnMemoryUsage(). CPU Profiling * CPU profiling is disabled by default since it has some overhead. CPU profiling is controlled by the scriptProfile cvar, which persists across sessions, and takes effect after a UI reload. * When profiling is enabled, you can use the following functions to retrieve CPU usage statistics. Times are in seconds with about-a-microsecond precision: * NEW - time = GetScriptCPUUsage() - Returns the total timeused by the scripting system * NEW - UpdateAddOnCPUUsage() - Scan through the profiling data and update the per-addon statistics * NEW - time = GetAddOnCPUUsage(index or \"name\") - Returns the total time used by the specified AddOn. This returns a cached value calculated by UpdateAddOnCPUUsage(). * NEW - time, count = GetFunctionCPUUsage(function[, includeSubroutines]) - Returns the time used and number of times the specified function was called. If 'includeSubroutines' is true or omitted, the time includes both the time spent in the function and subroutines called by the function. If it is false, then time is only the time actually spent by the code in the function itself. * NEW - time, count = GetFrameCPUUsage(frame[, includeChildren]) - Returns the time used and number of function calls of any of the frame's script handlers. If 'includeChildren' is true or omitted, the time and call count will include the handlers for all of the frame's children as well. * NEW - time, count = GetEventCPUUsage(["event"]) - Returns the time used and number of times the specified event has been triggered. If 'event' is omitted, the time and count will be totals across all events. * NEW - ResetCPUUsage() - Reset all CPU profiling statistics to zero. (continued...) [ Post edited by Iriel ] UI and Macros Forum MVP - Understand GC! |
by Slouken | 22/05/2007 07:14:21![]() Enabling and disabling buttons is now protected functionality and may not be called on secure frames while in combat, as of 2.1.2. |
by Slouken | 24/05/2007 01:04:18![]()
As far as I can tell Seer's Cuffs never had a random suffix. |
by Slouken | 25/05/2007 04:15:15![]() You need a semicolon instead of a comma. If that condition exactly matches your /cast command, you can just remove the #show line entirely. :) |
by Slouken | 25/05/2007 23:39:49![]()
This is fixed for 2.1.2. Thanks to Iriel for tracking down the problem! |
by Slouken | 14/06/2007 20:48:25![]() In 2.1.3 there are some improvements to the macro conditional processing to improve your framerate, however you can use #show and #showtooltip to speed up your macros right now: /cast [target=pet,modifier:ctrl] Misdirection; [target=focus,exists] Misdirection; [help] Misdirection; [target=targettarget,help] Misdirection becomes: #showtooltip Misdirection /cast [target=pet,modifier:ctrl] Misdirection; [target=focus,exists] Misdirection; [help] Misdirection; [target=targettarget,help] Misdirection |
by Slouken | 14/06/2007 21:13:56![]() No, the game would still evaluate the conditional. In 2.2 this is useful because the range feedback is actually dynamic based on which target is used. :) |


Recent Blizzard Announcements