- very minor perf gain by not doing the per-frame update on invisible modules

- nuked the primary offender of garbage generation. there is more to get rid of but finding it is a tedious process
This commit is contained in:
Parnic
2010-10-17 22:50:59 +00:00
parent 4ab939477f
commit fa5246a27e
4 changed files with 12 additions and 3 deletions

View File

@ -1229,6 +1229,9 @@ function IceBarElement.prototype:Update()
end end
function IceBarElement.prototype:MyOnUpdate() function IceBarElement.prototype:MyOnUpdate()
if not self:IsVisible() then
return
end
self:SetScale(self.DesiredScale) self:SetScale(self.DesiredScale)
end end

View File

@ -690,7 +690,9 @@ function IceCore.prototype:HandleUpdates()
end end
function IceCore.prototype:RequestUpdates(frame, func) function IceCore.prototype:RequestUpdates(frame, func)
self.updatees[frame] = func if self.updatees[frame] ~= func then
self.updatees[frame] = func
end
local count = 0 local count = 0
for k,v in pairs(self.updatees) do for k,v in pairs(self.updatees) do

View File

@ -48,7 +48,9 @@ end
function IceCustomBar.prototype:ConditionalSubscribe() function IceCustomBar.prototype:ConditionalSubscribe()
if self:ShouldAlwaysSubscribe() then if self:ShouldAlwaysSubscribe() then
IceHUD.IceCore:RequestUpdates(self.frame, function() self:UpdateCustomBar() end) if not IceHUD.IceCore:IsUpdateSubscribed(self.frame) then
IceHUD.IceCore:RequestUpdates(self.frame, function() self:UpdateCustomBar() end)
end
else else
IceHUD.IceCore:RequestUpdates(self.frame, nil) IceHUD.IceCore:RequestUpdates(self.frame, nil)
end end

View File

@ -436,7 +436,9 @@ function IceCustomCDBar.prototype:EnableUpdates(enable_update)
end end
if enable_update then if enable_update then
IceHUD.IceCore:RequestUpdates(self.frame, function() self:UpdateCustomBar(true) end) if not IceHUD.IceCore:IsUpdateSubscribed(self.frame) then
IceHUD.IceCore:RequestUpdates(self.frame, function() self:UpdateCustomBar(true) end)
end
else else
IceHUD.IceCore:RequestUpdates(self.frame, nil) IceHUD.IceCore:RequestUpdates(self.frame, nil)
end end