- 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
function IceBarElement.prototype:MyOnUpdate()
if not self:IsVisible() then
return
end
self:SetScale(self.DesiredScale)
end

View File

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

View File

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

View File

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