/Tukui/modules/datatext/fps.lua

http://github.com/Asphyxia/Tukui · Lua · 53 lines · 44 code · 6 blank · 3 comment · 4 complexity · 897cb16367b8ad337ebbe89a5af52596 MD5 · raw file

  1. local T, C, L = unpack(select(2, ...)) -- Import: T - functions, constants, variables; C - config; L - locales
  2. --------------------------------------------------------------------
  3. -- FPS
  4. --------------------------------------------------------------------
  5. if C["datatext"].fps_ms and C["datatext"].fps_ms > 0 then
  6. local Stat = CreateFrame("Frame")
  7. Stat:EnableMouse(true)
  8. Stat:SetFrameStrata("HIGH")
  9. Stat:SetFrameLevel(3)
  10. local Text = TukuiInfoLeft:CreateFontString(nil, "OVERLAY")
  11. Text:SetFont(C.media.pixelfont, C["datatext"].fontsize, "MONOCHROMEOUTLINE")
  12. T.PP(C["datatext"].fps_ms, Text)
  13. local int = 1
  14. local function Update(self, t)
  15. int = int - t
  16. if int < 0 then
  17. fps = floor(GetFramerate())
  18. bw_in, bw_out, ms_home, ms_world = GetNetStats()
  19. ms_combined = ms_home + ms_world
  20. Text:SetText( FPS_ABBR .. ": " .. T.datacolor .. fps .. "|r".. " / " .. MILLISECONDS_ABBR .. ": " .. T.datacolor .. ms_home)
  21. int = 1
  22. end
  23. self:SetAllPoints(Text)
  24. end
  25. Stat:SetScript("OnUpdate", Update)
  26. Stat:SetScript("OnEnter", function(self)
  27. if not InCombatLockdown() then
  28. local anchor, panel, xoff, yoff = T.DataTextTooltipAnchor(Text)
  29. GameTooltip:SetOwner(panel, anchor, xoff, yoff)
  30. GameTooltip:ClearLines()
  31. GameTooltip:AddDoubleLine("Frame rate")
  32. GameTooltip:AddDoubleLine("Frame per second", fps .. " " .. FPS_ABBR, 1, 1, 1, 1, 1, 1)
  33. GameTooltip:AddLine(" ")
  34. GameTooltip:AddDoubleLine("Lag")
  35. GameTooltip:AddDoubleLine("Total lag", ms_combined .. " " .. MILLISECONDS_ABBR, 1, 1, 1, 1, 1, 1)
  36. GameTooltip:AddDoubleLine("Local lag", ms_home .. " " .. MILLISECONDS_ABBR, 1, 1, 1, 1, 1, 1)
  37. GameTooltip:AddDoubleLine("Global lag", ms_world .. " " .. MILLISECONDS_ABBR, 1, 1, 1, 1, 1, 1)
  38. GameTooltip:AddLine(" ")
  39. GameTooltip:AddLine("Delay")
  40. GameTooltip:AddDoubleLine("Incoming", string.format("%.4f", bw_in) .. " kb/s", 1, 1, 1, 1, 1, 1)
  41. GameTooltip:AddDoubleLine("Outgoing", string.format("%.4f", bw_out) .. " kb/s", 1, 1, 1, 1, 1, 1)
  42. GameTooltip:Show()
  43. end
  44. end)
  45. Stat:SetScript("OnLeave", function() GameTooltip:Hide() end)
  46. Update(Stat, 10)
  47. end