Asshats running those 'change your title every 5 seconds' addons will also destroy your raid frame performance if UNU is still registered.
At the point of testing what was caused the issue, I added debug code to print every UNU, RRU and PMC events. During a 5-minute test period, the only UNU events I've seen were about raidpetX units. There was no need for title "rotator" to cause freezes.
Actually not. What I'm trying to say is that UNU fired during "normal operation" are enough to cause high CPU usage peaks with certain addons. There was a clear link between *any* fired UNU and freezes and I was able to cause such thing by simply mounting/dismounting. That is quite uncomfortable enough. I'm sure adding title rotations on top of this should be terrible.
In other words, do not blame only title rotation addons.
This works except when you are in a raid and get moved around a lot. I have yet to figure out how to change the group filter while in combat. Having the group number as an attribute really prevents addon from correcting themselves when your in combat but the raid leader is moving people around. If you get moved in combat then your party will be incorrect until you go out of combat.
oUF does use what you tell it to use, e.g. SecureGroupHeaderTemplate if you want to. In this case, oUF takes care of setting up the header to apply your layout to the created unit frames. You still have to layout your different headers. Sample code:
-- define and select your oUF style here
-- single unit
local player = oUF:Spawn("player", "oUF_MyPlayerFrame")
player:SetPoint(...)
-- party group
local party = oUF:Spawn("header", "oUF_MyParty")
party:SetManyAttributes("showParty", true, "groupFilter", 1)
party:SetPoint(...)
If I misunderstood how the property works, I would have quite a few bugs in unit frames due to it :p
There are two group units, party# and raid#. Using showParty tells the header to show all party# units, using showRaid tells the header to show all raid# units. party# will always be your current group, as such it's unnecessary to use groupFilter. I'm not quite sure why Adirelle added groupFilter for showing your party, but unless what you really want is something different from seeing your party, it's unnecessary.
We are both talking about SecureGroupHeaderTemplate correct?
My issue is when you want one frame to display the party and one frame to display the raid. The raid frame works as expect so there is no problem there. However on the party frame unless you have "showRaid" true it will disappear when you go into a raid.
The documentation from wowprogramming.com.
showRaid - Boolean - When true, the group header is shown when the player is in a raid.
showParty - Boolean - When true, the group header is shown when the player is in a party. This attribute doesnt imply showRaid but can work alongside it.
If I misunderstood how the property works, I would have quite a few bugs in unit frames due to it :p
There are two group units, party# and raid#. Using showParty tells the header to show all party# units, using showRaid tells the header to show all raid# units. party# will always be your current group, as such it's unnecessary to use groupFilter. I'm not quite sure why Adirelle added groupFilter for showing your party, but unless what you really want is something different from seeing your party, it's unnecessary.
You misunderstand how party and raid are defined. Read what I said again, groupFilter is unnecessary for showing your party, you do not need to set it.
Please note that I'm just trying to understand and I'm not trying to argue. I truly want to understand.
While writing this reply I figure I would do a little testing first. I must apologize for you are correct. It seems that the header is working like you said. The documentation I have isn't very clear and is technically incorrect.
Now I have a different question. If I want an option to hide the party frame when in a raid would I simple hide the frame when entering a raid group then show it when leaving?
I would like to thank you for all your help and standing your ground. My personality needs this. You clearly stated you were correct and I have to prove my statements. Too bad I couldn't. Well I guess a person (me) can always be right. I'm glad you helped me figure it out.
You misunderstand how party and raid are defined. Read what I said again, groupFilter is unnecessary for showing your party, you do not need to set it.
Actually reading SecureTemplates.lua, the documentation also says "showParty = [BOOLEAN] -- true if the header should be shown while in a party and not in a raid" which isn't correct, not sure what's up with that.
There are two things you could do, one is to simply hide it yourself based on RAID_ROSTER_UPDATE and GetNumRaidMembers(), but that won't work if you join or leave a raid in combat. The other way is through the secure wrappers which will work even in combat.
The below is an example of how SUF hides the party while in combat:
local stateMonitor = CreateFrame("Frame", nil, nil, "SecureHandlerBaseTemplate")
stateMonitor:SetFrameRef("partyHeader", headerFrame)
stateMonitor:WrapScript(stateMonitor, "OnAttributeChanged", [[
if( name ~= "state-raidmonitor" ) then return end
if( self:GetAttribute("state-raidmonitor") == "raid" ) then
self:GetFrameRef("partyHeader"):Hide()
else
self:GetFrameRef("partyHeader"):Show()
end
]])
RegisterStateDriver(stateMonitor, "raidmonitor", "[target=raid1, exists] raid; none")
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
At the point of testing what was caused the issue, I added debug code to print every UNU, RRU and PMC events. During a 5-minute test period, the only UNU events I've seen were about raidpetX units. There was no need for title "rotator" to cause freezes.
In other words, do not blame only title rotation addons.
Am I missing something?
I think you are misreading the property.
showParty: When true, the group header is shown when the player is in a party. This attribute doesn't imply showRaid but can work alongside it.
showRaid: When true, the group header is show when the player is in a raid.
There are two group units, party# and raid#. Using showParty tells the header to show all party# units, using showRaid tells the header to show all raid# units. party# will always be your current group, as such it's unnecessary to use groupFilter. I'm not quite sure why Adirelle added groupFilter for showing your party, but unless what you really want is something different from seeing your party, it's unnecessary.
My issue is when you want one frame to display the party and one frame to display the raid. The raid frame works as expect so there is no problem there. However on the party frame unless you have "showRaid" true it will disappear when you go into a raid.
The documentation from wowprogramming.com.
showRaid - Boolean - When true, the group header is shown when the player is in a raid.
showParty - Boolean - When true, the group header is shown when the player is in a party. This attribute doesnt imply showRaid but can work alongside it.
You misunderstand how party and raid are defined. Read what I said again, groupFilter is unnecessary for showing your party, you do not need to set it.
While writing this reply I figure I would do a little testing first. I must apologize for you are correct. It seems that the header is working like you said. The documentation I have isn't very clear and is technically incorrect.
Now I have a different question. If I want an option to hide the party frame when in a raid would I simple hide the frame when entering a raid group then show it when leaving?
I would like to thank you for all your help and standing your ground. My personality needs this. You clearly stated you were correct and I have to prove my statements. Too bad I couldn't. Well I guess a person (me) can always be right. I'm glad you helped me figure it out.
Thanks,
Bobtehbuildr
The short answer is no, you cannot hide the party while in a raid through the header itself. You get to play with a fun thing secure wrappers, http://www.iriel.org/wow/docs/SecureHeadersGuide-3.1-r1.pdf
There are two things you could do, one is to simply hide it yourself based on RAID_ROSTER_UPDATE and GetNumRaidMembers(), but that won't work if you join or leave a raid in combat. The other way is through the secure wrappers which will work even in combat.
The below is an example of how SUF hides the party while in combat: